/* 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-item-crown-usurped {
  background: linear-gradient(180deg, #d4c4a0 0%, #b89870 40%, #8a7050 100%), radial-gradient(ellipse at 50% 30%, #e8d8b8 0%, transparent 60%);
}
.scn-item-crown-usurped .bg-columns {
  position: absolute; inset: 0; background: repeating-linear-gradient(90deg, rgba(0,0,0,0.15) 0px, transparent 20px, rgba(0,0,0,0.15) 40px); opacity: 0.6; animation: uc-shift 20s ease-in-out infinite alternate;
}
.scn-item-crown-usurped .shadow-figure {
  position: absolute; bottom: 15%; width: 60px; height: 160px; background: rgba(30,20,10,0.7); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(2px);
}
.scn-item-crown-usurped .shadow-figure.left { left: 10%; animation: uc-sway-l 6s ease-in-out infinite; }
.scn-item-crown-usurped .shadow-figure.right { right: 10%; animation: uc-sway-r 7s ease-in-out infinite; }
.scn-item-crown-usurped .cushion {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); width: 120px; height: 40px; background: linear-gradient(135deg, #6a4a3a, #4a2a1a); border-radius: 50%; box-shadow: 0 8px 20px rgba(0,0,0,0.4);
}
.scn-item-crown-usurped .crown {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%); width: 60px; height: 40px; background: linear-gradient(180deg, #f0c860, #c89830); clip-path: polygon(0 100%, 20% 0, 40% 40%, 60% 0, 80% 40%, 100% 0, 100% 100%); animation: uc-glow 3s ease-in-out infinite alternate;
}
.scn-item-crown-usurped .light-beam {
  position: absolute; top: 0; left: 40%; width: 20%; height: 100%; background: linear-gradient(180deg, rgba(255,220,150,0.3) 0%, transparent 60%); animation: uc-pulse 8s ease-in-out infinite;
}
.scn-item-crown-usurped .dust-motes {
  position: absolute; inset: 10% 30%; background: radial-gradient(circle at 30% 40%, rgba(255,200,100,0.2) 0%, transparent 50%), radial-gradient(circle at 70% 60%, rgba(200,150,80,0.15) 0%, transparent 40%); animation: uc-drift 30s linear infinite;
}
@keyframes uc-shift { 0% { opacity:0.4; filter: blur(0px); } 50% { opacity:0.7; filter: blur(2px); } 100% { opacity:0.4; filter: blur(0px); } }
@keyframes uc-sway-l { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(2deg) translateX(10px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes uc-sway-r { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(-10px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes uc-glow { 0% { filter: brightness(1); box-shadow: 0 0 15px 5px rgba(240,200,96,0.3); } 50% { filter: brightness(1.4); box-shadow: 0 0 30px 10px rgba(240,200,96,0.6); } 100% { filter: brightness(1); box-shadow: 0 0 15px 5px rgba(240,200,96,0.3); } }
@keyframes uc-pulse { 0% { opacity:0.2; } 30% { opacity:0.6; } 70% { opacity:0.4; } 100% { opacity:0.2; } }
@keyframes uc-drift { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }

.scn-item-gauntlet-challenge {
  background: linear-gradient(180deg, #4a7aaf 0%, #7a9acf 40%, #b8d4e8 100%), radial-gradient(ellipse at 30% 20%, #fff8e0 0%, transparent 50%);
}
.scn-item-gauntlet-challenge .sky-gradient { position: absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a6a9f 0%, transparent 100%); }
.scn-item-gauntlet-challenge .sunburst {
  position: absolute; top:15%; left:60%; width:120px; height:120px; background: radial-gradient(circle, #fff0c0 0%, #f0d060 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(240,208,96,0.3);
}
.scn-item-gauntlet-challenge .sun-rays {
  position: absolute; top:18%; left:63%; width:80px; height:80px; background: conic-gradient(from 0deg, #fff8e4 0%, transparent 10%, #fff8e4 20%, transparent 30%, #fff8e4 40%, transparent 50%, #fff8e4 60%, transparent 70%, #fff8e4 80%, transparent 90%, #fff8e4 100%); border-radius:50%; opacity:0.5; animation: gc-rotate 40s linear infinite;
}
.scn-item-gauntlet-challenge .figure-torso {
  position: absolute; bottom:28%; left:40%; width:40px; height:90px; background: linear-gradient(180deg, #3a5a7a, #1a3a5a); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(10deg);
}
.scn-item-gauntlet-challenge .gauntlet {
  position: absolute; bottom:34%; left:48%; width:20px; height:30px; background: #a08060; border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); transform: rotate(-20deg); animation: gc-throw 2s ease-in-out infinite;
}
.scn-item-gauntlet-challenge .banner {
  position: absolute; top:12%; left:10%; width:80px; height:120px; background: linear-gradient(180deg, #2a4a7a 0%, #1a2a5a 50%, #2a4a7a 100%); clip-path: polygon(0 0, 100% 0, 100% 80%, 50% 100%, 0 80%); animation: gc-flap 4s ease-in-out infinite alternate;
}
.scn-item-gauntlet-challenge .ground {
  position: absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #3a5a3a 0%, #5a7a5a 50%, #7a9a7a 100%); border-radius: 40% 20% 0 0;
}
@keyframes gc-rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes gc-throw { 0% { transform: rotate(-20deg) translateX(0); opacity:1; } 50% { transform: rotate(-40deg) translateX(20px) translateY(-10px); opacity:0.7; } 100% { transform: rotate(-20deg) translateX(0); opacity:1; } }
@keyframes gc-flap { 0% { transform: scaleX(1); } 40% { transform: scaleX(1.08); } 70% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }

.scn-edward-march-to-warwick {
  background: linear-gradient(180deg, #f0c87a 0%, #d0a060 40%, #886040 100%), radial-gradient(ellipse at 50% 80%, #c08040 0%, transparent 70%);
}
.scn-edward-march-to-warwick .sky-dawn {
  position: absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffd8a0 0%, #f0b860 40%, #d09040 100%); animation: em-sky 12s ease-in-out infinite alternate;
}
.scn-edward-march-to-warwick .sun {
  position: absolute; top:20%; left:70%; width:80px; height:80px; background: radial-gradient(circle, #fff4c0 0%, #f0c040 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(240,192,64,0.3);
}
.scn-edward-march-to-warwick .hills {
  position: absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius: 60% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-edward-march-to-warwick .soldiers {
  position: absolute; bottom:30%; left:20%; width:60%; height:20%; background: repeating-linear-gradient(90deg, rgba(30,20,10,0.6) 0px, transparent 4px, rgba(30,20,10,0.6) 8px); filter: blur(1px); animation: em-march 8s ease-in-out infinite;
}
.scn-edward-march-to-warwick .spears {
  position: absolute; bottom:40%; left:20%; width:60%; height:20%; background: repeating-linear-gradient(90deg, transparent 0px, #4a3a2a 2px, transparent 4px); animation: em-spear 10s ease-in-out infinite;
}
.scn-edward-march-to-warwick .dust {
  position: absolute; bottom:25%; left:10%; right:10%; height:10%; background: radial-gradient(ellipse at 40% 100%, rgba(120,80,40,0.4) 0%, transparent 70%); animation: em-dust 15s ease-in-out infinite alternate;
}
.scn-edward-march-to-warwick .road {
  position: absolute; bottom:20%; left:30%; right:30%; height:8%; background: linear-gradient(90deg, transparent, #8a6a4a 20%, #6a4a2a 50%, #8a6a4a 80%, transparent); border-radius: 50%;
}
@keyframes em-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes em-march { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(5px); } }
@keyframes em-spear { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes em-dust { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.1); } 100% { opacity:0.3; transform: scale(1); } }

.scn-london-palace-council {
  background: linear-gradient(180deg, #c8a87a 0%, #a08050 40%, #705030 100%), radial-gradient(ellipse at 50% 20%, #e0c090 0%, transparent 60%);
}
.scn-london-palace-council .bg-walls {
  position: absolute; inset:0; background: repeating-linear-gradient(90deg, rgba(0,0,0,0.08) 0px, transparent 30px, rgba(0,0,0,0.08) 60px); opacity:0.5;
}
.scn-london-palace-council .window-light {
  position: absolute; top:10%; left:70%; width:80px; height:120px; background: radial-gradient(ellipse, #fff4d0 0%, #c0a060 50%, transparent 80%); border-radius: 10px; box-shadow: 0 0 60px 20px rgba(192,160,96,0.3); animation: lp-pulse 6s ease-in-out infinite alternate;
}
.scn-london-palace-council .throne {
  position: absolute; bottom:20%; left:50%; transform: translateX(-50%); width:80px; height:100px; background: linear-gradient(135deg, #6a4a2a, #3a2a1a); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-london-palace-council .table {
  position: absolute; bottom:25%; left:30%; right:30%; height:15px; background: linear-gradient(90deg, #5a3a2a, #7a5a3a, #5a3a2a); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-london-palace-council .councillor {
  position: absolute; bottom:30%; width:30px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; filter: drop-shadow(2px 2px 4px rgba(0,0,0,0.3));
}
.scn-london-palace-council .councillor.left { left:25%; animation: lp-sway 7s ease-in-out infinite; }
.scn-london-palace-council .councillor.right { right:25%; animation: lp-sway 8s ease-in-out infinite reverse; }
.scn-london-palace-council .candle-glow {
  position: absolute; bottom:40%; left:45%; width:10px; height:15px; background: radial-gradient(circle, #ffd080 0%, #b08040 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,208,128,0.5); animation: lp-flicker 3s ease-in-out infinite;
}
.scn-london-palace-council .shadow-stripe {
  position: absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 30%, rgba(0,0,0,0.15) 70%, transparent 100%); pointer-events: none;
}
@keyframes lp-pulse { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes lp-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes lp-flicker { 0%,100% { transform: scale(1); opacity:0.8; } 30% { transform: scale(1.1); opacity:1; } 70% { transform: scale(0.9); opacity:0.6; } }

/* Scene 1: parliament-york-oath (solemn, bright interior) */
.scn-parliament-york-oath {
  background: 
    linear-gradient(180deg, #c8b88a 0%, #d4c49a 30%, #b8a878 60%, #9a8a5a 100%),
    radial-gradient(ellipse at 50% 0%, #e0d4b0 0%, transparent 60%);
}
.scn-parliament-york-oath .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); }
.scn-parliament-york-oath .back-wall { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #d4c49a 0%, #b8a878 100%); }
.scn-parliament-york-oath .window { position:absolute; top:12%; left:50%; width:120px; height:180px; transform:translateX(-50%); background: radial-gradient(ellipse at center, #e8e0c8 0%, #c8b888 70%); border:6px solid #7a6a4a; border-radius:4% 4% 0 0; }
.scn-parliament-york-oath .dais { position:absolute; bottom:30%; left:35%; width:30%; height:12%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:4% 4% 0 0; }
.scn-parliament-york-oath .throne { position:absolute; bottom:38%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #9a8a5a 0%, #6a5a3a 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 4px 12px rgba(0,0,0,.3); }
.scn-parliament-york-oath .scroll { position:absolute; bottom:36%; left:46%; width:40px; height:25px; background: linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%); border-radius:2%; transform:rotate(-10deg); }
.scn-parliament-york-oath .king-figure { position:absolute; bottom:30%; left:50%; width:28px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #3a3a5a 0%, #1a1a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-parliament-york-oath .light-ray { position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(180deg, rgba(255,255,200,.3) 0%, transparent 100%); animation: pyo-light 6s ease-in-out infinite alternate; }
.scn-parliament-york-oath .banner { position:absolute; top:8%; right:18%; width:40px; height:80px; background: linear-gradient(180deg, #c8553d 0%, #8a2a1a 100%); border-radius:2%; }
@keyframes pyo-light { 0% { opacity:.4 } 50% { opacity:.9 } 100% { opacity:.5 } }

/* Scene 2: parliament-queen-arrives (uneasy, bright interior) */
.scn-parliament-queen-arrives {
  background: 
    linear-gradient(180deg, #e0d0a0 0%, #c8b888 40%, #a89868 100%),
    radial-gradient(ellipse at 30% 0%, #f0e0c0 0%, transparent 70%);
}
.scn-parliament-queen-arrives .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%); }
.scn-parliament-queen-arrives .column { position:absolute; top:0; left:20%; width:20px; height:100%; background: linear-gradient(180deg, #b8a878 0%, #8a7a5a 100%); }
.scn-parliament-queen-arrives .doorway { position:absolute; bottom:25%; left:42%; width:16%; height:60%; background: #1a1a2a; border-radius:20% 20% 0 0; box-shadow:inset 0 0 40px rgba(0,0,0,.5); }
.scn-parliament-queen-arrives .queen-figure { position:absolute; bottom:28%; left:44%; width:24px; height:55px; background: linear-gradient(180deg, #702243 0%, #4a122a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pqa-queen 4s ease-in-out infinite; }
.scn-parliament-queen-arrives .prince-figure { position:absolute; bottom:28%; left:52%; width:18px; height:38px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pqa-prince 5s ease-in-out infinite alternate; }
.scn-parliament-queen-arrives .courtier { position:absolute; bottom:28%; left:68%; width:22px; height:50px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pqa-courtier 6s ease-in-out infinite; }
.scn-parliament-queen-arrives .heraldic-symbol { position:absolute; top:15%; left:42%; width:30px; height:30px; background: radial-gradient(circle, #c8553d 0%, #8a2a1a 70%); border-radius:50%; box-shadow: 0 0 20px 4px rgba(200,85,61,.5); animation: pqa-symbol 3s ease-in-out infinite alternate; }
.scn-parliament-queen-arrives .torch { position:absolute; bottom:40%; left:30%; width:8px; height:12px; background: radial-gradient(circle, #ffd080 0%, #e8a040 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 8px #e8a040; animation: pqa-torch 2s ease-in-out infinite alternate; }
@keyframes pqa-queen { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pqa-prince { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(0) } }
@keyframes pqa-courtier { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-3px) scale(.95) } 100% { transform: translateX(0) scale(1) } }
@keyframes pqa-symbol { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes pqa-torch { 0% { opacity:.6; transform: scale(.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.7; transform: scale(.95) } }

/* Scene 3: parliament-queen-leaves (despairing, dim interior) */
.scn-parliament-queen-leaves {
  background: 
    linear-gradient(180deg, #1a1a3a 0%, #2a2040 50%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a4a 0%, transparent 70%);
}
.scn-parliament-queen-leaves .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a2a4a 0%, #0a0a1a 100%); }
.scn-parliament-queen-leaves .shadow-wall { position:absolute; top:0; left:0; right:0; bottom:20%; background: linear-gradient(180deg, #1a1a2a 0%, #2a2040 100%); }
.scn-parliament-queen-leaves .queen-figure { position:absolute; bottom:22%; left:44%; width:24px; height:50px; background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pql-queen 8s ease-in-out infinite; }
.scn-parliament-queen-leaves .prince-figure { position:absolute; bottom:22%; left:52%; width:16px; height:34px; background: linear-gradient(180deg, #2a2a4a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pql-prince 7s ease-in-out infinite alternate; }
.scn-parliament-queen-leaves .candle { position:absolute; bottom:30%; left:30%; width:6px; height:8px; background: radial-gradient(circle, #ffd080 0%, #e8a040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px #e8a040; animation: pql-candle 4s ease-in-out infinite alternate; }
.scn-parliament-queen-leaves .doorway-dim { position:absolute; bottom:20%; left:40%; width:20%; height:70%; background: #0a0a1a; border-radius:30% 30% 0 0; box-shadow:inset 0 0 30px rgba(0,0,0,.8); }
.scn-parliament-queen-leaves .tear { position:absolute; bottom:35%; left:46%; width:4px; height:6px; background: rgba(255,255,255,.1); border-radius:50%; animation: pql-tear 2s linear infinite; }
@keyframes pql-queen { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pql-prince { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes pql-candle { 0% { opacity:.5; transform: scale(.8) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.6; transform: scale(.9) } }
@keyframes pql-tear { 0% { opacity:0; transform: translateY(0) scale(1) } 50% { opacity:.4; transform: translateY(10px) scale(.8) } 100% { opacity:0; transform: translateY(20px) scale(.5) } }

/* Scene 4: sandal-castle-brothers-quarrel (tense, bright interior) */
.scn-sandal-castle-brothers-quarrel {
  background: 
    linear-gradient(180deg, #d4c4a0 0%, #c8b890 30%, #a89868 60%, #8a7a4a 100%),
    radial-gradient(ellipse at 70% 0%, #e8d8b0 0%, transparent 60%);
}
.scn-sandal-castle-brothers-quarrel .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%); }
.scn-sandal-castle-brothers-quarrel .back-wall { position:absolute; top:0; left:0; right:0; bottom:25%; background: linear-gradient(180deg, #c8b890 0%, #a89868 100%); }
.scn-sandal-castle-brothers-quarrel .table { position:absolute; bottom:25%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #8a7a4a 0%, #5a4a2a 100%); border-radius:4% 4% 0 0; }
.scn-sandal-castle-brothers-quarrel .brother-left { position:absolute; bottom:28%; left:36%; width:22px; height:48px; background: linear-gradient(180deg, #a0461a 0%, #6a2a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: scb-left 3s ease-in-out infinite; }
.scn-sandal-castle-brothers-quarrel .brother-right { position:absolute; bottom:28%; left:52%; width:22px; height:48px; background: linear-gradient(180deg, #3a5a6a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: scb-right 3.5s ease-in-out infinite alternate; }
.scn-sandal-castle-brothers-quarrel .york-figure { position:absolute; bottom:28%; left:44%; width:26px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: scb-york 4s ease-in-out infinite; }
.scn-sandal-castle-brothers-quarrel .stained-glass { position:absolute; top:10%; left:15%; width:70px; height:100px; background: radial-gradient(ellipse at 30% 40%, #b87878 0%, #5a1a1a 40%, #3a2a5a 70%, #1a1a2a 100%); border-radius:10% 10% 0 0; border:4px solid #4a3a2a; }
.scn-sandal-castle-brothers-quarrel .dagger { position:absolute; bottom:33%; left:50%; width:18px; height:6px; background: linear-gradient(90deg, #b0a090 0%, #d0c0b0 50%, #b0a090 100%); border-radius:20%; transform: rotate(30deg); animation: scb-dagger 5s ease-in-out infinite; }
@keyframes scb-left { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-1px) rotate(3deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes scb-right { 0% { transform: translateY(0) rotate(3deg) } 50% { transform: translateY(-1px) rotate(-3deg) } 100% { transform: translateY(0) rotate(3deg) } }
@keyframes scb-york { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes scb-dagger { 0% { opacity:.4; transform: rotate(30deg) translateY(0) } 50% { opacity:.8; transform: rotate(40deg) translateY(-2px) } 100% { opacity:.4; transform: rotate(30deg) translateY(0) } }

/* item-paper-crown – vengeful, overcast */
.scn-item-paper-crown {
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 40%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 70%);
}
.scn-item-paper-crown .sky-overcast { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); animation: spc-sky 10s ease-in-out infinite alternate; }
.scn-item-paper-crown .castle-wall { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(90deg, #3a3a3a 0%, #4a4a4a 50%, #2a2a2a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-item-paper-crown .figure-silhouette { position:absolute; bottom:10%; left:45%; width:28px; height:60px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: spc-figure 4s ease-in-out infinite; }
.scn-item-paper-crown .paper-crown { position:absolute; bottom:50%; left:43%; width:30px; height:20px; background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0a 100%); clip-path: polygon(50% 0%, 100% 100%, 0% 100%); box-shadow: 0 0 8px 2px rgba(94,26,29,.5); animation: spc-crown 3s ease-in-out infinite; }
.scn-item-paper-crown .chain-1 { position:absolute; bottom:18%; left:40%; width:4px; height:40px; background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%); border-radius: 2px; animation: spc-chain 2s ease-in-out infinite; }
.scn-item-paper-crown .chain-2 { position:absolute; bottom:18%; left:48%; width:4px; height:40px; background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%); border-radius: 2px; animation: spc-chain 2s ease-in-out infinite 1s; }
.scn-item-paper-crown .shadow-vines { position:absolute; top:70%; left:0; width:100%; height:30%; background: radial-gradient(ellipse at 20% 0%, #0a0a0a 0%, transparent 60%), radial-gradient(ellipse at 80% 0%, #0a0a0a 0%, transparent 60%); filter: blur(4px); animation: spc-vines 12s ease-in-out infinite alternate; }
@keyframes spc-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes spc-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes spc-crown { 0%,100% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(5deg) scale(1.05); } }
@keyframes spc-chain { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(3px) scaleY(0.9); } }
@keyframes spc-vines { 0% { opacity:.3; transform: scaleY(1); } 50% { opacity:.6; transform: scaleY(1.1); } 100% { opacity:.4; transform: scaleY(0.95); } }

/* wakefield-york-death – amused, overcast */
.scn-wakefield-york-death {
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 40%, #2a2a3a 100%),
              radial-gradient(ellipse at 30% 70%, #4a4a5a 0%, transparent 60%);
}
.scn-wakefield-york-death .sky-gray { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%); animation: wyd-sky 8s ease-in-out infinite alternate; }
.scn-wakefield-york-death .ground-dark { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-wakefield-york-death .figure-amused { position:absolute; bottom:15%; left:35%; width:30px; height:55px; background: linear-gradient(180deg, #2a2a2a 0%, #151515 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wyd-figure 3s ease-in-out infinite; }
.scn-wakefield-york-death .skull-tilted { position:absolute; bottom:30%; left:50%; width:22px; height:28px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 50% 50% 40% 40%; box-shadow: inset 0 -2px 4px rgba(0,0,0,.4); transform: rotate(-15deg); animation: wyd-skull 4s ease-in-out infinite; }
.scn-wakefield-york-death .scepter { position:absolute; bottom:20%; left:55%; width:6px; height:45px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 3px 3px 0 0; transform: rotate(10deg); animation: wyd-scepter 2.5s ease-in-out infinite; }
.scn-wakefield-york-death .mist { position:absolute; bottom:40%; left:0; width:100%; height:30%; background: radial-gradient(ellipse at 40% 50%, rgba(100,100,120,0.3) 0%, transparent 70%); filter: blur(8px); animation: wyd-mist 12s linear infinite; }
@keyframes wyd-sky { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes wyd-figure { 0% { transform: translateY(0) rotate(0deg) scaleX(1); } 25% { transform: translateY(-3px) rotate(5deg) scaleX(1.02); } 50% { transform: translateY(0) rotate(0deg) scaleX(1); } 75% { transform: translateY(-1px) rotate(-3deg) scaleX(0.98); } 100% { transform: translateY(0) rotate(0deg) scaleX(1); } }
@keyframes wyd-skull { 0%,100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } }
@keyframes wyd-scepter { 0%,100% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.1); } }
@keyframes wyd-mist { 0% { transform: translateX(-20px) scale(1); } 50% { transform: translateX(20px) scale(1.2); } 100% { transform: translateX(-20px) scale(1); } }

/* mortimer-cross-edward-mourns – sorrowful, dawn */
.scn-mortimer-cross-edward-mourns {
  background: linear-gradient(180deg, #7a5a4a 0%, #c08050 30%, #e0a060 50%, #f0c070 70%, #e0b080 100%),
              radial-gradient(ellipse at 50% 0%, #f0c070 0%, transparent 60%);
}
.scn-mortimer-cross-edward-mourns .dawn-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8a6a5a 0%, #d0a070 50%, #f0c080 100%); animation: mec-sky 20s ease-in-out infinite alternate; }
.scn-mortimer-cross-edward-mourns .hill-mourn { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a1a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-mortimer-cross-edward-mourns .figure-kneeling { position:absolute; bottom:18%; left:40%; width:28px; height:45px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mec-figure 5s ease-in-out infinite; }
.scn-mortimer-cross-edward-mourns .cross { position:absolute; bottom:30%; left:50%; width:8px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; transform: translateX(-50%); }
.scn-mortimer-cross-edward-mourns .sword-stuck { position:absolute; bottom:25%; left:55%; width:6px; height:40px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 3px 3px 0 0; transform: rotate(15deg); animation: mec-sword 3s ease-in-out infinite; }
.scn-mortimer-cross-edward-mourns .tear-drop { position:absolute; bottom:30%; left:38%; width:6px; height:8px; background: linear-gradient(180deg, rgba(200,180,160,0.8) 0%, transparent 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; animation: mec-tear 4s ease-in-out infinite; }
.scn-mortimer-cross-edward-mourns .mist-dawn { position:absolute; bottom:10%; left:0; width:100%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(200,160,120,0.2) 0%, transparent 70%); filter: blur(6px); animation: mec-mist 15s linear infinite; }
@keyframes mec-sky { 0% { opacity:.8; background-position:0% 0%; } 50% { opacity:1; background-position:50% 0%; } 100% { opacity:.9; background-position:100% 0%; } }
@keyframes mec-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mec-sword { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } }
@keyframes mec-tear { 0% { transform: translateY(0) scale(1); opacity:.8; } 50% { transform: translateY(10px) scale(0.8); opacity:0; } 100% { transform: translateY(0) scale(1); opacity:.8; } }
@keyframes mec-mist { 0% { transform: translateX(-30px) scale(1); } 50% { transform: translateX(30px) scale(1.2); } 100% { transform: translateX(-30px) scale(1); } }

/* mortimer-cross-three-suns – wondrous, dawn */
.scn-mortimer-cross-three-suns {
  background: linear-gradient(180deg, #f0c080 0%, #fad890 30%, #ffe0a0 60%, #fff0c0 100%),
              radial-gradient(ellipse at 50% 0%, #ffe0a0 0%, transparent 70%);
}
.scn-mortimer-cross-three-suns .dawn-bright-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0c080 0%, #ffe0a0 80%, #fff5d0 100%); animation: mts-sky 30s ease-in-out infinite alternate; }
.scn-mortimer-cross-three-suns .sun-a { position:absolute; top:12%; left:20%; width:36px; height:36px; background: radial-gradient(circle, #ffe080 0%, #f0a040 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 12px rgba(240,160,64,0.5), 0 0 80px 30px rgba(240,160,64,0.2); animation: mts-sun 6s ease-in-out infinite; }
.scn-mortimer-cross-three-suns .sun-b { position:absolute; top:15%; left:45%; width:32px; height:32px; background: radial-gradient(circle, #ffe080 0%, #f0a040 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 35px 10px rgba(240,160,64,0.4), 0 0 70px 25px rgba(240,160,64,0.2); animation: mts-sun 6s ease-in-out infinite 0.5s; }
.scn-mortimer-cross-three-suns .sun-c { position:absolute; top:10%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #ffe080 0%, #f0a040 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 45px 15px rgba(240,160,64,0.5), 0 0 90px 35px rgba(240,160,64,0.2); animation: mts-sun 6s ease-in-out infinite 1s; }
.scn-mortimer-cross-three-suns .hills-three { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 50% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.3); }
.scn-mortimer-cross-three-suns .figure-wondering { position:absolute; bottom:12%; left:45%; width:28px; height:55px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mts-figure 8s ease-in-out infinite; }
.scn-mortimer-cross-three-suns .cloud-light { position:absolute; top:25%; left:10%; width:120px; height:20px; background: linear-gradient(90deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.05) 100%); border-radius:50%; filter: blur(8px); animation: mts-cloud 40s linear infinite; }
@keyframes mts-sky { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes mts-sun { 0%,100% { transform: scale(1) translateY(0); opacity:.9; } 50% { transform: scale(1.1) translateY(-4px); opacity:1; } }
@keyframes mts-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mts-cloud { 0% { transform: translateX(-30px) scale(1); } 50% { transform: translateX(60px) scale(1.2); } 100% { transform: translateX(-30px) scale(1); } }

.scn-henry-blesses-richmond {
  background: linear-gradient(180deg, #2e1c14 0%, #4a2e1a 40%, #3a2010 100%),
              radial-gradient(ellipse at 30% 20%, #6a4a2a 0%, transparent 70%);
}
.scn-henry-blesses-richmond .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%);
}
.scn-henry-blesses-richmond .floor {
  position: absolute; bottom: 0; inset: 70% 0 0 0;
  background: linear-gradient(180deg, #4a2a14 0%, #2a1a0a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  animation: hbr-shimmer 10s ease-in-out infinite alternate;
}
.scn-henry-blesses-richmond .throne {
  position: absolute; bottom: 30%; left: 25%; width: 40%; height: 50%;
  background: linear-gradient(135deg, #6a4a2a 0%, #4a2a14 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 10px 20px rgba(0,0,0,.6);
  transform: perspective(800px) rotateX(5deg);
}
.scn-henry-blesses-richmond .king {
  position: absolute; bottom: 32%; left: 30%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hbr-bless 6s ease-in-out infinite;
}
.scn-henry-blesses-richmond .richmond {
  position: absolute; bottom: 28%; left: 48%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hbr-kneel 8s ease-in-out infinite;
}
.scn-henry-blesses-richmond .candle {
  position: absolute; bottom: 50%; left: 55%; width: 3%; height: 15%;
  background: linear-gradient(180deg, #8a6a3a 0%, #4a2a10 100%);
  border-radius: 20%;
  transform: rotate(2deg);
}
.scn-henry-blesses-richmond .candle::after {
  content: ''; position: absolute; top: -20%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ffa040, 0 0 60px 20px rgba(255,160,64,.3);
  animation: hbr-flame 2s ease-in-out infinite alternate;
}
.scn-henry-blesses-richmond .window {
  position: absolute; top: 15%; right: 15%; width: 20%; height: 40%;
  background: linear-gradient(135deg, #2a1a0a 0%, #1a0e04 100%);
  border: 4px solid #4a2a14;
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-henry-blesses-richmond .shadow {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: hbr-shadow-sway 5s ease-in-out infinite alternate;
}
@keyframes hbr-shimmer {
  0% { opacity: .8; }
  50% { opacity: .95; }
  100% { opacity: .85; }
}
@keyframes hbr-bless {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(-1deg); }
}
@keyframes hbr-kneel {
  0%,100% { transform: translateY(0) rotate(0) scaleY(1); }
  50% { transform: translateY(-1px) rotate(1deg) scaleY(1.02); }
}
@keyframes hbr-flame {
  0% { opacity: .8; transform: scale(.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: .9; transform: scale(.95); }
}
@keyframes hbr-shadow-sway {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(5px) scaleX(1.05); }
  100% { transform: translateX(-3px) scaleX(.95); }
}

.scn-send-richmond-to-brittany {
  background: linear-gradient(180deg, #1a1420 0%, #2a1c28 40%, #1a1018 100%),
              radial-gradient(ellipse at 70% 50%, #3a2a3a 0%, transparent 60%);
}
.scn-send-richmond-to-brittany .bg-panel {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1e30 0%, #1a1020 100%);
  border-bottom: 4px solid #4a2a3a;
}
.scn-send-richmond-to-brittany .table {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1018 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,.7);
  transform: perspective(600px) rotateX(10deg);
}
.scn-send-richmond-to-brittany .map {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 8%;
  box-shadow: inset 2px 2px 6px rgba(0,0,0,.5);
  transform: rotate(-2deg);
  animation: srb-map-pulse 8s ease-in-out infinite alternate;
}
.scn-send-richmond-to-brittany .king-seated {
  position: absolute; bottom: 28%; left: 25%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #2a1e20 0%, #181014 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: srb-sit 6s ease-in-out infinite;
}
.scn-send-richmond-to-brittany .messenger {
  position: absolute; bottom: 28%; right: 20%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1418 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: srb-bow 7s ease-in-out infinite;
}
.scn-send-richmond-to-brittany .candelabra {
  position: absolute; bottom: 50%; left: 50%; width: 5%; height: 20%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2018 100%);
  border-radius: 10% 10% 0 0;
  transform: translateX(-50%);
}
.scn-send-richmond-to-brittany .candelabra::after {
  content: ''; position: absolute; top: -30%; left: -20%; width: 140%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, transparent 80%);
  filter: blur(5px);
  animation: srb-candle-glow 3s ease-in-out infinite alternate;
}
.scn-send-richmond-to-brittany .mist {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(30,20,30,.3) 0%, transparent 100%);
  filter: blur(10px);
  animation: srb-mist-sway 12s ease-in-out infinite alternate;
}
@keyframes srb-map-pulse {
  0% { opacity: .7; transform: rotate(-2deg) scale(1); }
  50% { opacity: 1; transform: rotate(-1deg) scale(1.02); }
  100% { opacity: .8; transform: rotate(-3deg) scale(.98); }
}
@keyframes srb-sit {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-1px) rotate(-.5deg); }
}
@keyframes srb-bow {
  0%,100% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-2px) rotate(2deg); }
  70% { transform: translateY(0) rotate(-2deg); }
}
@keyframes srb-candle-glow {
  0% { opacity: .6; transform: scale(.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: .7; transform: scale(.95); }
}
@keyframes srb-mist-sway {
  0% { transform: translateX(-5px) scaleY(1); }
  50% { transform: translateX(5px) scaleY(1.05); }
  100% { transform: translateX(-3px) scaleY(.98); }
}

.scn-before-york-arrival {
  background: linear-gradient(180deg, #7ab0d0 0%, #b0d8e8 40%, #d8e8f0 70%, #f0e8d0 100%),
              radial-gradient(ellipse at 70% 90%, #f0d8a0 0%, transparent 60%);
}
.scn-before-york-arrival .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #6a9cc0 0%, #a0c8e0 50%, transparent 100%);
  animation: bya-sky-shift 15s ease-in-out infinite alternate;
}
.scn-before-york-arrival .city-wall {
  position: absolute; bottom: 25%; left: 10%; width: 80%; height: 45%;
  background: linear-gradient(180deg, #9a8a6a 0%, #6a5a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
  transform: perspective(1000px) rotateX(5deg);
}
.scn-before-york-arrival .gate {
  position: absolute; bottom: 25%; left: 40%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-before-york-arrival .road {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 25%;
  background: linear-gradient(180deg, #c0a880 0%, #806040 100%);
  border-radius: 20% 20% 0 0;
  transform: perspective(600px) rotateX(20deg);
}
.scn-before-york-arrival .figure-left {
  position: absolute; bottom: 12%; left: 30%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #2a1a1a 0%, #141010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bya-march 4s ease-in-out infinite;
}
.scn-before-york-arrival .figure-right {
  position: absolute; bottom: 12%; right: 30%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #2a1a1a 0%, #141010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bya-march 4s ease-in-out infinite reverse;
}
.scn-before-york-arrival .banner {
  position: absolute; bottom: 45%; left: 42%; width: 16%; height: 8%;
  background: linear-gradient(135deg, #c8553d 0%, #8a3a2a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  transform: rotate(-5deg);
  animation: bya-flag 3s ease-in-out infinite alternate;
}
.scn-before-york-arrival .sunburst {
  position: absolute; top: 8%; right: 20%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #ffe080 0%, transparent 70%);
  filter: blur(15px);
  opacity: .4;
  animation: bya-sun-pulse 6s ease-in-out infinite alternate;
}
@keyframes bya-sky-shift {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes bya-march {
  0%,100% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-3px) rotate(1deg); }
  50% { transform: translateY(1px) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(.5deg); }
}
@keyframes bya-flag {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(1.05); }
  100% { transform: rotate(-4deg) scaleY(.95); }
}
@keyframes bya-sun-pulse {
  0% { opacity: .3; transform: scale(.9); }
  100% { opacity: .5; transform: scale(1.1); }
}

.scn-item-edward-takes-keys {
  background: linear-gradient(180deg, #7ab0d0 0%, #b0d8e8 40%, #d8e8f0 70%, #f0e8d0 100%),
              radial-gradient(ellipse at 50% 80%, #f0d8a0 0%, transparent 70%);
}
.scn-item-edward-takes-keys .sky-bright {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #8ab8d8 0%, #c8dce8 50%, transparent 100%);
  animation: etk-sky-flash 4s ease-in-out infinite alternate;
}
.scn-item-edward-takes-keys .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #c0a880 0%, #806040 100%);
  border-radius: 30% 20% 0 0;
}
.scn-item-edward-takes-keys .town-wall {
  position: absolute; bottom: 25%; left: 15%; width: 70%; height: 30%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
}
.scn-item-edward-takes-keys .mayor {
  position: absolute; bottom: 23%; left: 30%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: etk-step-back 5s ease-in-out infinite;
}
.scn-item-edward-takes-keys .edward {
  position: absolute; bottom: 23%; right: 35%; width: 14%; height: 32%;
  background: linear-gradient(180deg, #2a1a1a 0%, #141010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: etk-step-forward 5s ease-in-out infinite;
}
.scn-item-edward-takes-keys .keys {
  position: absolute; bottom: 32%; right: 38%; width: 6%; height: 8%;
  background: linear-gradient(135deg, #c8a060 0%, #a08040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 10px 2px #c8a060;
  transform: rotate(-15deg);
  animation: etk-keys-shake 2s ease-in-out infinite alternate;
}
.scn-item-edward-takes-keys .aldermen {
  position: absolute; bottom: 22%; left: 15%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: etk-bow 6s ease-in-out infinite;
}
.scn-item-edward-takes-keys .shadow-stripe {
  position: absolute; bottom: 0; left: 40%; width: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,.15) 0%, transparent 100%);
  transform: skewX(-10deg);
  filter: blur(8px);
  animation: etk-shadow-move 7s ease-in-out infinite alternate;
}
@keyframes etk-sky-flash {
  0% { opacity: .85; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes etk-step-back {
  0%,100% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-5px) rotate(1deg); }
}
@keyframes etk-step-forward {
  0%,100% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(5px) rotate(-1deg); }
}
@keyframes etk-keys-shake {
  0% { transform: rotate(-15deg) scale(1); }
  25% { transform: rotate(-10deg) scale(1.05); }
  50% { transform: rotate(-20deg) scale(.95); }
  75% { transform: rotate(-5deg) scale(1.02); }
  100% { transform: rotate(-15deg) scale(1); }
}
@keyframes etk-bow {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes etk-shadow-move {
  0% { transform: skewX(-10deg) translateX(0); }
  100% { transform: skewX(-10deg) translateX(20px); }
}

.scn-keepers-arrest-henry {
  background: linear-gradient(180deg, #6b7a8a 0%, #4a5a6a 50%, #3a4a5a 100%), radial-gradient(ellipse at 50% 120%, #4a5a6a 0%, transparent 60%);
}
.scn-keepers-arrest-henry .overcast-sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(0deg, #6b7a8a 0%, #7a8a9a 50%, #8a9aaa 100%);
  animation: kah-sky 20s ease-in-out infinite alternate;
}
.scn-keepers-arrest-henry .muddy-ground {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
}
.scn-keepers-arrest-henry .guard-left {
  position:absolute; bottom:30%; left:20%; width:30px; 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: kah-guard 4s ease-in-out infinite;
}
.scn-keepers-arrest-henry .guard-right {
  position:absolute; bottom:30%; right:20%; width:30px; 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: kah-guard 4s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-keepers-arrest-henry .henry-figure {
  position:absolute; bottom:30%; left:50%; width:28px; height:50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: kah-henry 6s ease-in-out infinite;
}
.scn-keepers-arrest-henry .fallen-crown {
  position:absolute; bottom:26%; left:45%; width:16px; height:10px;
  background: linear-gradient(180deg, #9a8a6a 0%, #6a5a4a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform: rotate(-20deg);
  animation: kah-crown 8s ease-in-out infinite;
}
@keyframes kah-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes kah-guard { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(0) } }
@keyframes kah-henry { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-50%) translateY(-3px) rotate(-2deg) } 50% { transform: translateX(-50%) translateY(0) rotate(1deg) } 75% { transform: translateX(-50%) translateY(-3px) rotate(0) } }
@keyframes kah-crown { 0%,100% { transform: rotate(-20deg) translateY(0) } 25% { transform: rotate(-18deg) translateY(-2px) } 50% { transform: rotate(-22deg) translateY(0) } 75% { transform: rotate(-19deg) translateY(-2px) } }

.scn-henry-lectures-keepers {
  background: linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 40%, #3a4a5a 100%), radial-gradient(ellipse at 50% 100%, #4a5a6a 0%, transparent 70%);
}
.scn-henry-lectures-keepers .overcast-sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(0deg, #6b7a8a 0%, #7a8a9a 50%, #8a9aaa 100%);
  animation: hlk-sky 25s ease-in-out infinite alternate;
}
.scn-henry-lectures-keepers .muddy-ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
}
.scn-henry-lectures-keepers .henry-large {
  position:absolute; bottom:28%; left:45%; width:36px; height:64px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: hlk-henry 5s ease-in-out infinite;
}
.scn-henry-lectures-keepers .feather {
  position:absolute; bottom:50%; left:55%; width:12px; height:4px;
  background: linear-gradient(90deg, rgba(200,190,180,0.8) 0%, transparent 100%);
  border-radius: 50% 20% 20% 50% / 100% 20% 20% 100%;
  transform: rotate(30deg);
  animation: hlk-feather 6s ease-in-out infinite;
}
.scn-henry-lectures-keepers .keeper-left-bg {
  position:absolute; bottom:28%; left:15%; width:28px; height:50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hlk-keeper 4s ease-in-out infinite;
}
.scn-henry-lectures-keepers .keeper-right-bg {
  position:absolute; bottom:28%; right:15%; width:28px; height:50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hlk-keeper 4s ease-in-out infinite;
  animation-delay: -2s;
}
@keyframes hlk-sky { 0% { opacity:0.9 } 50% { opacity:0.7 } 100% { opacity:0.8 } }
@keyframes hlk-henry { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-50%) translateY(-4px) rotate(-3deg) } 50% { transform: translateX(-50%) translateY(0) rotate(2deg) } 75% { transform: translateX(-50%) translateY(-4px) rotate(-1deg) } }
@keyframes hlk-feather { 0% { transform: rotate(30deg) translateY(0) scaleX(1) } 25% { transform: rotate(35deg) translateY(-8px) scaleX(1.1) } 50% { transform: rotate(25deg) translateY(-15px) scaleX(0.9) } 75% { transform: rotate(32deg) translateY(-5px) scaleX(1.05) } 100% { transform: rotate(30deg) translateY(0) scaleX(1) } }
@keyframes hlk-keeper { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-3px) rotate(0) } }

.scn-keepers-take-henry {
  background: linear-gradient(180deg, #6b7a8a 0%, #4a5a6a 50%, #3a4a5a 100%), radial-gradient(ellipse at 50% 100%, #3a4a5a 0%, transparent 60%);
}
.scn-keepers-take-henry .overcast-sky {
  position:absolute; inset:0 0 42% 0;
  background: linear-gradient(0deg, #6b7a8a 0%, #7a8a9a 50%, #8a9aaa 100%);
  animation: kth-sky 18s ease-in-out infinite alternate;
}
.scn-keepers-take-henry .muddy-ground {
  position:absolute; bottom:0; left:0; right:0; height:42%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 60% 90% 0 0;
}
.scn-keepers-take-henry .henry-walking {
  position:absolute; bottom:28%; left:50%; width:30px; height:52px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: kth-walk 4s ease-in-out infinite;
}
.scn-keepers-take-henry .keeper-fore {
  position:absolute; bottom:28%; left:30%; width:30px; 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: kth-guard 5s ease-in-out infinite;
}
.scn-keepers-take-henry .keeper-aft {
  position:absolute; bottom:28%; right:30%; width:30px; 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: kth-guard 5s ease-in-out infinite;
  animation-delay: -2.5s;
}
.scn-keepers-take-henry .chain-left {
  position:absolute; bottom:33%; left:40%; width:4px; height:20px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 10% / 50%;
  transform: rotate(10deg);
  animation: kth-chain 4s ease-in-out infinite;
}
.scn-keepers-take-henry .chain-right {
  position:absolute; bottom:33%; right:40%; width:4px; height:20px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 10% / 50%;
  transform: rotate(-10deg);
  animation: kth-chain 4s ease-in-out infinite;
  animation-delay: -2s;
}
@keyframes kth-sky { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes kth-walk { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-50%) translateY(-2px) rotate(-2deg) } 50% { transform: translateX(-50%) translateY(0) rotate(1deg) } 75% { transform: translateX(-50%) translateY(-2px) rotate(0) } }
@keyframes kth-guard { 0%,100% { transform: translateY(0) rotate(0) } 20% { transform: translateY(-3px) rotate(1deg) } 40% { transform: translateY(0) rotate(-1deg) } 60% { transform: translateY(-3px) rotate(0) } 80% { transform: translateY(0) rotate(1deg) } }
@keyframes kth-chain { 0%,100% { transform: rotate(10deg) translateY(0) } 25% { transform: rotate(12deg) translateY(-2px) } 50% { transform: rotate(8deg) translateY(2px) } 75% { transform: rotate(11deg) translateY(-1px) } }

.scn-london-palace-grey-suit {
  background: linear-gradient(180deg, #f5e6d0 0%, #d4c4a8 40%, #b8a88c 100%), radial-gradient(ellipse at 50% 0%, #fcf0e0 0%, transparent 70%);
}
.scn-london-palace-grey-suit .palace-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b8a0 100%);
  box-shadow: inset 0 12px 30px rgba(100,80,60,0.3);
}
.scn-london-palace-grey-suit .palace-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #b8a88c 0%, #8a7a66 100%);
  border-radius: 20% 80% 0 0 / 10% 30% 0 0;
}
.scn-london-palace-grey-suit .stained-window {
  position:absolute; top:15%; left:50%; width:80px; height:120px;
  background: linear-gradient(180deg, #a0c8e0 0%, #7a9ab0 50%, #4a6a80 100%);
  border: 6px solid #8a7a66;
  border-radius: 12% 12% 4% 4%;
  transform: translateX(-50%);
  box-shadow: inset 0 0 40px rgba(200,220,240,0.5);
  animation: lpg-window 10s ease-in-out infinite alternate;
}
.scn-london-palace-grey-suit .throne {
  position:absolute; bottom:30%; left:50%; width:60px; height:80px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: lpg-throne 6s ease-in-out infinite;
}
.scn-london-palace-grey-suit .lady-grey-figure {
  position:absolute; bottom:22%; left:35%; width:24px; height:46px;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: lpg-lady 8s ease-in-out infinite;
}
.scn-london-palace-grey-suit .king-edward-figure {
  position:absolute; bottom:25%; right:30%; width:30px; height:55px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(50%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: lpg-king 6s ease-in-out infinite alternate;
}
@keyframes lpg-window { 0% { opacity:0.9; box-shadow: inset 0 0 30px rgba(200,220,240,0.4) } 50% { opacity:1; box-shadow: inset 0 0 50px rgba(200,220,240,0.6) } 100% { opacity:0.8; box-shadow: inset 0 0 20px rgba(200,220,240,0.3) } }
@keyframes lpg-throne { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 75% { transform: translateX(-50%) translateY(-2px) rotate(0) } }
@keyframes lpg-lady { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-50%) translateY(-3px) rotate(-2deg) } 50% { transform: translateX(-50%) translateY(0) rotate(1deg) } 75% { transform: translateX(-50%) translateY(-3px) rotate(0) } }
@keyframes lpg-king { 0% { transform: translateX(50%) translateY(0) rotate(0) } 50% { transform: translateX(50%) translateY(-3px) rotate(2deg) } 100% { transform: translateX(50%) translateY(0) rotate(-1deg) } }

.scn-parliament-york-claim {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4bc8a 40%, #8a7a5a 100%),
    radial-gradient(ellipse at 50% 30%, #fff4e0 0%, transparent 60%);
}
.scn-parliament-york-claim .wall-back {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a882 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.15);
}
.scn-parliament-york-claim .wall-side {
  position: absolute; inset: 0 50% 25% 0;
  background: linear-gradient(90deg, #c8b898 0%, #d4c4a0 100%);
  box-shadow: 4px 0 12px rgba(0,0,0,0.12);
}
.scn-parliament-york-claim .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #7a6a4a 0%, #9a8a6a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
}
.scn-parliament-york-claim .dais {
  position: absolute; bottom: 25%; left: 35%; right: 35%; height: 12%;
  background: linear-gradient(0deg, #6a5a3a 0%, #8a7a5a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.2);
}
.scn-parliament-york-claim .throne-back {
  position: absolute; bottom: 33%; left: 42%; right: 42%; height: 18%;
  background: linear-gradient(180deg, #b8a060 0%, #8a7a4a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: pyc-throne 6s ease-in-out infinite alternate;
}
.scn-parliament-york-claim .figure-york {
  position: absolute; bottom: 24%; left: 45%; width: 10%; height: 24%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
  animation: pyc-york 4s ease-in-out infinite alternate;
}
.scn-parliament-york-claim .figure-lord {
  position: absolute; bottom: 24%; left: 25%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -2px 0 4px rgba(0,0,0,0.3);
  animation: pyc-lord 5s ease-in-out infinite alternate;
}
.scn-parliament-york-claim .spear {
  position: absolute; bottom: 34%; left: 22%; width: 1.5%; height: 20%;
  background: linear-gradient(180deg, #8a7050 0%, #5a4a2a 100%);
  border-radius: 2px;
  transform: rotate(12deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: pyc-spear 3s ease-in-out infinite alternate;
}
@keyframes pyc-throne { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes pyc-york { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2%) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes pyc-lord { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-2%) translateY(-1%); } 100% { transform: translateX(0) translateY(0); } }
@keyframes pyc-spear { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(14deg) scaleY(1.02); } 100% { transform: rotate(10deg) scaleY(1); } }

.scn-parliament-edward-bravado {
  background:
    linear-gradient(180deg, #f0dcc0 0%, #d4b88a 40%, #8a7a5a 100%),
    radial-gradient(ellipse at 60% 40%, #fff0d0 0%, transparent 50%);
}
.scn-parliament-edward-bravado .wall-back {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d0bea0 0%, #b8a882 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.1);
}
.scn-parliament-edward-bravado .wall-side {
  position: absolute; inset: 0 55% 25% 0;
  background: linear-gradient(90deg, #c8b898 0%, #d0bea0 100%);
  box-shadow: 4px 0 12px rgba(0,0,0,0.12);
}
.scn-parliament-edward-bravado .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #7a6a4a 0%, #9a8a6a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
}
.scn-parliament-edward-bravado .figure-edward {
  position: absolute; bottom: 22%; left: 42%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #c8553d 0%, #7a2a1a 40%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 2px 0 8px rgba(0,0,0,0.4);
  animation: peb-edward 3s ease-in-out infinite alternate;
}
.scn-parliament-edward-bravado .sword-blood {
  position: absolute; bottom: 36%; left: 38%; width: 2%; height: 22%;
  background: linear-gradient(180deg, #a0461a 0%, #5e1a1d 50%, #3a0a0a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: peb-sword 2s ease-in-out infinite alternate;
}
.scn-parliament-edward-bravado .figure-stafford {
  position: absolute; bottom: 22%; left: 28%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -2px 0 4px rgba(0,0,0,0.3);
  animation: peb-stafford 4s ease-in-out infinite alternate;
}
.scn-parliament-edward-bravado .banner {
  position: absolute; bottom: 30%; left: 55%; width: 6%; height: 25%;
  background: linear-gradient(180deg, #b87878 0%, #702243 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: peb-banner 5s ease-in-out infinite alternate;
}
.scn-parliament-edward-bravado .spark {
  position: absolute; bottom: 38%; left: 36%; width: 2%; height: 2%;
  background: radial-gradient(circle, #ffd080 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,208,128,0.6);
  animation: peb-spark 0.8s ease-in-out infinite alternate;
}
@keyframes peb-edward { 0% { transform: translateX(0) rotate(-2deg) scaleY(1); } 50% { transform: translateX(3%) rotate(0) scaleY(1.04); } 100% { transform: translateX(0) rotate(2deg) scaleY(1); } }
@keyframes peb-sword { 0% { transform: rotate(-18deg) scaleY(1); } 50% { transform: rotate(-12deg) scaleY(1.03); } 100% { transform: rotate(-18deg) scaleY(1); } }
@keyframes peb-stafford { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(-2%) translateY(-1%) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes peb-banner { 0% { transform: scaleX(1) rotate(0); } 50% { transform: scaleX(1.05) rotate(2deg); } 100% { transform: scaleX(1) rotate(0); } }
@keyframes peb-spark { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: 0.6; transform: scale(1); } }

.scn-parliament-warwick-pledge {
  background:
    linear-gradient(180deg, #eadec8 0%, #c8b898 40%, #9a8a6a 100%),
    radial-gradient(ellipse at 50% 30%, #fff4e0 0%, transparent 60%);
}
.scn-parliament-warwick-pledge .wall-back {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a882 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.1);
}
.scn-parliament-warwick-pledge .pillar-left {
  position: absolute; inset: 5% 42% 25% 42%; height: auto;
  background: linear-gradient(90deg, #b8a882 0%, #d4c4a0 30%, #b8a882 100%);
  border-radius: 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.2);
  animation: pw-pillar 12s ease-in-out infinite alternate;
}
.scn-parliament-warwick-pledge .pillar-right {
  position: absolute; inset: 5% 42% 25% 42%; height: auto;
  background: linear-gradient(90deg, #b8a882 0%, #d4c4a0 30%, #b8a882 100%);
  border-radius: 4px;
  box-shadow: -2px 0 8px rgba(0,0,0,0.2);
  animation: pw-pillar 12s ease-in-out infinite alternate-reverse;
}
.scn-parliament-warwick-pledge .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #7a6a4a 0%, #9a8a6a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
}
.scn-parliament-warwick-pledge .throne-full {
  position: absolute; bottom: 20%; left: 40%; right: 40%; height: 22%;
  background: linear-gradient(180deg, #b8a060 0%, #8a7a4a 60%, #6a5a3a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: pw-throne 8s ease-in-out infinite alternate;
}
.scn-parliament-warwick-pledge .figure-warwick {
  position: absolute; bottom: 18%; left: 30%; width: 9%; height: 24%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -2px 0 6px rgba(0,0,0,0.3);
  animation: pw-warwick 5s ease-in-out infinite alternate;
}
.scn-parliament-warwick-pledge .figure-york {
  position: absolute; bottom: 20%; left: 44%; width: 10%; height: 26%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
  animation: pw-york 6s ease-in-out infinite alternate;
}
.scn-parliament-warwick-pledge .vow-glow {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 12%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,214,128,0.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: pw-vow 4s ease-in-out infinite alternate;
}
@keyframes pw-pillar { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pw-throne { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.97); } }
@keyframes pw-warwick { 0% { transform: translateX(0) rotate(-1deg) scaleY(1); } 50% { transform: translateX(-3%) rotate(2deg) scaleY(1.05); } 100% { transform: translateX(0) rotate(0) scaleY(1); } }
@keyframes pw-york { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2%) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes pw-vow { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.1); } 100% { opacity: 0.4; transform: scaleX(1); } }

.scn-parliament-york-ascends {
  background:
    linear-gradient(180deg, #f0dcc0 0%, #d4b88a 30%, #9a8a6a 100%),
    radial-gradient(ellipse at 50% 20%, #fff0d0 0%, transparent 70%);
}
.scn-parliament-york-ascends .wall-back {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a882 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.1);
}
.scn-parliament-york-ascends .wall-side {
  position: absolute; inset: 0 48% 15% 0;
  background: linear-gradient(90deg, #c8b898 0%, #d4c4a0 100%);
  box-shadow: 4px 0 12px rgba(0,0,0,0.12);
}
.scn-parliament-york-ascends .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, #7a6a4a 0%, #9a8a6a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
}
.scn-parliament-york-ascends .steps {
  position: absolute; bottom: 15%; left: 35%; right: 35%; height: 20%;
  background: linear-gradient(0deg, #6a5a3a 0%, #8a7a5a 20%, #9a8a6a 40%, #8a7a5a 60%, #6a5a3a 80%, #5a4a2a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.2);
  animation: pya-steps 10s ease-in-out infinite alternate;
}
.scn-parliament-york-ascends .throne-high {
  position: absolute; bottom: 35%; left: 40%; right: 40%; height: 18%;
  background: linear-gradient(180deg, #b8a060 0%, #8a7a4a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: pya-throne 7s ease-in-out infinite alternate;
}
.scn-parliament-york-ascends .figure-york {
  position: absolute; bottom: 22%; left: 44%; width: 10%; height: 26%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
  animation: pya-york 6s ease-in-out infinite alternate;
}
.scn-parliament-york-ascends .figure-soldiers {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 18%;
  background:
    repeating-linear-gradient(90deg,
      transparent 0%, transparent 4%,
      #4a3a2a 4%, #4a3a2a 8%,
      transparent 8%, transparent 12%,
      #3a2a1a 12%, #3a2a1a 16%,
      transparent 16%, transparent 20%,
      #5a4a3a 20%, #5a4a3a 24%,
      transparent 24%, transparent 28%,
      #4a3a2a 28%, #4a3a2a 32%,
      transparent 32%, transparent 36%,
      #3a2a1a 36%, #3a2a1a 40%,
      transparent 40%, transparent 44%,
      #5a4a3a 44%, #5a4a3a 48%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.7;
  animation: pya-soldiers 15s ease-in-out infinite alternate;
}
.scn-parliament-york-ascends .light-beam {
  position: absolute; bottom: 20%; left: 45%; width: 10%; height: 50%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  filter: blur(8px);
  transform: rotate(5deg);
  animation: pya-beam 4s ease-in-out infinite alternate;
}
@keyframes pya-steps { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.03); opacity: 1; } 100% { transform: scaleY(0.97); opacity: 0.9; } }
@keyframes pya-throne { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2%); } 100% { transform: scaleY(0.98) translateY(0); } }
@keyframes pya-york { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3%) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes pya-soldiers { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1%) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes pya-beam { 0% { opacity: 0.3; transform: rotate(3deg) scaleY(1); } 50% { opacity: 0.7; transform: rotate(5deg) scaleY(1.1); } 100% { opacity: 0.3; transform: rotate(3deg) scaleY(1); } }

.scn-son-weeps {
  background:
    linear-gradient(180deg, #4a5060 0%, #2a3040 50%, #1a1f2a 100%),
    radial-gradient(ellipse at 50% 30%, #6a7080 0%, transparent 70%);
}
.scn-son-weeps .ground {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(0deg, #1e2329 0%, #2a3038 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.4);
}
.scn-son-weeps .figure {
  position:absolute; bottom:10%; left:50%; width:40px; height:70px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #3a3f4a 0%, #252a33 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  animation: sw-figure 6s ease-in-out infinite;
}
.scn-son-weeps .blood {
  position:absolute; bottom:5%; left:45%; width:30px; height:8px;
  background: radial-gradient(ellipse, #5e1a1d 0%, #3a1015 80%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(90,26,29,.5);
  animation: sw-blood 8s ease-in-out infinite;
}
.scn-son-weeps .tear-drop {
  position:absolute; bottom:30%; left:48%; width:4px; height:8px;
  background: linear-gradient(180deg, rgba(200,210,230,0.6) 0%, rgba(160,170,190,0.2) 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: sw-tear 3s ease-in infinite;
}
.scn-son-weeps .tear-drop.tear-delay {
  left:52%;
  animation-delay: 1.5s;
}
.scn-son-weeps .cloud {
  position:absolute; top:15%; left:20%; width:100px; height:20px;
  background: linear-gradient(180deg, rgba(180,190,200,0.5) 0%, rgba(120,130,140,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: sw-cloud 40s linear infinite;
}
.scn-son-weeps .sword {
  position:absolute; bottom:25%; right:25%; width:6px; height:50px;
  background: linear-gradient(180deg, #6a7080 0%, #3a4050 100%);
  border-radius: 0 0 40% 40%;
  transform: rotate(15deg);
  animation: sw-sword 5s ease-in-out infinite alternate;
}
@keyframes sw-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  30% { transform: translateX(-50%) translateY(-3px) rotate(2deg); }
  60% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes sw-blood {
  0% { opacity:0.7; transform: scale(1); }
  50% { opacity:0.9; transform: scale(1.05); }
  100% { opacity:0.6; transform: scale(0.95); }
}
@keyframes sw-tear {
  0% { transform: translateY(25px) scaleY(0.3); opacity:0; }
  20% { transform: translateY(0) scaleY(1); opacity:1; }
  80% { transform: translateY(20px) scaleY(0.8); opacity:0.6; }
  100% { transform: translateY(30px) scaleY(0.2); opacity:0; }
}
@keyframes sw-cloud {
  0% { transform: translateX(-50px); }
  50% { transform: translateX(30px); }
  100% { transform: translateX(100vw); }
}
@keyframes sw-sword {
  0% { transform: rotate(10deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(12deg); }
}

.scn-father-kills-son {
  background:
    linear-gradient(180deg, #3a4050 0%, #2a303f 50%, #1a1f2a 100%),
    radial-gradient(ellipse at 50% 20%, #4a5060 0%, transparent 80%);
}
.scn-father-kills-son .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(0deg, #1a1f26 0%, #2a3038 100%);
  box-shadow: inset 0 12px 24px rgba(0,0,0,.5);
}
.scn-father-kills-son .father {
  position:absolute; bottom:10%; left:35%; width:50px; height:80px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #4a5060 0%, #2a3040 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  animation: fks-father 7s ease-in-out infinite;
}
.scn-father-kills-son .son-body {
  position:absolute; bottom:5%; left:50%; width:45px; height:60px;
  transform:translateX(-50%) rotate(-20deg);
  background: linear-gradient(180deg, #3a3f4a 0%, #1a1f2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: fks-son 4s ease-in-out infinite;
}
.scn-father-kills-son .blood-pool {
  position:absolute; bottom:2%; left:42%; width:40px; height:12px;
  background: radial-gradient(ellipse, #5e1a1d 0%, #3a1015 80%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(90,26,29,.4);
  animation: fks-blood 5s ease-in-out infinite alternate;
}
.scn-father-kills-son .cloud-fks {
  position:absolute; top:10%; right:15%; width:120px; height:18px;
  background: linear-gradient(180deg, rgba(180,190,200,0.4) 0%, rgba(120,130,140,0.05) 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: fks-cloud 30s linear infinite;
}
.scn-father-kills-son .armor-piece {
  position:absolute; bottom:20%; left:25%; width:20px; height:25px;
  background: linear-gradient(180deg, #6a7080 0%, #3a4050 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(40deg);
  animation: fks-armor 6s ease-in-out infinite;
}
@keyframes fks-father {
  0% { transform: translateX(-50%) translateY(0) rotate(-3deg); }
  40% { transform: translateX(-50%) translateY(-4px) rotate(3deg); }
  70% { transform: translateX(-50%) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes fks-son {
  0% { transform: translateX(-50%) rotate(-20deg) translateY(0); }
  30% { transform: translateX(-50%) rotate(-25deg) translateY(-2px); }
  70% { transform: translateX(-50%) rotate(-15deg) translateY(-1px); }
  100% { transform: translateX(-50%) rotate(-22deg) translateY(0); }
}
@keyframes fks-blood {
  0% { opacity:0.6; transform: scale(1); }
  50% { opacity:0.8; transform: scale(1.1); }
  100% { opacity:0.5; transform: scale(0.9); }
}
@keyframes fks-cloud {
  0% { transform: translateX(0); }
  50% { transform: translateX(-30px); }
  100% { transform: translateX(-120vw); }
}
@keyframes fks-armor {
  0% { transform: rotate(35deg) translateY(0); }
  50% { transform: rotate(50deg) translateY(-4px); }
  100% { transform: rotate(40deg) translateY(0); }
}

.scn-double-grief {
  background:
    linear-gradient(180deg, #4a5060 0%, #2a303f 50%, #1a1f2a 100%),
    radial-gradient(ellipse at 50% 50%, #3a4050 0%, transparent 70%);
}
.scn-double-grief .face-silhouette {
  position:absolute; bottom:20%; left:50%; width:80px; height:100px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #2a3040 0%, #1a1f2a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: dg-face 12s ease-in-out infinite;
}
.scn-double-grief .rose-red {
  position:absolute; bottom:35%; left:38%; width:14px; height:14px;
  background: radial-gradient(circle, #a0461a 0%, #5e1a1d 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 4px rgba(90,26,29,.4);
  animation: dg-rose-red 6s ease-in-out infinite;
}
.scn-double-grief .rose-white {
  position:absolute; bottom:30%; right:36%; width:12px; height:12px;
  background: radial-gradient(circle, #d0d0d8 0%, #9a9aa8 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 3px rgba(200,200,210,.3);
  animation: dg-rose-white 7s ease-in-out infinite;
}
.scn-double-grief .tear-dg {
  position:absolute; bottom:45%; left:47%; width:3px; height:10px;
  background: linear-gradient(180deg, rgba(200,210,230,0.7) 0%, rgba(160,170,190,0.2) 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: dg-tear 4s ease-in infinite;
}
.scn-double-grief .tear-dg.tear-dg-delay {
  left:53%;
  animation-delay: 2s;
}
.scn-double-grief .bg-fog {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 30%, transparent 0%, rgba(0,0,0,0.3) 80%);
  animation: dg-fog 20s ease-in-out infinite alternate;
}
@keyframes dg-face {
  0% { transform: translateX(-50%) rotate(-3deg); }
  40% { transform: translateX(-50%) rotate(2deg); }
  80% { transform: translateX(-50%) rotate(-1deg); }
  100% { transform: translateX(-50%) rotate(0); }
}
@keyframes dg-rose-red {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  30% { transform: translateY(-3px) rotate(10deg) scale(1.05); }
  70% { transform: translateY(-1px) rotate(-5deg) scale(0.95); }
  100% { transform: translateY(0) rotate(0) scale(1); }
}
@keyframes dg-rose-white {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  40% { transform: translateY(-4px) rotate(8deg) scale(1.08); }
  60% { transform: translateY(-2px) rotate(-4deg) scale(0.9); }
  100% { transform: translateY(0) rotate(0) scale(1); }
}
@keyframes dg-tear {
  0% { transform: translateY(20px) scaleY(0.3); opacity:0; }
  20% { transform: translateY(0) scaleY(1); opacity:1; }
  70% { transform: translateY(15px) scaleY(0.8); opacity:0.5; }
  100% { transform: translateY(25px) scaleY(0.2); opacity:0; }
}
@keyframes dg-fog {
  0% { opacity:0.5; }
  50% { opacity:0.8; }
  100% { opacity:0.3; }
}

.scn-son-bears-body {
  background:
    linear-gradient(180deg, #3a4050 0%, #2a303f 50%, #1a1f2a 100%),
    radial-gradient(ellipse at 50% 40%, #4a5060 0%, transparent 70%);
}
.scn-son-bears-body .ground-sbb {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #1a1f26 0%, #2a3038 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.4);
}
.scn-son-bears-body .carrier {
  position:absolute; bottom:5%; left:35%; width:50px; height:90px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #4a5060 0%, #2a3040 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  animation: sbb-carrier 5s ease-in-out infinite;
}
.scn-son-bears-body .body-carried {
  position:absolute; bottom:20%; left:30%; width:40px; height:60px;
  transform:rotate(30deg);
  background: linear-gradient(180deg, #3a3f4a 0%, #1a1f2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: sbb-body 5s ease-in-out infinite;
}
.scn-son-bears-body .footprint {
  position:absolute; bottom:2%; left:25%; width:12px; height:6px;
  background: radial-gradient(ellipse, #3a4045 0%, #1a1f24 100%);
  border-radius: 50%;
  animation: sbb-fp 6s ease-in-out infinite;
}
.scn-son-bears-body .footprint.fp2 {
  left:40%;
  animation-delay: 3s;
}
.scn-son-bears-body .cloud-sbb {
  position:absolute; top:8%; left:10%; width:130px; height:22px;
  background: linear-gradient(180deg, rgba(180,190,200,0.35) 0%, rgba(120,130,140,0.05) 100%);
  border-radius: 50%;
  filter: blur(12px);
  animation: sbb-cloud 45s linear infinite;
}
@keyframes sbb-carrier {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  20% { transform: translateX(-50%) translateY(-5px) rotate(2deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(-1deg); }
  80% { transform: translateX(-50%) translateY(-4px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes sbb-body {
  0% { transform: rotate(30deg) translateY(0); }
  25% { transform: rotate(35deg) translateY(-3px); }
  60% { transform: rotate(28deg) translateY(-1px); }
  100% { transform: rotate(32deg) translateY(0); }
}
@keyframes sbb-fp {
  0% { opacity:0.3; transform: scale(1); }
  50% { opacity:0.6; transform: scale(1.1); }
  100% { opacity:0.2; transform: scale(0.9); }
}
@keyframes sbb-cloud {
  0% { transform: translateX(0); }
  50% { transform: translateX(20px); }
  100% { transform: translateX(100vw); }
}

.scn-queen-elizabeth-news {
  background: linear-gradient(180deg, #e8d8b8 0%, #d4c4a4 30%, #c4b090 60%, #b09870 100%),
              radial-gradient(circle at 70% 40%, #f0e4c0 0%, transparent 60%);
}
.scn-queen-elizabeth-news .wall-right { position: absolute; top:0; right:0; width:45%; height:100%; background: linear-gradient(90deg, #b09870 0%, #c4b090 100%); }
.scn-queen-elizabeth-news .wall-left { position: absolute; top:0; left:0; width:55%; height:100%; background: linear-gradient(90deg, #d4c4a4 0%, #e8d8b8 40%, #f0e4c0 100%); }
.scn-queen-elizabeth-news .floor { position: absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); }
.scn-queen-elizabeth-news .window { position: absolute; top:15%; right:10%; width:30%; height:45%; }
.scn-queen-elizabeth-news .window.frame { background: linear-gradient(135deg, #8a7a6a, #6a5a4a); border: 8px solid #5a4a3a; border-radius: 4px; }
.scn-queen-elizabeth-news .window.light { position: absolute; top:5%; right:12%; width:26%; height:40%; background: linear-gradient(135deg, #ffe0a0 0%, #ffc070 50%, #e8a050 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); border-radius: 2px; animation: qe-light 6s ease-in-out infinite alternate; }
.scn-queen-elizabeth-news .figure.queen { position: absolute; bottom:30%; left:30%; width:16%; height:45%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qe-figure 8s ease-in-out infinite; }
.scn-queen-elizabeth-news .table { position: absolute; bottom:28%; left:42%; width:30%; height:8%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.4); }
.scn-queen-elizabeth-news .scroll { position: absolute; bottom:40%; left:50%; width:12%; height:6%; background: linear-gradient(180deg, #e0c8a0 0%, #c8b090 100%); border-radius: 2px; transform: rotate(-5deg); animation: qe-scroll 5s ease-in-out infinite alternate; box-shadow: 0 2px 6px rgba(0,0,0,0.3); }

@keyframes qe-light {
  0% { opacity: 0.7; box-shadow: 0 0 20px 5px #ffc070; }
  50% { opacity: 1; box-shadow: 0 0 40px 15px #ffd090; }
  100% { opacity: 0.8; box-shadow: 0 0 25px 8px #e8a050; }
}
@keyframes qe-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes qe-scroll {
  0% { transform: rotate(-8deg) translateY(0); }
  100% { transform: rotate(8deg) translateY(-2px); }
}

.scn-park-near-middleham-castle {
  background: linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 40%, #2a3a3a 80%, #1a2a2a 100%),
              radial-gradient(ellipse at 50% 100%, #3a4a4a 0%, transparent 70%);
}
.scn-park-near-middleham-castle .sky.overcast { position: absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 50%, #4a5a5a 100%); animation: pm-sky 20s ease-in-out infinite alternate; }
.scn-park-near-middleham-castle .ground-path { position: absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 50%, #1a2a1a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
.scn-park-near-middleham-castle .tree.tree-a { position: absolute; bottom:20%; left:10%; width:12%; height:50%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 30% 30% 10% 10% / 80% 80% 20% 20%; transform-origin: bottom center; animation: pm-tree 15s ease-in-out infinite; }
.scn-park-near-middleham-castle .tree.tree-b { position: absolute; bottom:20%; right:15%; width:15%; height:45%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 30% 30% 10% 10% / 80% 80% 20% 20%; transform-origin: bottom center; animation: pm-tree 15s ease-in-out infinite 3s; }
.scn-park-near-middleham-castle .thicket { position: absolute; bottom:15%; left:30%; right:30%; height:30%; background: radial-gradient(ellipse at center, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50%; filter: blur(8px); opacity: 0.8; }
.scn-park-near-middleham-castle .figure.gloucester { position: absolute; bottom:15%; left:20%; width:10%; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pm-figure 12s ease-in-out infinite; }
.scn-park-near-middleham-castle .figure.hastings { position: absolute; bottom:15%; left:40%; width:10%; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pm-figure 12s ease-in-out infinite -3s; }
.scn-park-near-middleham-castle .figure.stanley { position: absolute; bottom:15%; right:25%; width:10%; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pm-figure 12s ease-in-out infinite -7s; }

@keyframes pm-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes pm-tree {
  0% { transform: rotate(-2deg) scale(1); }
  25% { transform: rotate(2deg) scale(1.02); }
  50% { transform: rotate(-1deg) scale(0.98); }
  75% { transform: rotate(1deg) scale(1.01); }
  100% { transform: rotate(-2deg) scale(1); }
}
@keyframes pm-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(3deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

.scn-henry-resigns-government {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 80%, #0a0500 100%),
              radial-gradient(circle at 30% 60%, #5a3a2a 0%, transparent 60%);
}
.scn-henry-resigns-government .cell-wall { position: absolute; inset:0; background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 50%, #3a2a1a 100%); }
.scn-henry-resigns-government .cell-floor { position: absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); }
.scn-henry-resigns-government .window-bars { position: absolute; top:20%; left:30%; width:40%; height:40%; border: 6px solid #5a4a3a; border-radius: 8px; background: transparent; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
.scn-henry-resigns-government .window-light { position: absolute; top:20%; left:30%; width:40%; height:40%; background: linear-gradient(135deg, #a08060 0%, #806040 50%, #604020 100%); opacity: 0.5; animation: hr-light 8s ease-in-out infinite alternate; }
.scn-henry-resigns-government .figure.henry { position: absolute; bottom:10%; left:40%; width:12%; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hr-figure 10s ease-in-out infinite; }
.scn-henry-resigns-government .birdcage { position: absolute; top:20%; right:15%; width:10%; height:15%; background: radial-gradient(circle, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50%; border: 3px solid #5a4a3a; animation: hr-cage 12s ease-in-out infinite; }
.scn-henry-resigns-government .stool { position: absolute; bottom:10%; left:48%; width:8%; height:6%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; }

@keyframes hr-light {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.05); }
  100% { opacity: 0.4; transform: scale(0.95); }
}
@keyframes hr-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hr-cage {
  0% { transform: rotate(-3deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(2px); }
  100% { transform: rotate(-3deg) translateX(0); }
}

.scn-henry-appoints-protectors {
  background: linear-gradient(180deg, #4a3020 0%, #3a2010 40%, #2a1000 80%, #1a0800 100%),
              radial-gradient(circle at 50% 20%, #6a4a3a 0%, transparent 60%);
}
.scn-henry-appoints-protectors .chamber-wall { position: absolute; inset:0; background: linear-gradient(90deg, #4a3020 0%, #3a2010 50%, #4a3020 100%); }
.scn-henry-appoints-protectors .chamber-floor { position: absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1000 0%, #1a0800 100%); }
.scn-henry-appoints-protectors .table-round { position: absolute; bottom:20%; left:25%; right:25%; height:15%; background: radial-gradient(ellipse at center, #5a3a2a 0%, #3a2010 100%); border-radius: 50%; box-shadow: 0 6px 20px rgba(0,0,0,0.7); }
.scn-henry-appoints-protectors .figure.henry-center { position: absolute; bottom:20%; left:45%; width:10%; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ha-figure 14s ease-in-out infinite; }
.scn-henry-appoints-protectors .figure.clarence { position: absolute; bottom:20%; left:32%; width:8%; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ha-figure 14s ease-in-out infinite 2s; }
.scn-henry-appoints-protectors .figure.warwick { position: absolute; bottom:20%; right:30%; width:8%; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ha-figure 14s ease-in-out infinite 5s; }
.scn-henry-appoints-protectors .candle { position: absolute; bottom:30%; left:48%; width:2%; height:10%; background: linear-gradient(180deg, #e0a060 0%, #c08040 100%); border-radius: 2px; }
.scn-henry-appoints-protectors .candle-glow { position: absolute; bottom:30%; left:45%; width:10%; height:15%; background: radial-gradient(circle, #ffc070 0%, transparent 70%); opacity: 0.7; animation: ha-glow 3s ease-in-out infinite alternate; }

@keyframes ha-figure {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-3px) rotate(2deg); }
  66% { transform: translateY(2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ha-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.6; transform: scale(0.9); }
}

.scn-mortimer-cross-edward-laments {
  background: linear-gradient(180deg, #f5d6b3 0%, #e8c4a0 30%, #b89a7a 60%, #5a4a3a 100%),
              radial-gradient(ellipse at 50% 80%, #f0c8a0 0%, transparent 70%);
}
.scn-mortimer-cross-edward-laments .dawn-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffdbb5 0%, #f0c8a0 50%, #d4a87a 100%);
  animation: ml-sky 20s ease-in-out infinite alternate;
}
.scn-mortimer-cross-edward-laments .mountain {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: ml-mountain 15s ease-in-out infinite alternate;
}
.scn-mortimer-cross-edward-laments .cross {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a6a5a, #3a2a1a);
  border-radius: 2px;
  box-shadow: 0 0 15px rgba(0,0,0,0.3);
  animation: ml-cross 8s ease-in-out infinite;
}
.scn-mortimer-cross-edward-laments .cross::before {
  content: ''; position: absolute; top: 15px; left: -20px; width: 48px; height: 8px;
  background: linear-gradient(90deg, #7a6a5a, #3a2a1a);
  border-radius: 2px;
}
.scn-mortimer-cross-edward-laments .fallen-figure {
  position: absolute; bottom: 22%; left: 44%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(80deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ml-fall 6s ease-in-out infinite;
}
.scn-mortimer-cross-edward-laments .mourner {
  position: absolute; bottom: 24%; left: 55%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ml-mourn 5s ease-in-out infinite;
}
.scn-mortimer-cross-edward-laments .rays {
  position: absolute; top: 10%; left: 20%; width: 200px; height: 150px;
  background: radial-gradient(ellipse at 30% 50%, rgba(255,200,150,0.4) 0%, transparent 70%);
  filter: blur(10px);
  animation: ml-rays 12s ease-in-out infinite alternate;
}
.scn-mortimer-cross-edward-laments .tear-drop {
  position: absolute; bottom: 28%; left: 57%; width: 4px; height: 6px;
  background: radial-gradient(circle at 50% 30%, #b0d0e8, #6080a0);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(96,128,160,0.6);
  animation: ml-tear 3s ease-in-out infinite;
}
@keyframes ml-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ml-mountain { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes ml-cross { 0%,100% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(2deg); } }
@keyframes ml-fall { 0%,100% { transform: rotate(80deg) translateY(0); } 50% { transform: rotate(82deg) translateY(-3px); } }
@keyframes ml-mourn { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(3deg); } 75% { transform: translateY(1px) rotate(-2deg); } }
@keyframes ml-rays { 0% { transform: scale(0.95) rotate(-3deg); opacity: 0.6; } 100% { transform: scale(1.05) rotate(3deg); opacity: 1; } }
@keyframes ml-tear { 0%,100% { transform: translateY(0) scale(1); opacity: 0.7; } 50% { transform: translateY(10px) scale(0.8); opacity: 0; } }

.scn-mortimer-cross-richard-vows {
  background: linear-gradient(180deg, #f5d6b3 0%, #e8c4a0 30%, #b89a7a 60%, #5a4a3a 100%),
              radial-gradient(ellipse at 50% 60%, #f0c860 0%, transparent 60%);
}
.scn-mortimer-cross-richard-vows .dawn-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffe8b0 0%, #f0c860 40%, #d4a040 100%);
  animation: rv-sky 18s ease-in-out infinite alternate;
}
.scn-mortimer-cross-richard-vows .sun-glow {
  position: absolute; top: 5%; left: 30%; width: 120px; height: 120px;
  background: radial-gradient(circle, #ffec80 0%, #f0c860 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(15px);
  animation: rv-glow 6s ease-in-out infinite alternate;
}
.scn-mortimer-cross-richard-vows .eagle-silhouette {
  position: absolute; top: 8%; left: 38%; width: 60px; height: 40px;
  background: #1a1005;
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  transform: rotate(-10deg);
  animation: rv-eagle 12s ease-in-out infinite alternate;
}
.scn-mortimer-cross-richard-vows .richard-figure {
  position: absolute; bottom: 20%; left: 50%; width: 35px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rv-richard 5s ease-in-out infinite;
}
.scn-mortimer-cross-richard-vows .shadow {
  position: absolute; bottom: 15%; left: 40%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5), transparent);
  border-radius: 50%;
  animation: rv-shadow 5s ease-in-out infinite;
}
.scn-mortimer-cross-richard-vows .wind-sweep {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 10px;
  background: linear-gradient(90deg, transparent, rgba(200,180,150,0.3), transparent);
  filter: blur(3px);
  animation: rv-wind 8s linear infinite;
}
.scn-mortimer-cross-richard-vows .spark {
  position: absolute; bottom: 30%; left: 45%; width: 4px; height: 4px;
  background: #fff0b0;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #ffd060;
  animation: rv-spark 2s ease-in-out infinite;
}
@keyframes rv-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes rv-glow { 0% { transform: scale(1); opacity: 0.8; } 100% { transform: scale(1.15); opacity: 1; } }
@keyframes rv-eagle { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(10px); } 100% { transform: rotate(-15deg) translateX(-5px); } }
@keyframes rv-richard { 0%,100% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-50%) rotate(-2deg) scaleY(1.02); } 75% { transform: translateX(-50%) rotate(2deg) scaleY(0.98); } }
@keyframes rv-shadow { 0%,100% { transform: scaleX(1); opacity: 0.6; } 50% { transform: scaleX(1.1); opacity: 0.8; } }
@keyframes rv-wind { 0% { transform: translateX(-100vw); } 100% { transform: translateX(100vw); } }
@keyframes rv-spark { 0%,100% { transform: translateY(0) scale(1); opacity: 0; } 50% { transform: translateY(-20px) scale(1.5); opacity: 1; } }

.scn-mortimer-cross-warwick-news {
  background: linear-gradient(180deg, #d4c0a0 0%, #b0a080 30%, #80705a 60%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 70%, #c0b098 0%, transparent 60%);
}
.scn-mortimer-cross-warwick-news .dawn-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f0e0c8 0%, #d4c0a0 50%, #a09078 100%);
  animation: wn-sky 22s ease-in-out infinite alternate;
}
.scn-mortimer-cross-warwick-news .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #7a6a5a, #3a2a1a);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: wn-ground 10s ease-in-out infinite alternate;
}
.scn-mortimer-cross-warwick-news .warwick-kneeling {
  position: absolute; bottom: 15%; left: 35%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a, #2a1a0a);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wn-kneel 6s ease-in-out infinite;
}
.scn-mortimer-cross-warwick-news .messenger {
  position: absolute; bottom: 18%; left: 55%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #6a5a4a, #3a2a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wn-messenger 4s ease-in-out infinite;
}
.scn-mortimer-cross-warwick-news .news-letter {
  position: absolute; bottom: 25%; left: 52%; width: 20px; height: 25px;
  background: linear-gradient(135deg, #e0c8a0, #c0a880);
  border: 1px solid #8a7a5a;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: wn-letter 5s ease-in-out infinite;
}
.scn-mortimer-cross-warwick-news .mist {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent, rgba(200,190,170,0.3) 50%, transparent);
  filter: blur(8px);
  animation: wn-mist 15s linear infinite alternate;
}
.scn-mortimer-cross-warwick-news .crows {
  position: absolute; top: 20%; right: 10%; width: 30px; height: 20px;
  background: #1a1005;
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  transform: rotate(15deg);
  animation: wn-crows 8s ease-in-out infinite alternate;
}
@keyframes wn-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes wn-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes wn-kneel { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(5deg); } 75% { transform: translateY(1px) rotate(-3deg); } }
@keyframes wn-messenger { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes wn-letter { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-5px) rotate(10deg); opacity: 0.8; } }
@keyframes wn-mist { 0% { transform: translateX(-10px); opacity: 0; } 50% { opacity: 0.5; } 100% { transform: translateX(10px); opacity: 0; } }
@keyframes wn-crows { 0% { transform: rotate(15deg) translateX(0); } 100% { transform: rotate(25deg) translateX(-20px); } }

.scn-warwick-rallying-allies {
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 30%, #2a2a3a 60%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 60%, #5a5a6a 0%, transparent 70%);
}
.scn-warwick-rallying-allies .overcast-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #7a7a8a, #5a5a6a, #7a7a8a);
  animation: ra-sky 25s linear infinite alternate;
}
.scn-warwick-rallying-allies .banners {
  position: absolute; bottom: 35%; left: 10%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #804030, #503020);
  clip-path: polygon(0% 0%, 100% 0%, 100% 80%, 50% 100%, 0% 80%);
  transform: rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ra-banner 4s ease-in-out infinite;
}
.scn-warwick-rallying-allies .warwick-arms {
  position: absolute; bottom: 20%; left: 45%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ra-warwick 3s ease-in-out infinite;
}
.scn-warwick-rallying-allies .warwick-arms::before,
.scn-warwick-rallying-allies .warwick-arms::after {
  content: ''; position: absolute; top: 20%; width: 25px; height: 8px;
  background: #2a1a0a;
  border-radius: 50%;
  animation: ra-arms 3s ease-in-out infinite;
}
.scn-warwick-rallying-allies .warwick-arms::before {
  left: -20px; transform: rotate(-30deg);
}
.scn-warwick-rallying-allies .warwick-arms::after {
  right: -20px; transform: rotate(30deg);
}
.scn-warwick-rallying-allies .allies-silhouettes {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(90deg, transparent, #1a1a2a 20%, #1a1a2a 80%, transparent);
  border-radius: 40% 60% 0 0 / 50% 50% 0 0;
  animation: ra-allies 8s ease-in-out infinite alternate;
}
.scn-warwick-rallying-allies .spears {
  position: absolute; bottom: 30%; left: 30%; width: 4px; height: 40px;
  background: #4a3a2a;
  box-shadow: 30px 0 #4a3a2a, -20px -10px #4a3a2a, 50px 5px #4a3a2a;
  animation: ra-spears 6s ease-in-out infinite;
}
.scn-warwick-rallying-allies .dust {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(100,90,80,0.3), transparent);
  filter: blur(5px);
  animation: ra-dust 7s linear infinite;
}
.scn-warwick-rallying-allies .onward-motion {
  position: absolute; bottom: 12%; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, transparent, rgba(180,170,150,0.4), transparent);
  filter: blur(2px);
  animation: ra-motion 4s linear infinite;
}
@keyframes ra-sky { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }
@keyframes ra-banner { 0%,100% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(0deg) scaleY(1.05); } }
@keyframes ra-warwick { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(3deg); } }
@keyframes ra-arms { 0%,100% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-40deg) translateY(-5px); } }
@keyframes ra-allies { 0% { transform: scaleY(0.95); opacity: 0.7; } 100% { transform: scaleY(1.05); opacity: 1; } }
@keyframes ra-spears { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes ra-dust { 0% { transform: translateX(-10px); opacity: 0; } 50% { opacity: 0.5; } 100% { transform: translateX(10px); opacity: 0; } }
@keyframes ra-motion { 0% { transform: translateX(-100vw); } 100% { transform: translateX(100vw); } }

.scn-henry-defends-reign {
  background:
    linear-gradient(180deg, #d4b896 0%, #c4a482 40%, #9c7a5a 100%),
    radial-gradient(ellipse at 50% 0%, #e0c8a0 0%, transparent 60%);
}
.scn-henry-defends-reign .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #b8956a 0%, #c8a87a 50%, #b8956a 100%);
  animation: hdr-wall 20s ease-in-out infinite alternate;
}
.scn-henry-defends-reign .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
}
.scn-henry-defends-reign .throne {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 90px;
  background: linear-gradient(135deg, #8a6030 0%, #5a3a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.5);
  animation: hdr-throne 12s ease-in-out infinite;
}
.scn-henry-defends-reign .crown {
  position: absolute; bottom: 52%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 20px;
  background: radial-gradient(circle at 30% 50%, #f0c060 0%, #c08030 60%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(192,128,48,0.4);
  animation: hdr-crown 4s ease-in-out infinite alternate;
}
.scn-henry-defends-reign .king {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #a07050 0%, #604030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hdr-king 6s ease-in-out infinite;
}
.scn-henry-defends-reign .window-glow {
  position: absolute; top: 10%; left: 10%; width: 80px; height: 100px;
  background: radial-gradient(ellipse, #fff5e0 0%, #d4b080 50%, transparent 70%);
  border-radius: 10% / 20%;
  box-shadow: 0 0 40px 20px rgba(212,176,128,0.3);
  animation: hdr-glow 8s ease-in-out infinite alternate;
}
.scn-henry-defends-reign .tapestry {
  position: absolute; top: 18%; right: 8%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a1a 50%, #5a3a2a 100%);
  border-radius: 5%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: hdr-tapestry 20s ease-in-out infinite;
}
.scn-henry-defends-reign .candle {
  position: absolute; bottom: 44%; left: 28%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #f0d0a0 0%, #a08050 100%);
  border-radius: 2px;
  box-shadow: 0 -10px 20px 10px rgba(240,208,160,0.5);
  animation: hdr-candle 3s ease-in-out infinite alternate;
}
@keyframes hdr-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes hdr-throne { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-4px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes hdr-crown { 0% { transform: translateX(-50%) rotate(-3deg) scale(1); } 100% { transform: translateX(-50%) rotate(3deg) scale(1.05); } }
@keyframes hdr-king { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(0); } 75% { transform: translateX(-50%) translateY(-1px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes hdr-glow { 0% { opacity: 0.7; box-shadow: 0 0 30px 15px rgba(212,176,128,0.2); } 50% { opacity: 1; box-shadow: 0 0 50px 25px rgba(212,176,128,0.4); } 100% { opacity: 0.8; box-shadow: 0 0 35px 20px rgba(212,176,128,0.3); } }
@keyframes hdr-tapestry { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes hdr-candle { 0% { transform: scaleY(1) translateY(0); opacity: 0.8; } 50% { transform: scaleY(1.05) translateY(-2px); opacity: 1; } 100% { transform: scaleY(0.95) translateY(1px); opacity: 0.9; } }

/* Scene: henry-seized */
.scn-henry-seized {
  background:
    linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 40%, #4a3a2a 100%),
    radial-gradient(ellipse at 50% 20%, #b09a80 0%, transparent 70%);
}
.scn-henry-seized .hall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%);
  animation: hs-hall 15s ease-in-out infinite alternate;
}
.scn-henry-seized .column-left {
  position: absolute; top: 0; left: 10%; width: 30px; height: 100%;
  background: linear-gradient(90deg, #a09080 0%, #c0b0a0 40%, #908070 100%);
  border-radius: 10% / 5%;
  box-shadow: 5px 0 20px rgba(0,0,0,0.3);
}
.scn-henry-seized .column-right {
  position: absolute; top: 0; right: 10%; width: 30px; height: 100%;
  background: linear-gradient(90deg, #908070 0%, #c0b0a0 60%, #a09080 100%);
  border-radius: 10% / 5%;
  box-shadow: -5px 0 20px rgba(0,0,0,0.3);
}
.scn-henry-seized .king-henry {
  position: absolute; bottom: 15%; left: 40%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #805040 0%, #402820 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hs-henry 4s ease-in-out infinite;
}
.scn-henry-seized .king-edward {
  position: absolute; bottom: 15%; right: 40%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #906050 0%, #503030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hs-edward 3s ease-in-out infinite alternate;
}
.scn-henry-seized .guard-left {
  position: absolute; bottom: 10%; left: 20%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: hs-guard 5s ease-in-out infinite;
}
.scn-henry-seized .guard-right {
  position: absolute; bottom: 10%; right: 20%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: hs-guard 5s ease-in-out infinite reverse;
}
.scn-henry-seized .sword-glow {
  position: absolute; bottom: 30%; right: 42%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #e8d8a0 0%, #a08050 100%);
  border-radius: 2px;
  box-shadow: 0 0 15px 8px rgba(200,180,100,0.6);
  animation: hs-sword 1.5s ease-in-out infinite alternate;
}
@keyframes hs-hall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hs-henry { 0%, 100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-2px) rotate(-3deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(2px) rotate(3deg); } }
@keyframes hs-edward { 0% { transform: translateX(0) rotate(0); } 100% { transform: translateX(-4px) rotate(-4deg) scale(1.02); } }
@keyframes hs-guard { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes hs-sword { 0% { opacity: 0.6; transform: rotate(-5deg); } 100% { opacity: 1; transform: rotate(5deg) scaleY(1.1); } }

/* Scene: edward-orders-march */
.scn-edward-orders-march {
  background:
    linear-gradient(180deg, #87ceeb 0%, #6bb5d0 30%, #4a90a8 60%, #2a6a80 100%),
    radial-gradient(ellipse at 70% 20%, #f0e68c 0%, transparent 60%);
}
.scn-edward-orders-march .sky-sun {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #f0e68c 0%, #87ceeb 60%, transparent 100%);
  animation: eom-sky 20s ease-in-out infinite alternate;
}
.scn-edward-orders-march .horizon {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 5%;
  background: linear-gradient(180deg, #8a9a5a 0%, #6a7a4a 100%);
  filter: blur(2px);
}
.scn-edward-orders-march .soldier-1 {
  position: absolute; bottom: 25%; left: 15%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: eom-march 3s ease-in-out infinite;
}
.scn-edward-orders-march .soldier-2 {
  position: absolute; bottom: 25%; left: 30%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: eom-march 3s ease-in-out infinite -1s;
}
.scn-edward-orders-march .soldier-3 {
  position: absolute; bottom: 25%; left: 45%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: eom-march 3s ease-in-out infinite -2s;
}
.scn-edward-orders-march .banner-1 {
  position: absolute; bottom: 50%; left: 20%; width: 4px; height: 30px;
  background: #b08060;
  box-shadow: 0 0 0 0 #b08060;
}
.scn-edward-orders-march .banner-2 {
  position: absolute; bottom: 50%; left: 35%; width: 4px; height: 30px;
  background: #a07050;
  box-shadow: 0 0 0 0 #a07050;
  animation: eom-flag 4s ease-in-out infinite alternate;
}
.scn-edward-orders-march .sun-ray {
  position: absolute; top: 5%; left: 60%; width: 120px; height: 120px;
  background: radial-gradient(circle, #fff5d0 0%, #f0e68c 40%, transparent 70%);
  filter: blur(10px);
  animation: eom-sun 15s ease-in-out infinite alternate;
}
.scn-edward-orders-march .dust {
  position: absolute; bottom: 20%; left: 10%; width: 200px; height: 40px;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,180,140,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: eom-dust 8s linear infinite;
}
@keyframes eom-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes eom-march { 0%, 100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(2deg); } }
@keyframes eom-flag { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes eom-sun { 0% { opacity: 0.6; transform: scale(0.9); } 100% { opacity: 1; transform: scale(1.1); } }
@keyframes eom-dust { 0% { transform: translateX(-20px); opacity: 0; } 50% { opacity: 0.6; } 100% { transform: translateX(200px); opacity: 0; } }

/* Scene: list-of-scenes */
.scn-list-of-scenes {
  background:
    linear-gradient(180deg, #a0a8a0 0%, #809080 30%, #607060 100%),
    radial-gradient(ellipse at 30% 30%, #b0c0b0 0%, transparent 60%);
}
.scn-list-of-scenes .overcast-sky {
  position: absolute; top: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #c0c8c0 0%, #a0a8a0 50%, #889888 100%);
  animation: los-sky 30s ease-in-out infinite alternate;
}
.scn-list-of-scenes .distant-hills {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #7a8a7a 0%, #5a6a5a 100%);
  border-radius: 50% 40% 0 0 / 60% 50% 0 0;
  filter: blur(3px);
  animation: los-hills 40s linear infinite;
}
.scn-list-of-scenes .road {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 100%);
  border-radius: 20% 20% 0 0;
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: los-road 15s ease-in-out infinite;
}
.scn-list-of-scenes .signpost {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 4px; height: 50px;
  background: #806050;
  border-radius: 1px;
  box-shadow: 0 0 0 0 #806050;
}
.scn-list-of-scenes .bush-left {
  position: absolute; bottom: 20%; left: 10%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #4a6a3a 0%, #2a4a2a 60%);
  border-radius: 50%;
  filter: blur(2px);
  animation: los-bush 12s ease-in-out infinite alternate;
}
.scn-list-of-scenes .bush-right {
  position: absolute; bottom: 20%; right: 10%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #4a6a3a 0%, #2a4a2a 60%);
  border-radius: 50%;
  filter: blur(2px);
  animation: los-bush 12s ease-in-out infinite alternate -6s;
}
.scn-list-of-scenes .tower-ruin {
  position: absolute; bottom: 25%; left: 55%; width: 20px; height: 70px;
  background: linear-gradient(180deg, #908880 0%, #706860 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: los-tower 20s ease-in-out infinite;
}
@keyframes los-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes los-hills { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes los-road { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes los-bush { 0% { transform: scale(0.95); } 100% { transform: scale(1.05); } }
@keyframes los-tower { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

.scn-mocking-the-dead { background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 30% 20%, rgba(150,150,180,0.15) 0%, transparent 50%); }
.scn-mocking-the-dead .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); animation: mt-sky 10s ease-in-out infinite alternate; }
.scn-mocking-the-dead .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a1a 100%); border-radius: 20% 30% 0 0 / 40% 50% 0 0; }
.scn-mocking-the-dead .tree { position:absolute; bottom:30%; left:15%; width:8px; height:60%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 20% 20% 40% 40%; transform: rotate(5deg); animation: mt-tree 12s ease-in-out infinite; }
.scn-mocking-the-dead .figure { position:absolute; bottom:20%; left:50%; width:30px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: mt-figure 6s ease-in-out infinite; }
.scn-mocking-the-dead .owl { position:absolute; bottom:25%; left:35%; width:20px; height:16px; background: radial-gradient(ellipse at 50% 40%, #3a3a2a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40%; transform: rotate(-10deg); animation: mt-owl 8s ease-in-out infinite; }
.scn-mocking-the-dead .blood { position:absolute; bottom:24%; left:30%; width:14px; height:8px; background: radial-gradient(circle, #7a3a2a 0%, #3a1a0a 70%); border-radius: 50% 50% 30% 30%; filter: blur(1px); animation: mt-blood 4s ease-in-out infinite alternate; }
@keyframes mt-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes mt-tree { 0%,100% { transform: rotate(4deg) } 50% { transform: rotate(6deg) } }
@keyframes mt-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-40%) translateY(-2px) rotate(3deg) } 50% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 75% { transform: translateX(-60%) translateY(-1px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes mt-owl { 0%,100% { transform: rotate(-12deg) translate(0,0) } 50% { transform: rotate(8deg) translate(3px,-2px) } }
@keyframes mt-blood { 0% { opacity:0.4; transform: scale(0.9); } 50% { opacity:0.7; transform: scale(1.1); } 100% { opacity:0.5; transform: scale(1); } }

.scn-final-mockery { background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 40%, #1a1a2a 100%), radial-gradient(ellipse at 70% 30%, rgba(100,100,130,0.2) 0%, transparent 60%); }
.scn-final-mockery .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); animation: fm-sky 8s ease-in-out infinite alternate; }
.scn-final-mockery .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a1a 100%); border-radius: 30% 40% 0 0 / 50% 60% 0 0; }
.scn-final-mockery .figure-stand { position:absolute; bottom:15%; left:55%; width:28px; height:85px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: fm-stand 7s ease-in-out infinite; }
.scn-final-mockery .figure-kneel { position:absolute; bottom:10%; left:35%; width:25px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; animation: fm-kneel 5s ease-in-out infinite; }
.scn-final-mockery .sword { position:absolute; bottom:40%; left:55%; width:4px; height:50px; background: linear-gradient(180deg, #8a8a9a 0%, #4a4a5a 100%); border-radius: 10%; transform: rotate(15deg); transform-origin: bottom; animation: fm-sword 6s ease-in-out infinite; }
.scn-final-mockery .blood { position:absolute; bottom:12%; left:42%; width:18px; height:6px; background: radial-gradient(circle, #7a3a2a 0%, #3a1a0a 70%); border-radius: 50% 50% 50% 50%; filter: blur(1px); animation: fm-blood 3s ease-in-out infinite alternate; }
@keyframes fm-sky { 0% { opacity:0.6 } 50% { opacity:0.85 } 100% { opacity:0.7 } }
@keyframes fm-stand { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-40%) translateY(-2px) rotate(2deg) } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 75% { transform: translateX(-60%) translateY(-1px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes fm-kneel { 0%,100% { transform: translateX(-50%) translateY(0) scale(1) } 50% { transform: translateX(-45%) translateY(-3px) scale(1.05) } }
@keyframes fm-sword { 0% { transform: rotate(12deg) } 50% { transform: rotate(18deg) } 100% { transform: rotate(12deg) } }
@keyframes fm-blood { 0% { opacity:0.3; transform: scale(0.8); } 50% { opacity:0.6; transform: scale(1.2); } 100% { opacity:0.4; transform: scale(1); } }

.scn-warwick-plans-marriage { background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 10%, rgba(200,170,120,0.2) 0%, transparent 70%); }
.scn-warwick-plans-marriage .wall { position:absolute; inset:0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-warwick-plans-marriage .window { position:absolute; top:10%; left:50%; width:120px; height:180px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 10px 10px 50% 50% / 20px 20px 80px 80px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: wp-window 10s ease-in-out infinite; }
.scn-warwick-plans-marriage .table { position:absolute; bottom:15%; left:40%; width:200px; height:40px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a10 100%); border-radius: 40% 40% 10% 10% / 80% 80% 20% 20%; transform: perspective(200px) rotateX(30deg); animation: wp-table 8s ease-in-out infinite; }
.scn-warwick-plans-marriage .map { position:absolute; bottom:18%; left:45%; width:100px; height:60px; background: linear-gradient(135deg, #a08050 0%, #705030 100%); border-radius: 5px; transform: rotate(5deg) perspective(100px) rotateX(10deg); animation: wp-map 6s ease-in-out infinite; }
.scn-warwick-plans-marriage .crown { position:absolute; top:22%; left:50%; width:40px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #d0b050 0%, #8a7020 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 15px rgba(200,180,80,0.4); animation: wp-crown 4s ease-in-out infinite; }
.scn-warwick-plans-marriage .figure { position:absolute; bottom:12%; left:55%; width:30px; height:100px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: wp-figure 7s ease-in-out infinite; }
@keyframes wp-window { 0%,100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.5); } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.7); } }
@keyframes wp-table { 0% { transform: perspective(200px) rotateX(28deg) translateY(0); } 50% { transform: perspective(200px) rotateX(32deg) translateY(-3px); } 100% { transform: perspective(200px) rotateX(28deg) translateY(0); } }
@keyframes wp-map { 0% { transform: rotate(4deg) perspective(100px) rotateX(8deg); } 50% { transform: rotate(6deg) perspective(100px) rotateX(12deg); } 100% { transform: rotate(4deg) perspective(100px) rotateX(8deg); } }
@keyframes wp-crown { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 50% { transform: translateX(-50%) rotate(5deg) scale(1.05); } 100% { transform: translateX(-50%) rotate(0deg) scale(1); } }
@keyframes wp-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-40%) translateY(-2px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-60%) translateY(-1px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }

.scn-forest-arrest { background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 40%, #1a2a1a 100%), radial-gradient(ellipse at 40% 50%, rgba(100,120,100,0.2) 0%, transparent 60%); }
.scn-forest-arrest .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%); animation: fa-sky 12s ease-in-out infinite alternate; }
.scn-forest-arrest .trees-back { position:absolute; bottom:30%; left:-10%; right:-10%; height:50%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 40% 30% 0 0 / 60% 50% 0 0; animation: fa-trees-back 15s ease-in-out infinite; }
.scn-forest-arrest .bush { position:absolute; bottom:20%; left:20%; width:80px; height:50px; background: radial-gradient(ellipse at 50% 30%, #3a4a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 30% 30%; filter: blur(2px); animation: fa-bush 9s ease-in-out infinite; }
.scn-forest-arrest .keeper1 { position:absolute; bottom:15%; left:30%; width:20px; height:60px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: fa-keeper1 8s ease-in-out infinite; }
.scn-forest-arrest .keeper2 { position:absolute; bottom:15%; left:60%; width:20px; height:60px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: fa-keeper2 8s ease-in-out infinite 4s; }
.scn-forest-arrest .crossbow1 { position:absolute; bottom:25%; left:25%; width:50px; height:8px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 50% 50% 10%; transform: rotate(-20deg); animation: fa-crossbow1 6s ease-in-out infinite; }
.scn-forest-arrest .crossbow2 { position:absolute; bottom:25%; left:55%; width:50px; height:8px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 50% 50% 10%; transform: rotate(20deg); animation: fa-crossbow2 6s ease-in-out infinite 3s; }
@keyframes fa-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes fa-trees-back { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes fa-bush { 0%,100% { transform: scale(1) translate(0,0); } 50% { transform: scale(1.05) translate(2px,-2px); } }
@keyframes fa-keeper1 { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fa-keeper2 { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fa-crossbow1 { 0% { transform: rotate(-18deg) scale(1); } 50% { transform: rotate(-22deg) scale(1.05); } 100% { transform: rotate(-18deg) scale(1); } }
@keyframes fa-crossbow2 { 0% { transform: rotate(18deg) scale(1); } 50% { transform: rotate(22deg) scale(1.05); } 100% { transform: rotate(18deg) scale(1); } }

.scn-departure-to-battle {
  background: 
    linear-gradient(180deg, #4a4d5c 0%, #6b6e7a 30%, #8a8d96 60%, #6b6e7a 100%),
    radial-gradient(ellipse at 40% 20%, #7a7d8a 0%, transparent 70%);
}
.scn-departure-to-battle .sky-overcast {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5b5e6b 0%, #7a7d8a 100%);
  animation: dtb-sky 15s ease-in-out infinite alternate;
}
.scn-departure-to-battle .distant-hills {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4c4f5a 0%, #3a3c45 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,.3);
  animation: dtb-hills 20s ease-in-out infinite alternate;
}
.scn-departure-to-battle .banners {
  position: absolute; bottom: 30%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #6b3a2a, #4a1f1a);
  transform-origin: bottom center;
  animation: dtb-banner 3s ease-in-out infinite;
}
.scn-departure-to-battle .banner-left { left: 30%; animation-delay: 0s; }
.scn-departure-to-battle .banner-right { right: 28%; animation-delay: 0.5s; }
.scn-departure-to-battle .marching-figure {
  position: absolute; bottom: 22%; left: 45%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #2e2f36, #1c1d22);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dtb-march 4s ease-in-out infinite;
}
.scn-departure-to-battle .horse {
  position: absolute; bottom: 22%; left: 35%;
  width: 35px; height: 30px;
  background: radial-gradient(ellipse 60% 80% at 30% 60%, #3a3b42, #25262b);
  border-radius: 50%;
  transform: scaleX(-1);
  animation: dtb-horse 2.5s ease-in-out infinite alternate;
}
.scn-departure-to-battle .ground-mist {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(180,185,195,0.3) 50%, rgba(160,165,175,0.5) 100%);
  filter: blur(10px);
  animation: dtb-mist 8s ease-in-out infinite alternate;
}
.scn-departure-to-battle .spear-heads {
  position: absolute; bottom: 30%; left: 20%; right: 20%;
  height: 30px;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 18px, #9e9eaa 18px, #9e9eaa 20px);
  mask-image: linear-gradient(180deg, transparent 0%, black 50%, transparent 100%);
  animation: dtb-spears 6s ease-in-out infinite;
}
@keyframes dtb-sky { 0% { opacity: 0.7; background-position: 0 0; } 50% { opacity: 1; } 100% { opacity: 0.8; background-position: 0 30%; } }
@keyframes dtb-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dtb-banner { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(8deg); } }
@keyframes dtb-march { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(-2deg); } 50% { transform: translateX(8px) rotate(2deg); } 75% { transform: translateX(12px) rotate(-1deg); } 100% { transform: translateX(16px) rotate(0deg); } }
@keyframes dtb-horse { 0% { transform: scaleX(-1) translateY(0) rotate(0deg); } 50% { transform: scaleX(-1) translateY(-3px) rotate(5deg); } 100% { transform: scaleX(-1) translateY(0) rotate(0deg); } }
@keyframes dtb-mist { 0% { opacity: 0.4; } 50% { opacity: 0.9; } 100% { opacity: 0.3; } }
@keyframes dtb-spears { 0% { opacity: 0.3; transform: translateX(0); } 50% { opacity: 0.9; transform: translateX(-5px); } 100% { opacity: 0.4; transform: translateX(0); } }

.scn-facing-the-head {
  background: 
    linear-gradient(180deg, #2f3138 0%, #4a4d57 50%, #3c3e47 100%),
    radial-gradient(ellipse at 50% 30%, #5a5d68 0%, transparent 70%);
}
.scn-facing-the-head .murky-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 20%, #40434b, transparent 80%);
  animation: fth-bg 12s ease-in-out infinite alternate;
}
.scn-facing-the-head .broken-wall {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a3c45 0%, #2a2c33 100%);
  border-radius: 20% 80% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,.5);
}
.scn-facing-the-head .pike {
  position: absolute; bottom: 25%; left: 50%; width: 4px; height: 120px;
  background: linear-gradient(180deg, #5a4e3a, #3a2e1a 50%, #2a1e0a);
  transform-origin: bottom center;
  transform: translateX(-50%);
  border-radius: 0 0 2px 2px;
}
.scn-facing-the-head .severed-head {
  position: absolute; bottom: 63%; left: 50%; width: 24px; height: 26px;
  background: radial-gradient(ellipse at 50% 40%, #7a5a4a, #4a2a1a);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 12px 4px rgba(60,30,10,0.6);
  animation: fth-head 5s ease-in-out infinite alternate;
}
.scn-facing-the-head .figure.silhouette {
  position: absolute; bottom: 20%; left: 40%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1c22, #0e1015);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  animation: fth-figure 8s ease-in-out infinite;
}
.scn-facing-the-head .figure.cloak {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 18px;
  background: radial-gradient(ellipse at 50% 100%, #2a2c33 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(10px, -30px) scaleX(-1);
  filter: blur(2px);
  animation: fth-cloak 6s ease-in-out infinite alternate;
}
.scn-facing-the-head .drizzle {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent 0px, transparent 4px, rgba(200,210,220,0.1) 4px, rgba(200,210,220,0.1) 5px);
  animation: fth-rain 2s linear infinite;
}
.scn-facing-the-head .blood-drop {
  position: absolute; bottom: 60%; left: 50%; width: 6px; height: 8px;
  background: radial-gradient(circle, #6a2a1a, #3a100a);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: fth-blood 4s ease-in-out infinite;
}
@keyframes fth-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes fth-head { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(5deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(-3deg) translateY(1px); } }
@keyframes fth-figure { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-2px) rotate(-1deg); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes fth-cloak { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes fth-rain { 0% { background-position: 0 0; } 100% { background-position: 0 20px; } }
@keyframes fth-blood { 0%,100% { opacity: 0.6; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.3) translateY(3px); } }

.scn-queen-margaret-rebukes-henry {
  background: 
    linear-gradient(180deg, #3d3f48 0%, #545763 40%, #42444d 100%),
    radial-gradient(ellipse at 50% 30%, #5f6270 0%, transparent 70%);
}
.scn-queen-margaret-rebukes-henry .stone-wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a4c56, #2f3138);
  border-radius: 30% 70% 0 0 / 20% 80% 0 0;
  box-shadow: inset 0 30px 40px rgba(0,0,0,.5);
}
.scn-queen-margaret-rebukes-henry .throne-base {
  position: absolute; bottom: 15%; left: 50%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #5a4e3a, #3a2e1a);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-queen-margaret-rebukes-henry .king-silhouette {
  position: absolute; bottom: 22%; left: 45%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1e2028, #101219);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: qmh-king 6s ease-in-out infinite alternate;
}
.scn-queen-margaret-rebukes-henry .queen-figure {
  position: absolute; bottom: 20%; left: 52%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #3a3c47, #20222b);
  border-radius: 40% 50% 30% 30% / 60% 50% 30% 30%;
  transform-origin: bottom center;
  animation: qmh-queen 4s ease-in-out infinite;
}
.scn-queen-margaret-rebukes-henry .queen-arm {
  position: absolute; bottom: 50%; left: 55%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #3a3c47, #20222b);
  border-radius: 30% 30% 10% 10%;
  transform-origin: top left;
  animation: qmh-arm 3s ease-in-out infinite alternate;
}
.scn-queen-margaret-rebukes-henry .crown {
  position: absolute; bottom: 68%; left: 46%; width: 14px; height: 10px;
  background: linear-gradient(180deg, #8a7a5a, #5a4e3a);
  clip-path: polygon(0 100%, 20% 0%, 40% 100%, 60% 0%, 80% 100%, 100% 0%, 100% 100%);
  animation: qmh-crown 7s ease-in-out infinite;
}
.scn-queen-margaret-rebukes-henry .dust-particles {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 20% 40%, rgba(200,200,210,0.15) 0%, transparent 50%),
              radial-gradient(circle at 70% 60%, rgba(200,200,210,0.1) 0%, transparent 40%);
  filter: blur(3px);
  animation: qmh-dust 10s ease-in-out infinite alternate;
}
@keyframes qmh-king { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes qmh-queen { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-4deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(4deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes qmh-arm { 0% { transform: rotate(-10deg); } 50% { transform: rotate(25deg); } 100% { transform: rotate(-10deg); } }
@keyframes qmh-crown { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes qmh-dust { 0% { opacity: 0.3; } 50% { opacity: 0.8; } 100% { opacity: 0.2; } }

.scn-henry-moralizes-possession {
  background: 
    linear-gradient(180deg, #2c2e36 0%, #444752 40%, #33353e 100%),
    radial-gradient(ellipse at 50% 30%, #555866 0%, transparent 70%);
}
.scn-henry-moralizes-possession .dark-chamber {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, #4a4d59, #20212a 80%);
  animation: hmp-chamber 15s ease-in-out infinite alternate;
}
.scn-henry-moralizes-possession .window-arch {
  position: absolute; top: 15%; left: 30%; width: 80px; height: 100px;
  border: 2px solid #5a5d6a;
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  background: linear-gradient(180deg, #6b6e7a, #4a4d59);
  box-shadow: inset 0 0 20px rgba(0,0,0,.4);
}
.scn-henry-moralizes-possession .window-light {
  position: absolute; top: 20%; left: 32%; width: 60px; height: 70px;
  background: radial-gradient(ellipse, rgba(200,210,220,0.2) 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(10px);
  animation: hmp-light 8s ease-in-out infinite alternate;
}
.scn-henry-moralizes-possession .henry-figure {
  position: absolute; bottom: 20%; left: 50%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1c1e25, #0e1017);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: hmp-henry 5s ease-in-out infinite;
}
.scn-henry-moralizes-possession .orb {
  position: absolute; bottom: 35%; left: 46%; width: 12px; height: 12px;
  background: radial-gradient(circle, #6a7a5a, #3a4a2a);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(90,110,70,0.5);
  animation: hmp-orb 7s ease-in-out infinite alternate;
}
.scn-henry-moralizes-possession .shadow-pool {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 20%;
  background: radial-gradient(ellipse at 50% 20%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: hmp-shadow 10s ease-in-out infinite alternate;
}
.scn-henry-moralizes-possession .candle-ghost {
  position: absolute; bottom: 30%; left: 30%; width: 4px; height: 10px;
  background: radial-gradient(circle, #c0a060, #806040);
  border-radius: 50%;
  box-shadow: 0 0 12px 6px rgba(192,160,96,0.3);
  animation: hmp-candle 4s ease-in-out infinite;
}
@keyframes hmp-chamber { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes hmp-light { 0% { opacity: 0.2; transform: scale(0.9); } 50% { opacity: 0.5; transform: scale(1.1); } 100% { opacity: 0.3; transform: scale(0.9); } }
@keyframes hmp-henry { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes hmp-orb { 0% { transform: scale(1); } 50% { transform: scale(1.3) translateY(-2px); } 100% { transform: scale(1); } }
@keyframes hmp-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }
@keyframes hmp-candle { 0%,100% { opacity: 0.5; } 50% { opacity: 1; } }

.scn-insults-exchange {
  background: linear-gradient(180deg, #4a4a5e 0%, #3a3a4a 50%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 70%);
}
.scn-insults-exchange .sky-ie {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a5a6e 0%, transparent 100%);
  animation: ie-sky 14s ease-in-out infinite alternate;
}
.scn-insults-exchange .ground-ie {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #2a2a1a 0%, #3a3a2a 50%, #4a4a3a 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  animation: ie-ground 9s ease-in-out infinite alternate;
}
.scn-insults-exchange .fig-left-ie {
  position: absolute; bottom: 30%; left: 25%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ie-fig-left 4s ease-in-out infinite;
}
.scn-insults-exchange .fig-right-ie {
  position: absolute; bottom: 30%; left: 60%; width: 24px; 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: ie-fig-right 4s ease-in-out infinite;
}
.scn-insults-exchange .arm-left-ie {
  position: absolute; bottom: 48%; left: 33%; width: 28px; height: 6px;
  background: linear-gradient(90deg, #1a1a2a 0%, #3a3a4a 100%);
  border-radius: 0 50% 50% 0;
  transform-origin: 0% 50%;
  animation: ie-arm-left 2s ease-in-out infinite alternate;
}
.scn-insults-exchange .arm-right-ie {
  position: absolute; bottom: 48%; left: 48%; width: 28px; height: 6px;
  background: linear-gradient(90deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 0 0 50%;
  transform-origin: 100% 50%;
  animation: ie-arm-right 2.3s ease-in-out infinite alternate;
}
.scn-insults-exchange .spark-ie {
  position: absolute; bottom: 52%; left: 46%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c8a050 0%, #8a6030 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #a08040;
  animation: ie-spark 1.5s ease-in-out infinite alternate;
}
@keyframes ie-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .6 } }
@keyframes ie-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes ie-fig-left { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-3px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes ie-fig-right { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-3px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes ie-arm-left { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(-40deg) scaleX(1.2) } 100% { transform: rotate(10deg) scaleX(1) } }
@keyframes ie-arm-right { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(40deg) scaleX(1.2) } 100% { transform: rotate(-10deg) scaleX(1) } }
@keyframes ie-spark { 0% { opacity: .3; transform: scale(.5) } 50% { opacity: 1; transform: scale(1.3) } 100% { opacity: .6; transform: scale(.7) } }

.scn-warwick-rages-clifford {
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 50%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 90%, #2a2a3e 0%, transparent 70%);
}
.scn-warwick-rages-clifford .sky-wr {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a4a5e 0%, transparent 100%);
  animation: wr-sky 18s ease-in-out infinite alternate;
}
.scn-warwick-rages-clifford .ground-wr {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1a20 0%, #2a2a30 100%);
  border-radius: 30% 40% 0 0 / 50% 60% 0 0;
  animation: wr-ground 12s ease-in-out infinite alternate;
}
.scn-warwick-rages-clifford .warwick-wr {
  position: absolute; bottom: 25%; left: 30%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #2a2020 0%, #1a1010 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wr-warwick 5s ease-in-out infinite;
}
.scn-warwick-rages-clifford .clifford-wr {
  position: absolute; bottom: 25%; left: 55%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a2020 0%, #0a1010 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wr-clifford 5s ease-in-out infinite reverse;
}
.scn-warwick-rages-clifford .sword-wr {
  position: absolute; bottom: 50%; left: 36%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #6a6a7a 0%, #3a3a4a 80%, #1a1a2a 100%);
  border-radius: 20% 20% 40% 40%;
  transform-origin: 50% 0%;
  animation: wr-sword 3s ease-in-out infinite alternate;
}
.scn-warwick-rages-clifford .shield-wr {
  position: absolute; bottom: 30%; left: 60%; width: 18px; height: 24px;
  background: linear-gradient(135deg, #3a2a2a 0%, #5a3a3a 50%, #2a1a1a 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 0 8px 2px rgba(0,0,0,.4);
  animation: wr-shield 4s ease-in-out infinite alternate;
}
.scn-warwick-rages-clifford .smoke-wr {
  position: absolute; bottom: 35%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(100,100,120,.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: wr-smoke 8s ease-in-out infinite;
}
@keyframes wr-sky { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .5 } }
@keyframes wr-ground { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(-1px) } }
@keyframes wr-warwick { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-4px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes wr-clifford { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes wr-sword { 0% { transform: rotate(0deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(-10deg) } }
@keyframes wr-shield { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(10deg) } 100% { transform: translateX(-2px) rotate(-5deg) } }
@keyframes wr-smoke { 0% { opacity: .2; transform: scale(1) translateY(0) } 50% { opacity: .5; transform: scale(1.5) translateY(-10px) } 100% { opacity: .1; transform: scale(1) translateY(0) } }

.scn-edward-demands-crown {
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 50%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 80%, #2a2a3e 0%, transparent 70%);
}
.scn-edward-demands-crown .sky-ed {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a4a5e 0%, transparent 100%);
  animation: ed-sky 16s ease-in-out infinite alternate;
}
.scn-edward-demands-crown .ground-ed {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a1a20 0%, #2a2a30 100%);
  border-radius: 20% 40% 0 0 / 30% 50% 0 0;
  animation: ed-ground 10s ease-in-out infinite alternate;
}
.scn-edward-demands-crown .edward-ed {
  position: absolute; bottom: 30%; left: 25%; width: 26px; height: 52px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ed-edward 6s ease-in-out infinite;
}
.scn-edward-demands-crown .henry-ed {
  position: absolute; bottom: 30%; left: 55%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a2a20 0%, #1a1a10 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ed-henry 6s ease-in-out infinite reverse;
}
.scn-edward-demands-crown .crown-ed {
  position: absolute; bottom: 48%; left: 48%; width: 20px; height: 12px;
  background: linear-gradient(180deg, #8a7040 0%, #5a4020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 10px 3px #b09050;
  animation: ed-crown 3s ease-in-out infinite alternate;
}
.scn-edward-demands-crown .pedestal-ed {
  position: absolute; bottom: 35%; left: 46%; width: 28px; height: 8px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 10% 10% 20% 20%;
  animation: ed-pedestal 8s ease-in-out infinite alternate;
}
.scn-edward-demands-crown .rays-ed {
  position: absolute; bottom: 55%; left: 45%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(180,150,80,.15) 0%, transparent 70%);
  filter: blur(3px);
  animation: ed-rays 4s ease-in-out infinite alternate;
}
@keyframes ed-sky { 0% { opacity: .5 } 50% { opacity: 1 } 100% { opacity: .4 } }
@keyframes ed-ground { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }
@keyframes ed-edward { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(4deg) translateY(-3px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes ed-henry { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-2px) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes ed-crown { 0% { transform: scaleY(1) rotate(0deg) } 50% { transform: scaleY(1.2) rotate(-5deg) } 100% { transform: scaleY(1) rotate(5deg) } }
@keyframes ed-pedestal { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(-2px) } }
@keyframes ed-rays { 0% { opacity: .2; transform: scale(1) } 50% { opacity: .6; transform: scale(1.3) } 100% { opacity: .3; transform: scale(.8) } }

.scn-richard-mocks-margaret {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 90%, #2a2a3a 0%, transparent 70%);
}
.scn-richard-mocks-margaret .sky-rm {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, transparent 100%);
  animation: rm-sky 15s ease-in-out infinite alternate;
}
.scn-richard-mocks-margaret .ground-rm {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a1a1e 0%, #2a2a2e 100%);
  border-radius: 25% 35% 0 0 / 40% 50% 0 0;
  animation: rm-ground 11s ease-in-out infinite alternate;
}
.scn-richard-mocks-margaret .richard-rm {
  position: absolute; bottom: 30%; left: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rm-richard 5s ease-in-out infinite;
}
.scn-richard-mocks-margaret .margaret-rm {
  position: absolute; bottom: 30%; left: 55%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a1a20 0%, #1a0a10 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rm-margaret 5s ease-in-out infinite reverse;
}
.scn-richard-mocks-margaret .arm-rich-rm {
  position: absolute; bottom: 48%; left: 38%; width: 26px; height: 6px;
  background: linear-gradient(90deg, #1a1a2a 0%, #3a3a4a 100%);
  border-radius: 0 50% 50% 0;
  transform-origin: 0% 50%;
  animation: rm-arm-r 2.2s ease-in-out infinite alternate;
}
.scn-richard-mocks-margaret .arm-marg-rm {
  position: absolute; bottom: 48%; left: 50%; width: 22px; height: 5px;
  background: linear-gradient(90deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 0 0 50%;
  transform-origin: 100% 50%;
  animation: rm-arm-m 2.5s ease-in-out infinite alternate;
}
.scn-richard-mocks-margaret .straw-rm {
  position: absolute; bottom: 55%; left: 42%; width: 10px; height: 3px;
  background: linear-gradient(90deg, #6a5a40 0%, #8a7a60 100%);
  border-radius: 20% 20% 20% 20%;
  transform-origin: 0% 50%;
  animation: rm-straw 3s ease-in-out infinite;
}
@keyframes rm-sky { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .5 } }
@keyframes rm-ground { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }
@keyframes rm-richard { 0% { transform: rotate(-4deg) translateY(0) } 50% { transform: rotate(6deg) translateY(-3px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes rm-margaret { 0% { transform: rotate(4deg) translateY(0) } 50% { transform: rotate(-6deg) translateY(-2px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes rm-arm-r { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(-50deg) scaleX(1.1) } 100% { transform: rotate(10deg) scaleX(1) } }
@keyframes rm-arm-m { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(30deg) scaleX(1) } 100% { transform: rotate(-10deg) scaleX(1) } }
@keyframes rm-straw { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(8px) rotate(30deg) } 100% { transform: translateX(0) rotate(0deg) } }

.scn-parliament-throne-claim {
  background: linear-gradient(180deg, #e8dcc4 0%, #c4b69a 40%, #a58d6e 100%),
              radial-gradient(ellipse at 50% 10%, #fff8e0 0%, transparent 70%);
}
.scn-parliament-throne-claim .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d4c8ae 0%, #b8a686 100%);
  animation: ptc-wall 12s ease-in-out infinite alternate;
}
.scn-parliament-throne-claim .col-left {
  position: absolute; left: 8%; bottom: 0; width: 6%; height: 90%;
  background: linear-gradient(180deg, #c8b89a 0%, #9a8a6e 100%);
  border-radius: 4px 4px 0 0; box-shadow: 4px 0 8px rgba(0,0,0,.15);
  animation: ptc-pillar 15s ease-in-out infinite alternate;
}
.scn-parliament-throne-claim .col-right {
  position: absolute; right: 8%; bottom: 0; width: 6%; height: 90%;
  background: linear-gradient(180deg, #c8b89a 0%, #9a8a6e 100%);
  border-radius: 4px 4px 0 0; box-shadow: -4px 0 8px rgba(0,0,0,.15);
  animation: ptc-pillar 15s ease-in-out infinite alternate-reverse;
}
.scn-parliament-throne-claim .throne {
  position: absolute; bottom: 10%; left: 50%; width: 20%; height: 35%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a050 0%, #a08040 40%, #7a6030 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,.4);
  animation: ptc-throne 6s ease-in-out infinite;
}
.scn-parliament-throne-claim .york {
  position: absolute; bottom: 18%; left: 50%; width: 12%; height: 28%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ptc-york 4s ease-in-out infinite;
}
.scn-parliament-throne-claim .crown {
  position: absolute; bottom: 42%; left: 50%; width: 8%; height: 6%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, #ffe680 0%, #c8a030 70%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: 0 0 16px 6px rgba(255,230,128,.4);
  animation: ptc-crown 3s ease-in-out infinite alternate;
}
.scn-parliament-throne-claim .sword {
  position: absolute; bottom: 22%; right: 32%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #c0c0c0 0%, #888 100%);
  border-radius: 2px 2px 50% 50%;
  transform: rotate(15deg); transform-origin: bottom center;
  animation: ptc-sword 5s ease-in-out infinite;
}
.scn-parliament-throne-claim .banner {
  position: absolute; top: 15%; left: 50%; width: 16%; height: 30%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 50%, #7a3010 100%);
  border-radius: 0 0 10px 10px;
  box-shadow: 0 4px 10px rgba(0,0,0,.3);
  animation: ptc-banner 8s ease-in-out infinite alternate;
}
@keyframes ptc-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ptc-pillar { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes ptc-throne { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-4px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes ptc-york { 0% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-50%) rotate(2deg) } 50% { transform: translateX(-50%) rotate(0) } 75% { transform: translateX(-50%) rotate(-1deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes ptc-crown { 0% { transform: translateX(-50%) rotate(-5deg) scale(1); opacity: .9 } 50% { transform: translateX(-50%) rotate(5deg) scale(1.05); opacity: 1 } 100% { transform: translateX(-50%) rotate(-3deg) scale(1); opacity: .95 } }
@keyframes ptc-sword { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(20deg) translateY(-2px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes ptc-banner { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.03) } 100% { transform: translateX(-50%) scaleX(1) } }

.scn-parliament-king-arrives {
  background: linear-gradient(180deg, #e0d4be 0%, #c4b69a 50%, #a58d6e 100%),
              radial-gradient(ellipse at 60% 20%, #fff0d0 0%, transparent 60%);
}
.scn-parliament-king-arrives .bg-arch {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d4c8ae 0%, #b8a686 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  animation: pka-bg 10s ease-in-out infinite alternate;
}
.scn-parliament-king-arrives .col-left {
  position: absolute; left: 5%; bottom: 0; width: 5%; height: 85%;
  background: linear-gradient(180deg, #c8b89a 0%, #9a8a6e 100%);
  border-radius: 4px 4px 0 0; box-shadow: 4px 0 8px rgba(0,0,0,.15);
  animation: pka-pillar 12s ease-in-out infinite alternate;
}
.scn-parliament-king-arrives .col-right {
  position: absolute; right: 5%; bottom: 0; width: 5%; height: 85%;
  background: linear-gradient(180deg, #c8b89a 0%, #9a8a6e 100%);
  border-radius: 4px 4px 0 0; box-shadow: -4px 0 8px rgba(0,0,0,.15);
  animation: pka-pillar 12s ease-in-out infinite alternate-reverse;
}
.scn-parliament-king-arrives .throne-occupied {
  position: absolute; bottom: 12%; left: 50%; width: 18%; height: 30%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a050 0%, #a08040 40%, #7a6030 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,.4);
  animation: pka-throne 5s ease-in-out infinite;
}
.scn-parliament-king-arrives .king-enter {
  position: absolute; bottom: 15%; right: 12%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pka-king 6s ease-in-out infinite;
}
.scn-parliament-king-arrives .nobles {
  position: absolute; bottom: 12%; left: 20%; width: 25%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: pka-nobles 8s ease-in-out infinite alternate;
}
.scn-parliament-king-arrives .banner-king {
  position: absolute; top: 10%; left: 10%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #702243 0%, #5e1a1d 50%, #4a1215 100%);
  border-radius: 0 0 8px 8px;
  box-shadow: 2px 2px 6px rgba(0,0,0,.3);
  animation: pka-banner 7s ease-in-out infinite alternate;
}
@keyframes pka-bg { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes pka-pillar { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes pka-throne { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-3px) } 100% { transform: translateX(-50%) } }
@keyframes pka-king { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-5px) rotate(2deg) } 50% { transform: translateX(-10px) rotate(0) } 75% { transform: translateX(-5px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pka-nobles { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes pka-banner { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

.scn-parliament-henry-advises {
  background: linear-gradient(180deg, #d4c8ae 0%, #b8a686 50%, #9a8a6e 100%),
              radial-gradient(ellipse at 40% 30%, #fff0d0 0%, transparent 70%);
}
.scn-parliament-henry-advises .bg-pillar {
  position: absolute; inset: 0; background: linear-gradient(180deg, #c8b89a 0%, #a58d6e 100%);
  animation: pha-bg 15s ease-in-out infinite alternate;
}
.scn-parliament-henry-advises .window-arch {
  position: absolute; top: 8%; left: 50%; width: 20%; height: 25%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #fff8e0 0%, #d4c8ae 70%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 -4px 10px rgba(0,0,0,.1);
  animation: pha-window 8s ease-in-out infinite alternate;
}
.scn-parliament-henry-advises .throne-henry {
  position: absolute; bottom: 10%; left: 50%; width: 16%; height: 28%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b89860 0%, #9a7840 40%, #7a5e30 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,.35);
  animation: pha-throne 7s ease-in-out infinite;
}
.scn-parliament-henry-advises .henry-standing {
  position: absolute; bottom: 14%; left: 35%; width: 9%; height: 22%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pha-henry 5s ease-in-out infinite;
}
.scn-parliament-henry-advises .attendants {
  position: absolute; bottom: 12%; right: 20%; width: 18%; height: 26%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%);
  animation: pha-attendants 10s ease-in-out infinite alternate;
}
.scn-parliament-henry-advises .banner-sad {
  position: absolute; top: 12%; right: 8%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #5e1a1d 0%, #4a1215 50%, #3a0a0d 100%);
  border-radius: 0 0 6px 6px;
  box-shadow: 2px 2px 6px rgba(0,0,0,.3);
  animation: pha-banner 9s ease-in-out infinite alternate;
}
.scn-parliament-henry-advises .step {
  position: absolute; bottom: 8%; left: 0; right: 0; height: 6%;
  background: linear-gradient(180deg, #b8a686 0%, #9a8a6e 100%);
  border-radius: 20% 20% 0 0;
  animation: pha-step 12s ease-in-out infinite alternate;
}
@keyframes pha-bg { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes pha-window { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .75 } }
@keyframes pha-throne { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) } }
@keyframes pha-henry { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-3px) rotate(1deg) } 50% { transform: translateX(-6px) rotate(0) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pha-attendants { 0% { transform: scale(1) } 50% { transform: scale(1.01) } 100% { transform: scale(1) } }
@keyframes pha-banner { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes pha-step { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }

.scn-parliament-throne-dispute {
  background: linear-gradient(180deg, #e0d4be 0%, #c4b69a 50%, #a58d6e 100%),
              radial-gradient(ellipse at 50% 50%, #fff8e0 0%, transparent 60%);
}
.scn-parliament-throne-dispute .bg-tapestry {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d4c8ae 0%, #b8a686 100%);
  animation: ptd-bg 10s ease-in-out infinite alternate;
}
.scn-parliament-throne-dispute .col-left {
  position: absolute; left: 10%; bottom: 0; width: 4%; height: 80%;
  background: linear-gradient(180deg, #c8b89a 0%, #9a8a6e 100%);
  border-radius: 4px 4px 0 0; box-shadow: 4px 0 8px rgba(0,0,0,.15);
  animation: ptd-pillar 14s ease-in-out infinite alternate;
}
.scn-parliament-throne-dispute .col-right {
  position: absolute; right: 10%; bottom: 0; width: 4%; height: 80%;
  background: linear-gradient(180deg, #c8b89a 0%, #9a8a6e 100%);
  border-radius: 4px 4px 0 0; box-shadow: -4px 0 8px rgba(0,0,0,.15);
  animation: ptd-pillar 14s ease-in-out infinite alternate-reverse;
}
.scn-parliament-throne-dispute .throne-dispute {
  position: absolute; bottom: 12%; left: 50%; width: 16%; height: 30%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a050 0%, #a08040 40%, #7a6030 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,.4);
  animation: ptd-throne 4s ease-in-out infinite;
}
.scn-parliament-throne-dispute .york-figure {
  position: absolute; bottom: 18%; left: 30%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ptd-york 3s ease-in-out infinite;
}
.scn-parliament-throne-dispute .clifford-figure {
  position: absolute; bottom: 18%; right: 30%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ptd-clifford 3.2s ease-in-out infinite;
}
.scn-parliament-throne-dispute .banner-dispute {
  position: absolute; top: 8%; left: 50%; width: 14%; height: 28%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 50%, #7a3010 100%);
  border-radius: 0 0 8px 8px;
  box-shadow: 0 4px 10px rgba(0,0,0,.3);
  animation: ptd-banner 6s ease-in-out infinite alternate;
}
@keyframes ptd-bg { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ptd-pillar { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes ptd-throne { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes ptd-york { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-4px) rotate(3deg) } 50% { transform: translateX(-8px) rotate(0) } 75% { transform: translateX(-4px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ptd-clifford { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(-3deg) } 50% { transform: translateX(8px) rotate(0) } 75% { transform: translateX(4px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ptd-banner { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.04) } 100% { transform: translateX(-50%) scaleX(1) } }

/* ===== king-woos-widow ===== */
.scn-king-woos-widow {
  background: linear-gradient(180deg, #c8a87e 0%, #a08050 60%, #705030 100%),
              radial-gradient(ellipse at 70% 30%, #e0c090 0%, transparent 60%);
}
.scn-king-woos-widow .wall-left {
  position: absolute; inset: 0 60% 0 0;
  background: linear-gradient(180deg, #d8bc8e 0%, #b09060 100%);
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.15);
  animation: kww-wall 12s ease-in-out infinite alternate;
}
.scn-king-woos-widow .wall-right {
  position: absolute; inset: 0 0 0 40%;
  background: linear-gradient(180deg, #d0b480 0%, #a08850 100%);
  box-shadow: inset 8px 0 12px rgba(0,0,0,0.15);
}
.scn-king-woos-widow .floor {
  position: absolute; inset: 70% 0 0 0;
  background: linear-gradient(180deg, #806040 0%, #5a4028 100%);
  animation: kww-floor 6s ease-in-out infinite alternate;
}
.scn-king-woos-widow .throne {
  position: absolute; bottom: 30%; left: 30%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #b08050 0%, #7a5530 100%);
  border-radius: 6% 6% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: kww-throne 8s ease-in-out infinite alternate;
}
.scn-king-woos-widow .king {
  position: absolute; bottom: 26%; left: 28%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #c8553d 0%, #8a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: kww-king 4s ease-in-out infinite;
}
.scn-king-woos-widow .widow {
  position: absolute; bottom: 28%; left: 50%; width: 24px; height: 54px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: kww-widow 5s ease-in-out infinite alternate;
}
.scn-king-woos-widow .candle {
  position: absolute; bottom: 40%; left: 55%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #ffe080 0%, #c8a040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px #dda040, 0 0 40px 12px rgba(200,140,40,0.3);
  animation: kww-candle 3s ease-in-out infinite alternate;
}
.scn-king-woos-widow .shadow {
  position: absolute; bottom: 0; left: 25%; width: 150px; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: kww-shadow 7s ease-in-out infinite alternate;
}
@keyframes kww-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes kww-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes kww-throne { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes kww-king { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(0) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-3px) rotate(0) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes kww-widow { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes kww-candle { 0% { transform: scaleY(1) scaleX(1); opacity: 0.8 } 50% { transform: scaleY(1.1) scaleX(0.95); opacity: 1 } 100% { transform: scaleY(0.95) scaleX(1.05); opacity: 0.9 } }
@keyframes kww-shadow { 0% { opacity: 0.4; transform: scaleX(1) } 50% { opacity: 0.6; transform: scaleX(1.1) } 100% { opacity: 0.4; transform: scaleX(0.95) } }

/* ===== gloucester-soliloquy ===== */
.scn-gloucester-soliloquy {
  background: linear-gradient(180deg, #d0c0a0 0%, #a08060 60%, #604030 100%),
              radial-gradient(ellipse at 60% 20%, #e0d0b0 0%, transparent 50%);
}
.scn-gloucester-soliloquy .floor {
  position: absolute; inset: 70% 0 0 0;
  background: linear-gradient(180deg, #705040 0%, #403028 100%);
  animation: gls-floor 8s ease-in-out infinite alternate;
}
.scn-gloucester-soliloquy .back-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8b898 0%, #a88868 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.1);
}
.scn-gloucester-soliloquy .window {
  position: absolute; top: 10%; left: 15%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, #f0e0c0 0%, #b09060 100%);
  border: 6px solid #5a4a3a;
  border-radius: 4% 4% 10% 10%;
  box-shadow: inset 0 0 20px 6px #c0a060;
  animation: gls-window 10s ease-in-out infinite alternate;
}
.scn-gloucester-soliloquy .throne {
  position: absolute; bottom: 28%; left: 40%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #a07040 0%, #604020 100%);
  border-radius: 8% 8% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  transform-origin: bottom center;
  animation: gls-throne 6s ease-in-out infinite alternate;
}
.scn-gloucester-soliloquy .gloucester {
  position: absolute; bottom: 24%; left: 38%; width: 30px; height: 68px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  transform-origin: bottom center;
  animation: gls-gloucester 5s ease-in-out infinite;
}
.scn-gloucester-soliloquy .mirror {
  position: absolute; top: 15%; right: 20%; width: 40px; height: 60px;
  background: linear-gradient(135deg, #e0d0b0 0%, #c0a888 100%);
  border: 3px solid #806040;
  border-radius: 5%;
  box-shadow: 0 0 12px 4px rgba(200,180,140,0.3);
  animation: gls-mirror 7s ease-in-out infinite alternate;
}
.scn-gloucester-soliloquy .candle {
  position: absolute; bottom: 40%; left: 30%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #ffe080 0%, #c8a040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px #dda040, 0 0 40px 12px rgba(200,140,40,0.3);
  animation: gls-candle 2s ease-in-out infinite alternate;
}
@keyframes gls-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes gls-window { 0% { opacity: 0.7; box-shadow: inset 0 0 10px 3px #b09060 } 50% { opacity: 1; box-shadow: inset 0 0 30px 8px #d0b080 } 100% { opacity: 0.8; box-shadow: inset 0 0 15px 5px #b09060 } }
@keyframes gls-throne { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } }
@keyframes gls-gloucester { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(10px) rotate(0) } 75% { transform: translateX(5px) rotate(-2deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes gls-mirror { 0% { transform: scaleX(1) skewX(0) } 50% { transform: scaleX(1.02) skewX(-2deg) } 100% { transform: scaleX(0.98) skewX(0) } }
@keyframes gls-candle { 0% { transform: scaleY(1) scaleX(1); opacity: 0.9 } 50% { transform: scaleY(1.15) scaleX(0.9); opacity: 1 } 100% { transform: scaleY(0.9) scaleX(1.1); opacity: 0.95 } }

/* ===== france-king-lewis-court ===== */
.scn-france-king-lewis-court {
  background: linear-gradient(180deg, #d8c8a8 0%, #b09878 60%, #806048 100%),
              radial-gradient(ellipse at 50% 20%, #e8d8b8 0%, transparent 60%);
}
.scn-france-king-lewis-court .dais {
  position: absolute; bottom: 40%; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #b09070 0%, #806050 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.2);
  animation: fkl-dais 5s ease-in-out infinite alternate;
}
.scn-france-king-lewis-court .throne {
  position: absolute; bottom: 48%; left: 42%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #b08050 0%, #704028 100%);
  border-radius: 6% 6% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: fkl-throne 9s ease-in-out infinite alternate;
}
.scn-france-king-lewis-court .king-lewis {
  position: absolute; bottom: 44%; left: 40%; width: 26px; height: 56px;
  background: linear-gradient(180deg, #5850a8 0%, #303070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: fkl-king 4s ease-in-out infinite;
}
.scn-france-king-lewis-court .queen-margaret {
  position: absolute; bottom: 44%; left: 52%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #a84848 0%, #602828 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: fkl-queen 4.5s ease-in-out infinite alternate;
}
.scn-france-king-lewis-court .ambassador {
  position: absolute; bottom: 38%; left: 30%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #5a5a5a 0%, #303030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 3px 6px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: fkl-amb 5s ease-in-out infinite;
}
.scn-france-king-lewis-court .banner-left {
  position: absolute; top: 10%; left: 8%; width: 20px; height: 70px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 10% 10% 0 0;
  transform: skewX(-5deg);
  animation: fkl-banner 6s ease-in-out infinite alternate;
}
.scn-france-king-lewis-court .banner-right {
  position: absolute; top: 10%; right: 8%; width: 20px; height: 70px;
  background: linear-gradient(180deg, #a048a0 0%, #602060 100%);
  border-radius: 10% 10% 0 0;
  transform: skewX(5deg);
  animation: fkl-banner 6s ease-in-out infinite alternate-reverse;
}
.scn-france-king-lewis-court .candle {
  position: absolute; bottom: 42%; left: 55%; width: 5px; height: 14px;
  background: linear-gradient(180deg, #ffe080 0%, #c8a040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 18px 5px #dda040, 0 0 36px 10px rgba(200,140,40,0.2);
  animation: fkl-candle 2.5s ease-in-out infinite alternate;
}
@keyframes fkl-dais { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fkl-throne { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes fkl-king { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes fkl-queen { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes fkl-amb { 0% { transform: translateX(0) scaleY(1) } 25% { transform: translateX(4px) scaleY(1.02) } 50% { transform: translateX(0) scaleY(0.98) } 75% { transform: translateX(-4px) scaleY(1.01) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes fkl-banner { 0% { transform: skewX(-5deg) scaleY(1) } 50% { transform: skewX(0) scaleY(1.05) } 100% { transform: skewX(-5deg) scaleY(0.98) } }
@keyframes fkl-candle { 0% { transform: scaleY(1) scaleX(1); opacity: 0.85 } 50% { transform: scaleY(1.1) scaleX(0.95); opacity: 1 } 100% { transform: scaleY(0.95) scaleX(1.05); opacity: 0.9 } }

/* ===== item-letters-from-post ===== */
.scn-item-letters-from-post {
  background: linear-gradient(180deg, #d8c0a0 0%, #b09878 60%, #806048 100%),
              radial-gradient(ellipse at 70% 40%, #e0c8a8 0%, transparent 50%);
}
.scn-item-letters-from-post .table {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #806048 0%, #604030 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.3);
  animation: ilp-table 6s ease-in-out infinite alternate;
}
.scn-item-letters-from-post .letter {
  position: absolute; width: 22px; height: 28px;
  background: linear-gradient(135deg, #f0e0c0 0%, #c0a880 100%);
  border-radius: 4%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: ilp-letter 4s ease-in-out infinite alternate;
}
.scn-item-letters-from-post .letter.queen { bottom: 35%; left: 30%; animation-delay: 0s; }
.scn-item-letters-from-post .letter.warwick { bottom: 35%; left: 46%; animation-delay: 1s; }
.scn-item-letters-from-post .letter.lewis { bottom: 35%; left: 62%; animation-delay: 2s; }
.scn-item-letters-from-post .figure {
  position: absolute; bottom: 28%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: ilp-figure 5s ease-in-out infinite alternate;
}
.scn-item-letters-from-post .figure-queen { left: 28%; animation-delay: 0.2s; }
.scn-item-letters-from-post .figure-warwick { left: 44%; animation-delay: 1.2s; }
.scn-item-letters-from-post .figure-lewis { left: 60%; animation-delay: 2.2s; }
.scn-item-letters-from-post .candle {
  position: absolute; bottom: 38%; left: 50%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #ffe080 0%, #c8a040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px #dda040, 0 0 40px 12px rgba(200,140,40,0.3);
  animation: ilp-candle 2s ease-in-out infinite alternate;
}
@keyframes ilp-table { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.01) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes ilp-letter { 0% { transform: translateY(0) rotate(0) scaleY(1) } 50% { transform: translateY(-2px) rotate(3deg) scaleY(1.02) } 100% { transform: translateY(0) rotate(-2deg) scaleY(0.98) } }
@keyframes ilp-figure { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ilp-candle { 0% { transform: scaleY(1) scaleX(1); opacity: 0.85 } 50% { transform: scaleY(1.15) scaleX(0.95); opacity: 1 } 100% { transform: scaleY(0.95) scaleX(1.05); opacity: 0.9 } }

/* ----- scene henry-disguised (hd) ----- */
.scn-henry-disguised {
  background: linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 40%, #5a5a6a 100%), 
              radial-gradient(ellipse at 50% 0%, #6a6a7a 0%, transparent 60%);
}
.scn-henry-disguised .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, transparent 100%);
  animation: hd-sky 14s ease-in-out infinite alternate;
}
.scn-henry-disguised .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 20% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: hd-ground 10s ease-in-out infinite;
}
.scn-henry-disguised .figure-henry {
  position: absolute; bottom: 30%; left: 42%; width: 24px; height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 45% 45% / 40% 40% 55% 55%;
  transform-origin: bottom center;
  animation: hd-figure 6s ease-in-out infinite;
}
.scn-henry-disguised .cloak {
  position: absolute; bottom: 30%; left: 38%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 60% 60% 30% 30% / 50% 50% 40% 40%;
  opacity: 0.8;
  animation: hd-cloak 7s ease-in-out infinite;
}
.scn-henry-disguised .prayerbook {
  position: absolute; bottom: 38%; left: 46%; width: 10px; height: 14px;
  background: linear-gradient(135deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: hd-book 5s ease-in-out infinite;
}
.scn-henry-disguised .cross {
  position: absolute; bottom: 45%; left: 55%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  border-radius: 2px;
  box-shadow: 0 0 6px rgba(90,90,106,0.5);
  animation: hd-cross 20s ease-in-out infinite alternate;
}
.scn-henry-disguised .mist {
  position: absolute; inset: 0; 
  background: radial-gradient(ellipse at 30% 60%, rgba(100,100,120,0.3) 0%, transparent 70%);
  animation: hd-mist 15s ease-in-out infinite alternate;
}
@keyframes hd-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes hd-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(3px); }
  100% { transform: translateY(0); }
}
@keyframes hd-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(2px) translateY(-4px) rotate(2deg); }
  60% { transform: translateX(-1px) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes hd-cloak {
  0% { transform: scaleX(1) rotate(0deg); }
  50% { transform: scaleX(1.05) rotate(2deg); }
  100% { transform: scaleX(1) rotate(0deg); }
}
@keyframes hd-book {
  0% { transform: rotate(-10deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(0.95); }
  100% { transform: rotate(-10deg) scaleY(1); }
}
@keyframes hd-cross {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.2; }
}
@keyframes hd-mist {
  0% { opacity: 0.2; transform: translateX(0); }
  50% { opacity: 0.5; transform: translateX(-10px); }
  100% { opacity: 0.3; transform: translateX(10px); }
}

/* ----- scene keeper-converse (kc) ----- */
.scn-keeper-converse {
  background: linear-gradient(180deg, #2a3a2a 0%, #3a4a3a 40%, #1a2a1a 100%), 
              radial-gradient(ellipse at 50% 100%, #1a2a1a 0%, transparent 70%);
}
.scn-keeper-converse .bg-trees {
  position: absolute; inset: 0;
  background: 
    linear-gradient(90deg, #1a2a1a 10%, transparent 10%),
    linear-gradient(90deg, transparent 60%, #1a2a1a 60%),
    linear-gradient(180deg, #2a3a2a 0%, #0a1a0a 100%);
  background-size: 30% 100%;
  background-position: left top, right top;
  background-repeat: no-repeat;
  animation: kc-trees 20s ease-in-out infinite alternate;
}
.scn-keeper-converse .keeper1 {
  position: absolute; bottom: 20%; left: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: kc-figure1 4s ease-in-out infinite;
}
.scn-keeper-converse .keeper2 {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: kc-figure2 5s ease-in-out infinite;
}
.scn-keeper-converse .arm-restrain {
  position: absolute; bottom: 50%; left: 40%; width: 20px; height: 5px;
  background: #2a3a2a;
  border-radius: 50%;
  transform-origin: right center;
  animation: kc-arm1 3s ease-in-out infinite;
}
.scn-keeper-converse .arm-grab {
  position: absolute; bottom: 50%; left: 30%; width: 22px; height: 5px;
  background: #3a4a3a;
  border-radius: 50%;
  transform-origin: left center;
  animation: kc-arm2 3.5s ease-in-out infinite;
}
.scn-keeper-converse .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-keeper-converse .shadow {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: kc-shadow 4s ease-in-out infinite alternate;
}
@keyframes kc-trees {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes kc-figure1 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(2px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes kc-figure2 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  33% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); }
  66% { transform: translateX(2px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes kc-arm1 {
  0% { transform: rotate(-20deg) scaleX(1); }
  50% { transform: rotate(10deg) scaleX(0.9); }
  100% { transform: rotate(-20deg) scaleX(1); }
}
@keyframes kc-arm2 {
  0% { transform: rotate(30deg) scaleX(1); }
  50% { transform: rotate(-10deg) scaleX(1.1); }
  100% { transform: rotate(30deg) scaleX(1); }
}
@keyframes kc-shadow {
  0% { opacity: 0.3; }
  100% { opacity: 0.6; }
}

/* ----- scene henry-predicts-margarets-fate (hpm) ----- */
.scn-henry-predicts-margarets-fate {
  background: linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 50%, #2a2a3a 100%), 
              radial-gradient(ellipse at 50% 30%, #5a5a6a 0%, transparent 60%);
}
.scn-henry-predicts-margarets-fate .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, transparent 100%);
  animation: hpm-sky 12s ease-in-out infinite alternate;
}
.scn-henry-predicts-margarets-fate .henry-figure {
  position: absolute; bottom: 30%; left: 30%; width: 22px; height: 70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 50% 50%;
  transform-origin: bottom center;
  animation: hpm-henry 8s ease-in-out infinite;
}
.scn-henry-predicts-margarets-fate .margaret-ghost {
  position: absolute; bottom: 40%; left: 55%; width: 20px; height: 50px;
  background: linear-gradient(180deg, rgba(100,90,110,0.4) 0%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 50% 50%;
  filter: blur(2px);
  animation: hpm-ghost1 10s ease-in-out infinite;
}
.scn-henry-predicts-margarets-fate .warwick-ghost {
  position: absolute; bottom: 40%; left: 65%; width: 22px; height: 50px;
  background: linear-gradient(180deg, rgba(90,80,100,0.3) 0%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 50% 50%;
  filter: blur(2px);
  animation: hpm-ghost2 12s ease-in-out infinite;
}
.scn-henry-predicts-margarets-fate .crown-vision {
  position: absolute; top: 15%; left: 50%; width: 20px; height: 12px;
  background: linear-gradient(135deg, #5a5a6a 0%, #3a3a4a 100%);
  border-radius: 50% 50% 0 0;
  transform: translateX(-50%);
  box-shadow: 0 0 10px rgba(90,90,106,0.5);
  animation: hpm-crown 6s ease-in-out infinite alternate;
}
.scn-henry-predicts-margarets-fate .tear {
  position: absolute; bottom: 10%; left: 32%; width: 4px; height: 6px;
  background: linear-gradient(180deg, #6a6a7a 0%, transparent 100%);
  border-radius: 50%;
  animation: hpm-tear 3s ease-in-out infinite;
}
@keyframes hpm-sky {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.4; }
}
@keyframes hpm-henry {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(3px) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes hpm-ghost1 {
  0% { opacity: 0; transform: translateY(10px); }
  30% { opacity: 0.6; transform: translateY(0); }
  60% { opacity: 0.3; transform: translateY(-5px); }
  100% { opacity: 0; transform: translateY(10px); }
}
@keyframes hpm-ghost2 {
  0% { opacity: 0; transform: translateY(8px); }
  40% { opacity: 0.5; transform: translateY(0); }
  70% { opacity: 0.2; transform: translateY(-3px); }
  100% { opacity: 0; transform: translateY(8px); }
}
@keyframes hpm-crown {
  0% { transform: translateX(-50%) scaleY(1); opacity: 0.2; }
  50% { transform: translateX(-50%) scaleY(1.2); opacity: 0.8; }
  100% { transform: translateX(-50%) scaleY(1); opacity: 0.3; }
}
@keyframes hpm-tear {
  0% { transform: translateY(0) scaleX(1); opacity: 0.5; }
  50% { transform: translateY(20px) scaleX(0.8); opacity: 0; }
  100% { transform: translateY(0) scaleX(1); opacity: 0.5; }
}

/* ----- scene keepers-question-henry (kqh) ----- */
.scn-keepers-question-henry {
  background: linear-gradient(180deg, #2a2a2a 0%, #3a3a3a 40%, #1a1a1a 100%), 
              radial-gradient(ellipse at 50% 20%, #4a4a4a 0%, transparent 70%);
}
.scn-keepers-question-henry .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a1a1a 0%, #2a2a2a 50%, #1a1a1a 100%);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%);
  animation: kqh-wall 15s ease-in-out infinite alternate;
}
.scn-keepers-question-henry .keeper-left {
  position: absolute; bottom: 20%; left: 15%; width: 28px; height: 75px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: kqh-keeperL 4s ease-in-out infinite;
}
.scn-keepers-question-henry .keeper-right {
  position: absolute; bottom: 20%; left: 65%; width: 28px; height: 75px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: kqh-keeperR 5s ease-in-out infinite;
}
.scn-keepers-question-henry .henry-center {
  position: absolute; bottom: 20%; left: 40%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 50% 50%;
  transform-origin: bottom center;
  animation: kqh-henry 7s ease-in-out infinite;
}
.scn-keepers-question-henry .henry-hand {
  position: absolute; bottom: 38%; left: 44%; width: 6px; height: 10px;
  background: #1a1a2a;
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: kqh-hand 4s ease-in-out infinite;
}
.scn-keepers-question-henry .crown-shadow {
  position: absolute; top: 10%; left: 50%; width: 30px; height: 15px;
  background: radial-gradient(ellipse, rgba(60,60,70,0.4) 0%, transparent 100%);
  transform: translateX(-50%);
  animation: kqh-crown 8s ease-in-out infinite alternate;
}
@keyframes kqh-wall {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.5; }
}
@keyframes kqh-keeperL {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(2px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes kqh-keeperR {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  33% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); }
  66% { transform: translateX(1px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes kqh-henry {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(1px) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes kqh-hand {
  0% { transform: rotate(-20deg) scaleY(1); }
  50% { transform: rotate(10deg) scaleY(0.9); }
  100% { transform: rotate(-20deg) scaleY(1); }
}
@keyframes kqh-crown {
  0% { opacity: 0.1; transform: translateX(-50%) scale(0.8); }
  50% { opacity: 0.6; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.2; transform: translateX(-50%) scale(0.9); }
}

/* Scene 1: sandal-castle-york-resolves (determined, bright-interior) */
.scn-sandal-castle-york-resolves {
  background: linear-gradient(135deg, #d4a55a 0%, #b8823a 40%, #8a5a2a 100%), 
              radial-gradient(ellipse at 40% 50%, #e8c070 0%, transparent 70%);
}
.scn-sandal-castle-york-resolves .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c49a5a 0%, #a0703a 100%);
  animation: sy-wall 12s ease-in-out infinite alternate;
}
.scn-sandal-castle-york-resolves .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(180deg, #806030 0%, #604020 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
}
.scn-sandal-castle-york-resolves .table {
  position: absolute;
  bottom: 22%; left: 35%;
  width: 30%; height: 4%;
  background: #6a4a2a;
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: sy-table 8s ease-in-out infinite;
}
.scn-sandal-castle-york-resolves .cup {
  position: absolute;
  bottom: 24.5%; left: 48%;
  width: 3%; height: 4%;
  background: linear-gradient(180deg, #c0a060 0%, #907040 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: 0 0 6px 2px rgba(192,160,96,0.4);
  animation: sy-cup 4s ease-in-out infinite alternate;
}
.scn-sandal-castle-york-resolves .figure-york {
  position: absolute;
  bottom: 26%; left: 45%;
  width: 8%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sy-figure-york 6s ease-in-out infinite;
}
.scn-sandal-castle-york-resolves .figure-richard {
  position: absolute;
  bottom: 26%; left: 38%;
  width: 7%; height: 18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  animation: sy-figure-richard 7s ease-in-out infinite;
}
.scn-sandal-castle-york-resolves .figure-edward {
  position: absolute;
  bottom: 26%; left: 54%;
  width: 7%; height: 19%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 58% 58% 42% 42%;
  animation: sy-figure-edward 6.5s ease-in-out infinite;
}
.scn-sandal-castle-york-resolves .torch {
  position: absolute;
  top: 18%; left: 28%;
  width: 2%; height: 6%;
  background: linear-gradient(180deg, #603010 0%, #301008 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 10px #ffa040, 0 0 40px 20px rgba(255,160,64,0.3);
  animation: sy-torch 3s ease-in-out infinite alternate;
}
.scn-sandal-castle-york-resolves .light-beam {
  position: absolute;
  top: 14%; left: 25%;
  width: 12%; height: 30%;
  background: radial-gradient(ellipse at center, rgba(255,200,100,0.5) 0%, transparent 80%);
  filter: blur(8px);
  animation: sy-beam 5s ease-in-out infinite alternate;
}
@keyframes sy-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sy-table { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } }
@keyframes sy-cup { 0% { transform: rotate(-2deg); } 100% { transform: rotate(2deg); } }
@keyframes sy-figure-york { 0%, 100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(1deg); } }
@keyframes sy-figure-richard { 0%, 100% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-2px) rotate(-2deg); } 66% { transform: translateY(-1px) rotate(1deg); } }
@keyframes sy-figure-edward { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes sy-torch { 0% { box-shadow: 0 0 15px 5px #ffa040, 0 0 30px 15px rgba(255,160,64,0.3); } 50% { box-shadow: 0 0 25px 10px #ffb060, 0 0 50px 25px rgba(255,176,96,0.4); } 100% { box-shadow: 0 0 18px 6px #ffa040, 0 0 35px 18px rgba(255,160,64,0.35); } }
@keyframes sy-beam { 0% { opacity: 0.6; transform: scale(1); } 100% { opacity: 0.8; transform: scale(1.1); } }

/* Scene 2: sandal-castle-messenger (alarmed, bright-interior) */
.scn-sandal-castle-messenger {
  background: linear-gradient(135deg, #c09050 0%, #906030 40%, #604020 100%),
              radial-gradient(ellipse at 60% 20%, #e0b070 0%, transparent 70%);
}
.scn-sandal-castle-messenger .wall-shade {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b08040 0%, #806030 100%);
  animation: sm-shade 10s ease-in-out infinite alternate;
}
.scn-sandal-castle-messenger .floor-shade {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(0deg, #503020 0%, #6a4020 100%);
  border-radius: 30% 20% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.4);
}
.scn-sandal-castle-messenger .doorway {
  position: absolute;
  bottom: 30%; left: 12%;
  width: 8%; height: 40%;
  background: #4a2a1a;
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7);
  animation: sm-door 5s ease-in-out infinite alternate;
}
.scn-sandal-castle-messenger .messenger {
  position: absolute;
  bottom: 32%; left: 14%;
  width: 6%; height: 22%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sm-messenger 3s ease-in-out infinite;
}
.scn-sandal-castle-messenger .figure-alarmed {
  position: absolute;
  bottom: 30%; left: 42%;
  width: 8%; height: 24%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  animation: sm-alarmed 2.5s ease-in-out infinite;
}
.scn-sandal-castle-messenger .table-rumpled {
  position: absolute;
  bottom: 22%; left: 40%;
  width: 20%; height: 3%;
  background: #5a3a1a;
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: sm-table 6s ease-in-out infinite;
}
.scn-sandal-castle-messenger .candle {
  position: absolute;
  bottom: 24%; left: 48%;
  width: 2%; height: 5%;
  background: linear-gradient(180deg, #e0b060 0%, #c09040 100%);
  border-radius: 2px;
  box-shadow: 0 0 14px 6px #ffc060, 0 0 28px 12px rgba(255,192,96,0.4);
  animation: sm-candle 0.7s ease-in-out infinite alternate;
}
.scn-sandal-castle-messenger .shadow-flicker {
  position: absolute;
  top: 0; left: 10%; width: 80%; height: 100%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.2) 0%, transparent 80%);
  filter: blur(10px);
  animation: sm-flicker 0.8s ease-in-out infinite alternate;
}
@keyframes sm-shade { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes sm-door { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.05); } }
@keyframes sm-messenger { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 75% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sm-alarmed { 0% { transform: translateY(0) rotate(0) scale(1); } 20% { transform: translateY(-5px) rotate(3deg) scale(1.05); } 40% { transform: translateY(-2px) rotate(-2deg) scale(1); } 60% { transform: translateY(-6px) rotate(4deg) scale(1.08); } 80% { transform: translateY(-3px) rotate(-1deg) scale(1); } 100% { transform: translateY(0) rotate(0) scale(1); } }
@keyframes sm-table { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(-2px); } }
@keyframes sm-candle { 0% { opacity: 0.7; box-shadow: 0 0 10px 4px #ffc060, 0 0 20px 8px rgba(255,192,96,0.3); } 100% { opacity: 1; box-shadow: 0 0 18px 8px #ffd080, 0 0 36px 16px rgba(255,208,128,0.5); } }
@keyframes sm-flicker { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

/* Scene 3: sandal-castle-battle-march (confident, overcast) */
.scn-sandal-castle-battle-march {
  background: linear-gradient(180deg, #5a6a72 0%, #3a4a52 40%, #2a3a42 100%),
              radial-gradient(ellipse at 50% 100%, #6a7a82 0%, transparent 70%);
}
.scn-sandal-castle-battle-march .sky-overcast {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a7a82 0%, #4a5a62 100%);
  animation: sb-sky 20s ease-in-out infinite alternate;
}
.scn-sandal-castle-battle-march .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 40%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 60% 40% 0 0 / 20% 20% 0 0;
}
.scn-sandal-castle-battle-march .drummer {
  position: absolute;
  bottom: 20%; left: 30%;
  width: 8%; height: 22%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 50% 50%;
  animation: sb-drummer 2s ease-in-out infinite;
}
.scn-sandal-castle-battle-march .banner {
  position: absolute;
  bottom: 25%; left: 42%;
  width: 4%; height: 30%;
  background: linear-gradient(180deg, #a05030 0%, #702030 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: sb-banner 4s ease-in-out infinite;
}
.scn-sandal-castle-battle-march .spearman {
  position: absolute;
  bottom: 20%; left: 48%;
  width: 7%; height: 24%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  animation: sb-spearman 2.5s ease-in-out infinite;
}
.scn-sandal-castle-battle-march .swordsman {
  position: absolute;
  bottom: 20%; left: 56%;
  width: 7%; height: 24%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  animation: sb-swordsman 2.8s ease-in-out infinite;
}
.scn-sandal-castle-battle-march .clouds {
  position: absolute;
  top: 8%; left: 10%;
  width: 40%; height: 6%;
  background: linear-gradient(90deg, rgba(140,150,160,0.6) 0%, rgba(140,150,160,0.3) 100%);
  filter: blur(6px);
  border-radius: 50%;
  animation: sb-clouds 30s linear infinite;
}
.scn-sandal-castle-battle-march .dust {
  position: absolute;
  bottom: 5%; left: 20%;
  width: 60%; height: 4%;
  background: radial-gradient(ellipse at center, rgba(180,160,120,0.5) 0%, transparent 80%);
  filter: blur(10px);
  animation: sb-dust 6s ease-in-out infinite alternate;
}
@keyframes sb-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes sb-drummer { 0%, 100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(-3deg); } 50% { transform: translateY(-1px) rotate(0); } 75% { transform: translateY(-3px) rotate(3deg); } }
@keyframes sb-banner { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.05); } 100% { transform: rotate(-3deg) scaleY(0.95); } }
@keyframes sb-spearman { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(-4px) rotate(-2deg); } }
@keyframes sb-swordsman { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(3px) rotate(2deg); } }
@keyframes sb-clouds { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
@keyframes sb-dust { 0% { opacity: 0.3; transform: scaleX(1); } 100% { opacity: 0.6; transform: scaleX(1.2); } }

/* Scene 4: wakefield-rutland-flee (fearful, overcast) */
.scn-wakefield-rutland-flee {
  background: linear-gradient(180deg, #3a4a52 0%, #2a3a42 40%, #1a2a32 100%),
              radial-gradient(ellipse at 30% 30%, #405060 0%, transparent 70%);
}
.scn-wakefield-rutland-flee .sky-gloom {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a5a62 0%, #2a3a42 100%);
  animation: wr-sky 15s ease-in-out infinite alternate;
}
.scn-wakefield-rutland-flee .ground-rough {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 50%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 40% 60% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-wakefield-rutland-flee .tree {
  position: absolute;
  bottom: 30%; left: 10%;
  width: 4%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4px;
  box-shadow: -6px 0 12px rgba(0,0,0,0.3);
}
.scn-wakefield-rutland-flee .rutland-figure {
  position: absolute;
  bottom: 28%; left: 30%;
  width: 6%; height: 18%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wr-rutland 1.5s ease-in-out infinite;
}
.scn-wakefield-rutland-flee .clifford-horse {
  position: absolute;
  bottom: 26%; left: 55%;
  width: 14%; height: 22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  animation: wr-horse 2s ease-in-out infinite;
}
.scn-wakefield-rutland-flee .clifford-arm {
  position: absolute;
  bottom: 38%; left: 62%;
  width: 3%; height: 12%;
  background: #3a2a1a;
  border-radius: 2px;
  transform-origin: bottom left;
  animation: wr-arm 1s ease-in-out infinite alternate;
}
.scn-wakefield-rutland-flee .shadow-pursuit {
  position: absolute;
  top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(ellipse at 60% 40%, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(15px);
  animation: wr-shadow 3s ease-in-out infinite alternate;
}
.scn-wakefield-rutland-flee .mist {
  position: absolute;
  bottom: 20%; left: 0; width: 100%; height: 20%;
  background: linear-gradient(180deg, rgba(180,200,210,0.2) 0%, transparent 100%);
  filter: blur(10px);
  animation: wr-mist 8s ease-in-out infinite alternate;
}
@keyframes wr-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes wr-rutland { 0% { transform: translateX(0) translateY(0) rotate(0); } 20% { transform: translateX(8px) translateY(-4px) rotate(8deg); } 40% { transform: translateX(16px) translateY(-2px) rotate(4deg); } 60% { transform: translateX(24px) translateY(-5px) rotate(10deg); } 80% { transform: translateX(32px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(40px) translateY(0) rotate(0); } }
@keyframes wr-horse { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes wr-arm { 0% { transform: rotate(-30deg); } 100% { transform: rotate(30deg); } }
@keyframes wr-shadow { 0% { opacity: 0.5; } 100% { opacity: 0.8; } }
@keyframes wr-mist { 0% { opacity: 0.2; } 100% { opacity: 0.5; } }

.scn-henry-soliloquy-molehill { background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 40%, #2a2a3a 100%), radial-gradient(ellipse at 50% 100%, #4a4a5a 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-henry-soliloquy-molehill .sky-overcast { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%); animation: hs1-sky 12s ease-in-out infinite alternate; }
.scn-henry-soliloquy-molehill .sea { position: absolute; bottom: 0; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 -20px 40px rgba(0,0,0,.3); }
.scn-henry-soliloquy-molehill .molehill { position: absolute; bottom: 30%; left: 20%; width: 30%; height: 15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; box-shadow: 0 -10px 30px rgba(0,0,0,.4); }
.scn-henry-soliloquy-molehill .figure-henry { position: absolute; bottom: 43%; left: 24%; width: 16px; height: 40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hs1-figure 6s ease-in-out infinite; }
.scn-henry-soliloquy-molehill .wind-wisp { position: absolute; top: 20%; right: 10%; width: 100px; height: 8px; background: linear-gradient(90deg, transparent, rgba(255,255,255,.15), transparent); border-radius: 50%; filter: blur(6px); animation: hs1-wind 8s linear infinite; }
.scn-henry-soliloquy-molehill .wave-front { position: absolute; bottom: 10%; left: -10%; width: 120%; height: 20%; background: linear-gradient(180deg, transparent, rgba(80,120,160,.3)); border-radius: 70% 30% 60% 40% / 100% 100% 0 0; animation: hs1-wave1 5s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-henry-soliloquy-molehill .wave-mid { position: absolute; bottom: 25%; left: 5%; width: 100%; height: 15%; background: linear-gradient(180deg, transparent, rgba(60,100,140,.2)); border-radius: 40% 60% 50% 50% / 100% 100% 0 0; animation: hs1-wave2 7s ease-in-out infinite alternate; transform-origin: bottom center; animation-delay: -2s; }
.scn-henry-soliloquy-molehill .cloud-heavy { position: absolute; top: 5%; left: 30%; width: 120px; height: 25px; background: rgba(80,80,100,.6); border-radius: 50%; filter: blur(10px); animation: hs1-cloud 30s linear infinite; }
.scn-henry-soliloquy-molehill .cloud-light { position: absolute; top: 12%; right: 20%; width: 80px; height: 15px; background: rgba(100,100,120,.4); border-radius: 50%; filter: blur(8px); animation: hs1-cloud 40s linear infinite reverse; animation-delay: -15s; }
@keyframes hs1-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes hs1-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hs1-wind { 0% { transform: translateX(-100px); opacity:0 } 30% { opacity:.6 } 70% { opacity:.6 } 100% { transform: translateX(100vw); opacity:0 } }
@keyframes hs1-wave1 { 0% { transform: scaleX(1) rotate(0deg) } 50% { transform: scaleX(1.1) rotate(2deg) } 100% { transform: scaleX(1) rotate(-2deg) } }
@keyframes hs1-wave2 { 0% { transform: scaleX(1) rotate(0deg) } 30% { transform: scaleX(1.2) rotate(-3deg) } 70% { transform: scaleX(0.9) rotate(2deg) } 100% { transform: scaleX(1) rotate(0deg) } }
@keyframes hs1-cloud { 0% { transform: translateX(-50px) scale(1) } 50% { transform: translateX(50px) scale(1.1) } 100% { transform: translateX(-50px) scale(1) } }

.scn-kings-wish-for-humble-life { background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 0%, #4a4a5a 0%, transparent 80%); position: relative; overflow: hidden; }
.scn-kings-wish-for-humble-life .sky-king { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); animation: kw1-sky 15s ease-in-out infinite alternate; }
.scn-kings-wish-for-humble-life .hillside { position: absolute; bottom: 0; left: 0; right: 0; height: 55%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); }
.scn-kings-wish-for-humble-life .sundial { position: absolute; bottom: 40%; left: 50%; width: 30px; height: 20px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 10% 10% 50% 50% / 20% 20% 80% 80%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: kw1-sundial 20s linear infinite; transform-origin: bottom center; }
.scn-kings-wish-for-humble-life .king-figure { position: absolute; bottom: 40%; left: 40%; width: 20px; height: 45px; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kw1-king 8s ease-in-out infinite; }
.scn-kings-wish-for-humble-life .king-figure::before { content: ''; position: absolute; top: -8px; left: 50%; transform: translateX(-50%); width: 14px; height: 10px; background: #5a4a3a; border-radius: 50% 50% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,.5); } /* crown */
.scn-kings-wish-for-humble-life .staff { position: absolute; bottom: 42%; left: 48%; width: 3px; height: 30px; background: #2a1a0a; border-radius: 2px; transform: rotate(10deg); transform-origin: bottom center; animation: kw1-staff 6s ease-in-out infinite; }
.scn-kings-wish-for-humble-life .cloud-king-a { position: absolute; top: 10%; left: 15%; width: 100px; height: 20px; background: rgba(80,80,100,.4); border-radius: 50%; filter: blur(6px); animation: kw1-cloud 35s linear infinite; }
.scn-kings-wish-for-humble-life .cloud-king-b { position: absolute; top: 18%; right: 10%; width: 70px; height: 15px; background: rgba(90,90,110,.3); border-radius: 50%; filter: blur(5px); animation: kw1-cloud 45s linear infinite reverse; animation-delay: -10s; }
.scn-kings-wish-for-humble-life .shadow-hand { position: absolute; bottom: 44%; left: 44%; width: 10px; height: 6px; background: #0a0a1a; border-radius: 50% 50% 20% 20%; opacity: .6; transform: rotate(-20deg); animation: kw1-hand 4s ease-in-out infinite alternate; }
@keyframes kw1-sky { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes kw1-king { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-2px) rotate(-2deg) } 60% { transform: translateX(0) rotate(0deg) } 100% { transform: translateX(2px) rotate(2deg) } }
@keyframes kw1-sundial { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(180deg) } 100% { transform: translateX(-50%) rotate(360deg) } }
@keyframes kw1-staff { 0% { transform: rotate(10deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(10deg) } }
@keyframes kw1-hand { 0% { transform: translateX(0) rotate(-20deg) } 100% { transform: translateX(5px) rotate(-10deg) } }
@keyframes kw1-cloud { 0% { transform: translateX(-30px) scale(1) } 25% { transform: translateX(30px) scale(1.1) } 75% { transform: translateX(60px) scale(0.9) } 100% { transform: translateX(-30px) scale(1) } }

.scn-shepherd-life-praised { background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 40%, #2a3a2a 100%), radial-gradient(ellipse at 50% 100%, #5a6a5a 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-shepherd-life-praised .sky-shepherd { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 100%); animation: slp-sky 10s ease-in-out infinite alternate; }
.scn-shepherd-life-praised .meadow { position: absolute; bottom: 0; left: 0; right: 0; height: 55%; background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%); border-radius: 40% 60% 0 0 / 60% 70% 0 0; }
.scn-shepherd-life-praised .hawthorn-tree { position: absolute; bottom: 35%; left: 20%; width: 80px; height: 100px; background: linear-gradient(180deg, #3a5a2a 0%, #2a4a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 -20px 40px rgba(0,0,0,.2); animation: slp-tree 12s ease-in-out infinite; transform-origin: bottom center; }
.scn-shepherd-life-praised .hawthorn-tree::after { content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 8px; height: 30px; background: #2a1a0a; border-radius: 2px; }
.scn-shepherd-life-praised .shepherd-figure { position: absolute; bottom: 30%; left: 45%; width: 18px; height: 40px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: slp-shepherd 8s ease-in-out infinite; }
.scn-shepherd-life-praised .sheep-1 { position: absolute; bottom: 25%; left: 55%; width: 22px; height: 12px; background: #a0a080; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: slp-sheep 5s ease-in-out infinite; }
.scn-shepherd-life-praised .sheep-2 { position: absolute; bottom: 22%; left: 65%; width: 20px; height: 11px; background: #b0b090; border-radius: 50%; animation: slp-sheep 6s ease-in-out infinite reverse; animation-delay: -2s; }
.scn-shepherd-life-praised .staff-shepherd { position: absolute; bottom: 32%; left: 48%; width: 3px; height: 35px; background: #2a1a0a; border-radius: 2px; transform: rotate(15deg); transform-origin: bottom center; animation: slp-staff 7s ease-in-out infinite; }
.scn-shepherd-life-praised .cloud-shepherd { position: absolute; top: 12%; right: 30%; width: 110px; height: 22px; background: rgba(120,130,110,.4); border-radius: 50%; filter: blur(8px); animation: slp-cloud 40s linear infinite; }
@keyframes slp-sky { 0% { opacity:.7 } 50% { opacity:.95 } 100% { opacity:.8 } }
@keyframes slp-tree { 0% { transform: scaleX(1) rotate(0deg) } 30% { transform: scaleX(1.03) rotate(-1deg) } 70% { transform: scaleX(0.97) rotate(1deg) } 100% { transform: scaleX(1) rotate(0deg) } }
@keyframes slp-shepherd { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(2deg) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes slp-sheep { 0% { transform: translateY(0) scale(1) } 30% { transform: translateY(-3px) scale(1.05) } 70% { transform: translateY(0) scale(0.95) } 100% { transform: translateY(0) scale(1) } }
@keyframes slp-staff { 0% { transform: rotate(15deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(15deg) } }
@keyframes slp-cloud { 0% { transform: translateX(-40px) scale(1) } 50% { transform: translateX(60px) scale(1.1) } 100% { transform: translateX(-40px) scale(1) } }

.scn-son-kills-father { background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0a0a1a 100%), radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-son-kills-father .sky-tragedy { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); animation: skf-sky 8s ease-in-out infinite alternate; }
.scn-son-kills-father .ground-death { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0; }
.scn-son-kills-father .body-father { position: absolute; bottom: 15%; left: 35%; width: 30px; height: 45px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(90deg); transform-origin: left center; animation: skf-body 4s ease-in-out infinite; }
.scn-son-kills-father .son-figure { 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%; transform-origin: bottom center; animation: skf-son 5s ease-in-out infinite; }
.scn-son-kills-father .son-figure::before { content: ''; position: absolute; top: 10px; left: -20px; width: 25px; height: 8px; background: #1a1a0a; border-radius: 20% 80% 50% 50% / 50% 50% 50% 50%; transform: rotate(-30deg); animation: skf-sword 3s ease-in-out infinite alternate; } /* sword arm */
.scn-son-kills-father .sword { position: absolute; bottom: 30%; left: 42%; width: 35px; height: 4px; background: #5a5a6a; border-radius: 2px; transform: rotate(-40deg); transform-origin: left center; animation: skf-sword 3s ease-in-out infinite alternate; box-shadow: 0 0 4px rgba(100,100,120,.4); }
.scn-son-kills-father .crown-fallen { position: absolute; bottom: 18%; left: 30%; width: 20px; height: 8px; background: #5a4a3a; border-radius: 50% 50% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: skf-crown 12s linear infinite; }
.scn-son-kills-father .blood-pool { position: absolute; bottom: 12%; left: 38%; width: 40px; height: 10px; background: radial-gradient(ellipse, #5a1a1a 0%, transparent 70%); border-radius: 50%; animation: skf-blood 6s ease-in-out infinite; opacity: .6; }
.scn-son-kills-father .cloud-tragedy { position: absolute; top: 8%; left: 20%; width: 90px; height: 20px; background: rgba(40,40,50,.5); border-radius: 50%; filter: blur(8px); animation: skf-cloud 25s linear infinite; }
@keyframes skf-sky { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes skf-body { 0% { transform: rotate(90deg) translateY(0) } 30% { transform: rotate(85deg) translateY(2px) } 70% { transform: rotate(95deg) translateY(-1px) } 100% { transform: rotate(90deg) translateY(0) } }
@keyframes skf-son { 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 skf-sword { 0% { transform: rotate(-40deg) scaleX(1) } 50% { transform: rotate(-20deg) scaleX(1.2) } 100% { transform: rotate(-40deg) scaleX(1) } }
@keyframes skf-crown { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(180deg) translateY(2px) } 100% { transform: rotate(360deg) translateY(0) } }
@keyframes skf-blood { 0% { transform: scaleX(1) opacity:.5 } 50% { transform: scaleX(1.2) opacity:.7 } 100% { transform: scaleX(1) opacity:.5 } }
@keyframes skf-cloud { 0% { transform: translateX(-20px) scale(1) } 50% { transform: translateX(50px) scale(1.2) } 100% { transform: translateX(-20px) scale(1) } }

.scn-parliament-york-challenge {
  background: linear-gradient(165deg, #e8d5b0 0%, #c49b6a 40%, #7a5a3a 100%), radial-gradient(ellipse at 60% 30%, #fff1d6 0%, transparent 70%);
}
.scn-parliament-york-challenge .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 10% 80% 0 0 / 20% 40% 0 0; animation: pyc-floor 8s ease-in-out infinite; }
.scn-parliament-york-challenge .throne { position:absolute; bottom:26%; left:35%; width:80px; height:90px; background: linear-gradient(135deg, #a08050 0%, #604020 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,0.5); animation: pyc-throne 6s ease-in-out infinite; }
.scn-parliament-york-challenge .york-figure { position:absolute; bottom:24%; left:48%; width:20px; height:42px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pyc-figure 4s ease-in-out infinite; }
.scn-parliament-york-challenge .arm-raised { position:absolute; bottom:50%; left:52%; width:8px; height:18px; background: #3a3a4a; border-radius: 40% 40% 20% 20%; transform: rotate(-40deg); transform-origin: bottom left; animation: pyc-arm 0.8s ease-in-out infinite alternate; }
.scn-parliament-york-challenge .cloak { position:absolute; bottom:22%; left:45%; width:28px; height:30px; background: linear-gradient(180deg, #5e1a1d 0%, #301010 100%); border-radius: 60% 40% 30% 70% / 50% 60% 40% 50%; animation: pyc-cloak 5s ease-in-out infinite; }
.scn-parliament-york-challenge .banner { position:absolute; top:12%; right:18%; width:14px; height:60px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: pyc-banner 3s ease-in-out infinite; }
.scn-parliament-york-challenge .light-beam { position:absolute; top:5%; left:40%; width:80px; height:200px; background: radial-gradient(ellipse at center, rgba(255,240,200,0.3) 0%, transparent 70%); filter: blur(10px); animation: pyc-light 4s ease-in-out infinite; }
@keyframes pyc-floor { 0% { opacity:0.9; transform: translateY(0); } 50% { opacity:0.8; transform: translateY(1px); } 100% { opacity:0.85; transform: translateY(-1px); } }
@keyframes pyc-throne { 0% { transform: rotate(0deg); } 25% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 75% { transform: rotate(-0.5deg); } 100% { transform: rotate(0deg); } }
@keyframes pyc-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(-2px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes pyc-arm { 0% { transform: rotate(-40deg) translateY(0); } 100% { transform: rotate(-45deg) translateY(-2px); } }
@keyframes pyc-cloak { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(2deg) scaleX(1.05); } 100% { transform: rotate(-2deg) scaleX(1); } }
@keyframes pyc-banner { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes pyc-light { 0% { opacity:0.5; transform: translateY(0) scale(1); } 50% { opacity:0.7; transform: translateY(-3px) scale(1.02); } 100% { opacity:0.6; transform: translateY(0) scale(1); } }

.scn-parliament-henry-pleads {
  background: linear-gradient(180deg, #f5ebd0 0%, #dac29a 50%, #b08a5c 100%), radial-gradient(ellipse at 50% 20%, #faf0e0 0%, transparent 60%);
}
.scn-parliament-henry-pleads .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 30% 70% 0 0 / 40% 50% 0 0; animation: php-floor 10s ease-in-out infinite; }
.scn-parliament-henry-pleads .pillar-left { position:absolute; bottom:0; left:10%; width:14px; height:80%; background: linear-gradient(180deg, #b09070 0%, #705030 100%); border-radius: 4px; box-shadow: 4px 0 8px rgba(0,0,0,0.3); animation: php-pillar 12s ease-in-out infinite; }
.scn-parliament-henry-pleads .pillar-right { position:absolute; bottom:0; right:10%; width:14px; height:80%; background: linear-gradient(180deg, #b09070 0%, #705030 100%); border-radius: 4px; box-shadow: -4px 0 8px rgba(0,0,0,0.3); animation: php-pillar 12s ease-in-out infinite reverse; }
.scn-parliament-henry-pleads .henry-figure { position:absolute; bottom:20%; left:50%; width:24px; height:44px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: php-henry 6s ease-in-out infinite; }
.scn-parliament-henry-pleads .pleading-hand { position:absolute; bottom:32%; left:54%; width:8px; height:12px; background: #3a2a2a; border-radius: 40% 40% 30% 30%; transform-origin: 50% 100%; animation: php-hand 3s ease-in-out infinite; }
.scn-parliament-henry-pleads .crown-glow { position:absolute; bottom:48%; left:50%; width:16px; height:8px; transform: translateX(-50%); background: radial-gradient(ellipse, #ffd060 0%, transparent 70%); filter: blur(4px); animation: php-crown 4s ease-in-out infinite; }
.scn-parliament-henry-pleads .soft-shadow { position:absolute; bottom:18%; left:44%; width:60px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%); animation: php-shadow 8s ease-in-out infinite; }
@keyframes php-floor { 0% { opacity:0.9; transform: translateY(0); } 50% { opacity:0.85; transform: translateY(1px); } 100% { opacity:0.9; transform: translateY(-1px); } }
@keyframes php-pillar { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes php-henry { 0% { transform: translateX(-50%) rotate(0deg); } 20% { transform: translateX(-50%) rotate(1deg); } 40% { transform: translateX(-50%) rotate(-1deg); } 60% { transform: translateX(-50%) rotate(0.5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes php-hand { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-40deg); } 100% { transform: rotate(-30deg); } }
@keyframes php-crown { 0% { opacity:0.5; transform: translateX(-50%) scale(1); } 50% { opacity:0.8; transform: translateX(-50%) scale(1.1); } 100% { opacity:0.6; transform: translateX(-50%) scale(0.9); } }
@keyframes php-shadow { 0% { opacity:0.2; transform: translateX(0); } 50% { opacity:0.4; transform: translateX(-2px); } 100% { opacity:0.3; transform: translateX(2px); } }

.scn-parliament-exeter-defects {
  background: linear-gradient(90deg, #d4b896 0%, #c4a47a 50%, #b09060 100%), radial-gradient(ellipse at 50% 30%, #f0dcc0 0%, transparent 60%);
}
.scn-parliament-exeter-defects .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; animation: ped-floor 7s ease-in-out infinite; }
.scn-parliament-exeter-defects .left-faction { position:absolute; bottom:18%; left:8%; width:30%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%); animation: ped-left 10s ease-in-out infinite; }
.scn-parliament-exeter-defects .right-faction { position:absolute; bottom:18%; right:8%; width:30%; height:50%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; clip-path: polygon(30% 0, 70% 0, 100% 100%, 0 100%); animation: ped-right 10s ease-in-out infinite; }
.scn-parliament-exeter-defects .exeter-figure { position:absolute; bottom:16%; left:50%; width:22px; height:48px; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ped-exeter 5s ease-in-out infinite; }
.scn-parliament-exeter-defects .threshold { position:absolute; bottom:18%; left:50%; width:4px; height:20px; transform: translateX(-50%); background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 2px; animation: ped-threshold 4s ease-in-out infinite; }
.scn-parliament-exeter-defects .shadow-split { position:absolute; bottom:10%; left:20%; width:60%; height:10px; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.2) 20%, rgba(0,0,0,0.2) 80%, transparent 100%); filter: blur(4px); animation: ped-shadow 8s ease-in-out infinite; }
.scn-parliament-exeter-defects .whisper-line { position:absolute; top:40%; left:30%; width:40%; height:2px; background: linear-gradient(90deg, transparent, rgba(200,200,200,0.3), transparent); animation: ped-whisper 6s ease-in-out infinite; }
@keyframes ped-floor { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes ped-left { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(0.98) translateY(5px); } 100% { transform: scale(1) translateY(-2px); } }
@keyframes ped-right { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-5px); } 100% { transform: scale(1) translateY(2px); } }
@keyframes ped-exeter { 0% { transform: translateX(-50%) rotate(-2deg); } 30% { transform: translateX(-50%) rotate(2deg); } 60% { transform: translateX(-50%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ped-threshold { 0% { opacity:0.6; transform: translateX(-50%) scaleY(1); } 50% { opacity:1; transform: translateX(-50%) scaleY(1.1); } 100% { opacity:0.7; transform: translateX(-50%) scaleY(0.9); } }
@keyframes ped-shadow { 0% { opacity:0.3; transform: translateX(0); } 50% { opacity:0.6; transform: translateX(5px); } 100% { opacity:0.4; transform: translateX(-5px); } }
@keyframes ped-whisper { 0% { opacity:0; transform: scaleX(0.5); } 50% { opacity:0.6; transform: scaleX(1); } 100% { opacity:0; transform: scaleX(0.5); } }

.scn-parliament-henry-defies {
  background: linear-gradient(135deg, #dcc9a8 0%, #b09060 50%, #705030 100%), radial-gradient(ellipse at 50% 25%, #f0dcc0 0%, transparent 70%);
}
.scn-parliament-henry-defies .floor { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 40% 60% 0 0 / 60% 80% 0 0; animation: phd-floor 9s ease-in-out infinite; }
.scn-parliament-henry-defies .henry-figure { position:absolute; bottom:18%; left:50%; width:22px; height:48px; transform: translateX(-50%); background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: phd-henry 5s ease-in-out infinite; }
.scn-parliament-henry-defies .crown-glow { position:absolute; bottom:46%; left:50%; width:18px; height:10px; transform: translateX(-50%); background: radial-gradient(ellipse, #f0c060 0%, transparent 70%); filter: blur(6px); animation: phd-crown 3s ease-in-out infinite; }
.scn-parliament-henry-defies .scepter { position:absolute; bottom:40%; left:44%; width:4px; height:30px; background: linear-gradient(180deg, #c8a86a 0%, #806030 100%); border-radius: 2px; transform: rotate(-10deg); animation: phd-scepter 4s ease-in-out infinite; }
.scn-parliament-henry-defies .challengers { position:absolute; bottom:15%; left:20%; width:60%; height:40%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); clip-path: polygon(10% 0, 30% 0, 40% 100%, 0 100%); animation: phd-challengers 8s ease-in-out infinite; }
.scn-parliament-henry-defies .spotlight { position:absolute; top:0; left:30%; width:40%; height:100%; background: radial-gradient(ellipse at 50% 30%, rgba(255,240,200,0.15) 0%, transparent 70%); animation: phd-spotlight 6s ease-in-out infinite; }
.scn-parliament-henry-defies .shadow-rim { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, transparent 40%, rgba(0,0,0,0.3) 100%); animation: phd-rim 10s ease-in-out infinite; }
@keyframes phd-floor { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(-2px); } }
@keyframes phd-henry { 0% { transform: translateX(-50%) rotate(0deg); } 20% { transform: translateX(-50%) rotate(1deg); } 40% { transform: translateX(-50%) rotate(-1deg); } 60% { transform: translateX(-50%) rotate(0.5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes phd-crown { 0% { opacity:0.5; transform: translateX(-50%) scale(1); } 50% { opacity:0.9; transform: translateX(-50%) scale(1.2); } 100% { opacity:0.6; transform: translateX(-50%) scale(0.9); } }
@keyframes phd-scepter { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(1px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes phd-challengers { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-5px); } }
@keyframes phd-spotlight { 0% { opacity:0.3; transform: translateX(0); } 50% { opacity:0.6; transform: translateX(2px); } 100% { opacity:0.4; transform: translateX(-2px); } }
@keyframes phd-rim { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.5; } }

/* Scene: preparing-for-battle (tense overcast) */
.scn-preparing-for-battle {
  background: linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 50%, #2a3a3a 100%),
              radial-gradient(ellipse at 50% 30%, #5a6a6a 0%, transparent 70%);
}
.scn-preparing-for-battle .sky-overcast {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a6a6a 0%, #4a5a5a 100%);
  animation: pb-sky 12s ease-in-out infinite alternate;
}
.scn-preparing-for-battle .ground-mud {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
  animation: pb-ground 20s ease-in-out infinite;
}
.scn-preparing-for-battle .banner {
  position: absolute; left: 28%; bottom: 55%; width: 120px; height: 100px;
  background: linear-gradient(135deg, #7a5a3a 0%, #5a3a1a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 80%, 50% 100%, 0% 80%);
  transform-origin: top left;
  animation: pb-banner 3s ease-in-out infinite alternate;
}
.scn-preparing-for-battle .figure-sword {
  position: absolute; left: 48%; bottom: 38%; width: 50px; height: 110px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pb-figure 2s ease-in-out infinite;
}
.scn-preparing-for-battle .sword-blade {
  position: absolute; left: 50%; bottom: 70%; width: 8px; height: 80px;
  background: linear-gradient(180deg, #a0a0a0 0%, #606060 50%, #404040 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: bottom;
  animation: pb-sword 1.5s ease-in-out infinite alternate;
}
.scn-preparing-for-battle .shield {
  position: absolute; left: 42%; bottom: 42%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.7);
  animation: pb-shield 4s ease-in-out infinite;
}
.scn-preparing-for-battle .cloud-1 {
  position: absolute; top: 12%; left: 15%; width: 80px; height: 24px;
  background: rgba(200,200,200,.3);
  border-radius: 50%;
  filter: blur(10px);
  animation: pb-cloud1 40s linear infinite;
}
.scn-preparing-for-battle .cloud-2 {
  position: absolute; top: 20%; right: 20%; width: 60px; height: 18px;
  background: rgba(180,180,180,.25);
  border-radius: 50%;
  filter: blur(8px);
  animation: pb-cloud2 30s linear infinite reverse;
}
.scn-preparing-for-battle .dust-devil {
  position: absolute; bottom: 15%; left: 65%; width: 30px; height: 40px;
  background: rgba(150,150,120,.2);
  border-radius: 50%;
  filter: blur(12px);
  animation: pb-dust 6s ease-in-out infinite;
}
@keyframes pb-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .6; } }
@keyframes pb-ground { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes pb-banner { 0% { transform: rotate(-3deg); } 100% { transform: rotate(3deg); } }
@keyframes pb-figure { 0%,100% { transform: rotate(0) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } }
@keyframes pb-sword { 0% { transform: rotate(10deg); } 100% { transform: rotate(20deg); } }
@keyframes pb-shield { 0%,100% { opacity: .8; } 50% { opacity: 1; } }
@keyframes pb-cloud1 { 0% { transform: translateX(-60px); } 100% { transform: translateX(120vw); } }
@keyframes pb-cloud2 { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes pb-dust { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.2) rotate(10deg); } 100% { transform: scale(1) rotate(0); } }

/* Scene: messenger-warns-of-warwick (urgent overcast) */
.scn-messenger-warns-of-warwick {
  background: linear-gradient(180deg, #4a5050 0%, #3a4040 50%, #2a3030 100%),
              radial-gradient(ellipse at 80% 20%, #5a6060 0%, transparent 60%);
}
.scn-messenger-warns-of-warwick .storm-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #5a6060 0%, #4a5050 100%);
  animation: mw-sky 10s ease-in-out infinite;
}
.scn-messenger-warns-of-warwick .road-dirt {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 60% 40% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-messenger-warns-of-warwick .messenger {
  position: absolute; left: 40%; bottom: 30%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: mw-run 0.8s ease-in-out infinite;
}
.scn-messenger-warns-of-warwick .messenger-cloak {
  position: absolute; left: 38%; bottom: 32%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 70% 30% 40% 60% / 50% 60% 40% 50%;
  transform-origin: top left;
  animation: mw-cloak 1s ease-in-out infinite alternate;
}
.scn-messenger-warns-of-warwick .raised-hand {
  position: absolute; left: 48%; bottom: 70%; width: 12px; height: 30px;
  background: #2a2a2a;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-20deg);
  transform-origin: bottom;
  animation: mw-hand 1.2s ease-in-out infinite alternate;
}
.scn-messenger-warns-of-warwick .castle-tower {
  position: absolute; right: 15%; bottom: 30%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: mw-tower 5s ease-in-out infinite;
}
.scn-messenger-warns-of-warwick .wind-streak {
  position: absolute; top: 20%; left: 10%; width: 200px; height: 2px;
  background: rgba(255,255,255,.15);
  border-radius: 1px;
  animation: mw-wind 2s ease-in-out infinite;
}
.scn-messenger-warns-of-warwick .leaf-1 {
  position: absolute; top: 25%; left: 70%; width: 10px; height: 15px;
  background: #6a5a3a;
  border-radius: 50% 0 50% 0;
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
  animation: mw-leaf1 6s linear infinite;
}
.scn-messenger-warns-of-warwick .leaf-2 {
  position: absolute; top: 30%; left: 80%; width: 12px; height: 18px;
  background: #7a6a4a;
  border-radius: 50% 0 50% 0;
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
  animation: mw-leaf2 8s linear infinite;
}
@keyframes mw-sky { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes mw-run { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(2deg); } 75% { transform: translateX(-5px) rotate(-2deg); } }
@keyframes mw-cloak { 0% { transform: rotate(-5deg); } 100% { transform: rotate(10deg); } }
@keyframes mw-hand { 0% { transform: rotate(-30deg); } 100% { transform: rotate(-10deg); } }
@keyframes mw-tower { 0%,100% { opacity: .8; } 50% { opacity: 1; } }
@keyframes mw-wind { 0% { transform: translateX(-50px); opacity: 0; } 50% { opacity: .5; } 100% { transform: translateX(50px); opacity: 0; } }
@keyframes mw-leaf1 { 0% { transform: translateY(0) rotate(0); } 100% { transform: translateY(100px) rotate(360deg); } }
@keyframes mw-leaf2 { 0% { transform: translateY(0) rotate(0); } 100% { transform: translateY(120px) rotate(-360deg); } }

/* Scene: kings-reluctance (sorrowful overcast) */
.scn-kings-reluctance {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 60%, #4a4a5a 0%, transparent 70%);
}
.scn-kings-reluctance .chamber-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%);
  animation: kr-wall 15s ease-in-out infinite;
}
.scn-kings-reluctance .throne-back {
  position: absolute; left: 50%; bottom: 20%; width: 100px; height: 130px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.7);
  animation: kr-throne 4s ease-in-out infinite;
}
.scn-kings-reluctance .king-figure {
  position: absolute; left: 50%; bottom: 22%; width: 60px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kr-king 8s ease-in-out infinite;
}
.scn-kings-reluctance .crown-ground {
  position: absolute; left: 44%; bottom: 15%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #a0a080 0%, #808060 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 10px rgba(160,160,128,.3);
  animation: kr-crown 6s ease-in-out infinite;
}
.scn-kings-reluctance .fallen-sword {
  position: absolute; left: 56%; bottom: 14%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #a0a0a0 0%, #606060 100%);
  border-radius: 2px;
  transform: rotate(-30deg);
  transform-origin: bottom;
  animation: kr-sword 10s ease-in-out infinite;
}
.scn-kings-reluctance .tear-drop {
  position: absolute; left: 48%; bottom: 48%; width: 10px; height: 16px;
  background: radial-gradient(circle at 50% 30%, #6a8a9a 0%, transparent 80%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: kr-tear 3s ease-in-out infinite;
}
.scn-kings-reluctance .shadow-pool {
  position: absolute; bottom: 8%; left: 30%; right: 30%; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: kr-shadow 5s ease-in-out infinite;
}
.scn-kings-reluctance .dust-mote {
  position: absolute; top: 30%; left: 20%; width: 6px; height: 6px;
  background: rgba(200,200,200,.2);
  border-radius: 50%;
  filter: blur(3px);
  animation: kr-mote 20s linear infinite;
}
@keyframes kr-wall { 0%,100% { opacity: .8; } 50% { opacity: 1; } }
@keyframes kr-throne { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(.98); } }
@keyframes kr-king { 0%,100% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(1deg) translateY(-2px); } }
@keyframes kr-crown { 0% { transform: rotate(0); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(0); } }
@keyframes kr-sword { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-25deg); } 100% { transform: rotate(-30deg); } }
@keyframes kr-tear { 0% { opacity: .5; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-4px); } 100% { opacity: .5; transform: translateY(0); } }
@keyframes kr-shadow { 0%,100% { opacity: .3; } 50% { opacity: .5; } }
@keyframes kr-mote { 0% { transform: translateY(0) translateX(0); } 50% { transform: translateY(-20px) translateX(10px); } 100% { transform: translateY(0) translateX(0); } }

/* Scene: york-arrives (angry overcast) */
.scn-york-arrives {
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 50%, #1a1a1a 100%),
              radial-gradient(ellipse at 30% 70%, #4a4a4a 0%, transparent 80%);
}
.scn-york-arrives .battleground-hill {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.8);
  animation: ya-hill 6s ease-in-out infinite;
}
.scn-york-arrives .storm-clouds {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  animation: ya-clouds 3s ease-in-out infinite;
}
.scn-york-arrives .york-figure {
  position: absolute; left: 40%; bottom: 40%; width: 70px; height: 130px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ya-figure 1.2s ease-in-out infinite;
}
.scn-york-arrives .york-cape {
  position: absolute; left: 35%; bottom: 42%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #5a2a1a 0%, #3a1a0a 100%);
  border-radius: 70% 30% 40% 60% / 50% 60% 40% 50%;
  transform-origin: top left;
  animation: ya-cape 0.8s ease-in-out infinite alternate;
}
.scn-york-arrives .pointed-sword {
  position: absolute; left: 52%; bottom: 70%; width: 10px; height: 90px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 50%, #404040 100%);
  border-radius: 2px 2px 50% 50%;
  transform: rotate(30deg);
  transform-origin: bottom;
  animation: ya-sword 0.5s ease-in-out infinite alternate;
}
.scn-york-arrives .lightning-1 {
  position: absolute; top: 5%; left: 20%; width: 4px; height: 100px;
  background: #e0e0e0;
  clip-path: polygon(50% 0%, 40% 30%, 60% 40%, 30% 70%, 50% 100%, 60% 70%, 40% 60%, 70% 30%);
  filter: blur(1px);
  animation: ya-lightning1 4s ease-in-out infinite;
}
.scn-york-arrives .lightning-2 {
  position: absolute; top: 10%; right: 25%; width: 3px; height: 80px;
  background: #d0d0d0;
  clip-path: polygon(50% 0%, 30% 20%, 70% 40%, 40% 60%, 60% 100%, 80% 60%, 50% 40%, 20% 20%);
  filter: blur(1px);
  animation: ya-lightning2 6s ease-in-out infinite;
}
.scn-york-arrives .foot-soldier {
  position: absolute; left: 65%; bottom: 38%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.8);
  transform-origin: bottom;
  animation: ya-soldier 1.5s ease-in-out infinite;
}
@keyframes ya-hill { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ya-clouds { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes ya-figure { 0%,100% { transform: rotate(0); } 50% { transform: rotate(3deg) translateY(-5px); } }
@keyframes ya-cape { 0% { transform: rotate(-10deg); } 100% { transform: rotate(15deg); } }
@keyframes ya-sword { 0% { transform: rotate(25deg); } 100% { transform: rotate(35deg); } }
@keyframes ya-lightning1 { 0%,90%,100% { opacity: 0; } 10% { opacity: 1; } 20% { opacity: .8; } 30% { opacity: 0; } 50% { opacity: .5; } 60% { opacity: 0; } }
@keyframes ya-lightning2 { 0%,80%,100% { opacity: 0; } 15% { opacity: .7; } 25% { opacity: 0; } 45% { opacity: .4; } 55% { opacity: 0; } }
@keyframes ya-soldier { 0%,100% { transform: scale(0.8) translateX(0); } 50% { transform: scale(0.85) translateX(5px); } }

/* parliament-clifford-vows */
.scn-parliament-clifford-vows {
  background: 
    linear-gradient(180deg, #f5e6c0 0%, #d4a96a 40%, #8b5e3c 100%),
    radial-gradient(ellipse at 50% 0%, #fff4d0 0%, transparent 70%);
}
.scn-parliament-clifford-vows .bg-hall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(150,100,50,.15) 0%, transparent 30%, rgba(100,70,30,.1) 70%, rgba(150,100,50,.2) 100%);
  animation: pfc-hall 20s ease-in-out infinite alternate;
}
.scn-parliament-clifford-vows .window-light {
  position: absolute; top: 8%; left: 20%; width: 30%; height: 45%;
  background: radial-gradient(ellipse at center, rgba(255,230,180,.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: pfc-window 6s ease-in-out infinite;
}
.scn-parliament-clifford-vows .throne {
  position: absolute; bottom: 12%; left: 50%; width: 100px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a4a2a 0%, #3a2010 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,.5);
}
.scn-parliament-clifford-vows .clifford-figure {
  position: absolute; bottom: 14%; left: 38%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0f0a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pfc-figure 4s ease-in-out infinite;
}
.scn-parliament-clifford-vows .sword {
  position: absolute; bottom: 37%; left: 36%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #c0a060 0%, #604020 100%);
  border-radius: 1px;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  box-shadow: 0 0 8px 2px rgba(192,160,96,.4);
  animation: pfc-sword 3s ease-in-out infinite alternate;
}
.scn-parliament-clifford-vows .banner-left {
  position: absolute; top: 12%; left: 10%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #b06030 0%, #703020 100%);
  border-radius: 0 0 20% 20%;
  transform: skewX(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: pfc-banner 8s ease-in-out infinite;
}
.scn-parliament-clifford-vows .banner-right {
  position: absolute; top: 12%; right: 10%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #b06030 0%, #703020 100%);
  border-radius: 0 0 20% 20%;
  transform: skewX(5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: pfc-banner 8s ease-in-out infinite reverse;
}
@keyframes pfc-hall { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes pfc-window { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.4; transform: scale(.95) } }
@keyframes pfc-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8px) rotate(1deg) } 50% { transform: translateX(16px) rotate(-1deg) } 75% { transform: translateX(24px) rotate(2deg) } 100% { transform: translateX(32px) rotate(0) } }
@keyframes pfc-sword { 0% { transform: rotate(-25grad) } 50% { transform: rotate(-15grad) } 100% { transform: rotate(-20grad) } }
@keyframes pfc-banner { 0% { transform: skewX(-5deg) } 50% { transform: skewX(5deg) } 100% { transform: skewX(-5deg) } }

/* parliament-warwick-threatens */
.scn-parliament-warwick-threatens {
  background: 
    linear-gradient(180deg, #e6d4b0 0%, #c8a870 40%, #8b6a4a 100%),
    radial-gradient(ellipse at 60% 20%, #ffe8c0 0%, transparent 60%);
}
.scn-parliament-warwick-threatens .bg-hall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(100,70,30,.1) 0%, transparent 50%, rgba(100,70,30,.15) 100%);
  animation: pwt-hall 25s ease-in-out infinite alternate;
}
.scn-parliament-warwick-threatens .window-light {
  position: absolute; top: 5%; left: 30%; width: 25%; height: 40%;
  background: radial-gradient(ellipse at center, rgba(255,220,170,.7) 0%, transparent 60%);
  filter: blur(10px);
  animation: pwt-window 5s ease-in-out infinite;
}
.scn-parliament-warwick-threatens .chair-of-state {
  position: absolute; bottom: 14%; left: 50%; width: 90px; height: 130px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4020 0%, #301a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,.5);
}
.scn-parliament-warwick-threatens .warwick-figure {
  position: absolute; bottom: 16%; left: 36%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #2a1508 0%, #0f0800 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pwt-warwick 3s ease-in-out infinite;
}
.scn-parliament-warwick-threatens .soldier-group {
  position: absolute; bottom: 10%; right: 8%; width: 120px; height: 80px;
  background: radial-gradient(ellipse at 20% 50%, #3a2010 0%, transparent 60%),
              radial-gradient(ellipse at 60% 40%, #2a1508 0%, transparent 50%),
              radial-gradient(ellipse at 90% 30%, #1f0e04 0%, transparent 50%);
  filter: blur(2px);
  animation: pwt-soldiers 8s ease-in-out infinite;
}
.scn-parliament-warwick-threatens .stamp-foot {
  position: absolute; bottom: 10%; left: 34%; width: 16px; height: 10px;
  background: #1a0e04;
  border-radius: 50%;
  transform-origin: bottom center;
  animation: pwt-stamp 2s ease-in-out infinite;
}
@keyframes pwt-hall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes pwt-window { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.9; transform: scale(1.15) } 100% { opacity:.5; transform: scale(1) } }
@keyframes pwt-warwick { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pwt-soldiers { 0% { opacity:.3; transform: scale(.95) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.4; transform: scale(1) } }
@keyframes pwt-stamp { 0%,100% { transform: translateY(0) scale(1) } 20% { transform: translateY(-4px) scale(1.2) } 40% { transform: translateY(0) scale(1) } }

/* parliament-henry-yields */
.scn-parliament-henry-yields {
  background: 
    linear-gradient(180deg, #ece3d0 0%, #c4b090 40%, #8a765a 100%),
    radial-gradient(ellipse at 50% 0%, #ffe8d0 0%, transparent 60%);
}
.scn-parliament-henry-yields .bg-hall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(130,100,70,.08) 0%, transparent 50%, rgba(130,100,70,.12) 100%);
  animation: phy-hall 30s ease-in-out infinite alternate;
}
.scn-parliament-henry-yields .window-light {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 35%;
  background: radial-gradient(ellipse at center, rgba(255,240,210,.5) 0%, transparent 60%);
  filter: blur(12px);
  animation: phy-window 8s ease-in-out infinite alternate;
}
.scn-parliament-henry-yields .throne {
  position: absolute; bottom: 16%; left: 50%; width: 80px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a20 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 6px 16px rgba(0,0,0,.4);
}
.scn-parliament-henry-yields .henry-figure {
  position: absolute; bottom: 18%; left: 45%; width: 26px; height: 55px;
  background: linear-gradient(180deg, #1a1208 0%, #0a0702 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: phy-henry 6s ease-in-out infinite;
}
.scn-parliament-henry-yields .crown-offered {
  position: absolute; bottom: 30%; left: 52%; width: 24px; height: 18px;
  background: linear-gradient(180deg, #e0b070 0%, #b08040 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: 0 4px 10px rgba(200,150,80,.6);
  transform: rotate(25deg);
  transform-origin: bottom center;
  animation: phy-crown 4s ease-in-out infinite alternate;
}
.scn-parliament-henry-yields .pillar-left {
  position: absolute; top: 0; left: 8%; width: 20px; height: 100%;
  background: linear-gradient(90deg, #d4bea0 0%, #b09470 50%, #8a7050 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,.2);
  animation: phy-pillar 15s linear infinite;
}
@keyframes phy-hall { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes phy-window { 0% { opacity:.4; transform: scale(1) } 100% { opacity:.8; transform: scale(1.05) } }
@keyframes phy-henry { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(2px) rotate(0) } 50% { transform: translateY(-1px) rotate(1deg) } 75% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes phy-crown { 0% { transform: rotate(15deg) } 50% { transform: rotate(35deg) } 100% { transform: rotate(20deg) } }
@keyframes phy-pillar { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }

/* parliament-henry-remorse */
.scn-parliament-henry-remorse {
  background: 
    linear-gradient(180deg, #1e1a2a 0%, #2a2428 30%, #1a1218 70%, #0e0a0c 100%),
    radial-gradient(ellipse at 30% 60%, #2a1e2a 0%, transparent 60%);
}
.scn-parliament-henry-remorse .bg-hall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(40,30,20,.3) 0%, transparent 40%, rgba(20,15,10,.2) 100%);
  animation: phr-hall 30s ease-in-out infinite alternate;
}
.scn-parliament-henry-remorse .candle-glow {
  position: absolute; top: 20%; left: 35%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at center, rgba(200,140,60,.3) 0%, rgba(160,80,20,.1) 30%, transparent 70%);
  filter: blur(15px);
  animation: phr-candle 5s ease-in-out infinite alternate;
}
.scn-parliament-henry-remorse .henry-figure {
  position: absolute; bottom: 18%; left: 40%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a101a 0%, #0a060a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: phr-henry 8s ease-in-out infinite;
}
.scn-parliament-henry-remorse .exeter-figure {
  position: absolute; bottom: 18%; right: 35%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1c121c 0%, #0c080c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: phr-exeter 10s ease-in-out infinite;
}
.scn-parliament-henry-remorse .throne-shadow {
  position: absolute; bottom: 12%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1212 0%, #080408 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,.7);
  animation: phr-throne 12s ease-in-out infinite alternate;
}
.scn-parliament-henry-remorse .moon-window {
  position: absolute; top: 8%; right: 12%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at center, rgba(180,200,220,.3) 0%, transparent 60%);
  border-radius: 8%;
  filter: blur(6px);
  animation: phr-moon 20s linear infinite;
}
@keyframes phr-hall { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes phr-candle { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.5; transform: scale(.95) } }
@keyframes phr-henry { 0% { transform: translateY(0) rotate(-1deg) } 20% { transform: translateY(1px) rotate(1deg) } 40% { transform: translateY(2px) rotate(-1deg) } 60% { transform: translateY(0) rotate(0) } 80% { transform: translateY(1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes phr-exeter { 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 phr-throne { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes phr-moon { 0% { transform: translateX(0) } 50% { transform: translateX(20px) } 100% { transform: translateX(0) } }

/* wakefield-rutland-slain */
.scn-wakefield-rutland-slain {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 0%, #4a4a5a 0%, transparent 60%);
}
.scn-wakefield-rutland-slain .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 60%, transparent 100%);
  animation: wr1-sky 14s ease-in-out infinite alternate;
}
.scn-wakefield-rutland-slain .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-wakefield-rutland-slain .figure-kneeling {
  position: absolute; bottom: 30%; left: 30%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wr1-kneel 8s ease-in-out infinite;
}
.scn-wakefield-rutland-slain .figure-standing {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wr1-stand 10s ease-in-out infinite;
}
.scn-wakefield-rutland-slain .cloud {
  position: absolute; height: 18px; background: linear-gradient(180deg, rgba(200,200,220,0.4) 0%, rgba(200,200,220,0.05) 100%);
  border-radius: 50%; filter: blur(6px);
}
.scn-wakefield-rutland-slain .cloud-a { top: 15%; left: 10%; width: 70px; animation: wr1-drift-a 40s linear infinite; }
.scn-wakefield-rutland-slain .cloud-b { top: 25%; right: 5%; width: 50px; animation: wr1-drift-b 50s linear infinite; }
@keyframes wr1-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes wr1-kneel { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(2deg) } 75% { transform: translateX(-2px) translateY(0) rotate(-2deg) } }
@keyframes wr1-stand { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(-3px) translateY(-2px) rotate(1deg) } }
@keyframes wr1-drift-a { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes wr1-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* wakefield-york-surrounded */
.scn-wakefield-york-surrounded {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 80%, #3a3a4a 0%, transparent 70%);
}
.scn-wakefield-york-surrounded .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 70%, transparent 100%);
  animation: wy2-sky 15s ease-in-out infinite alternate;
}
.scn-wakefield-york-surrounded .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
}
.scn-wakefield-york-surrounded .figure-york {
  position: absolute; bottom: 30%; left: 45%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wy2-york 6s ease-in-out infinite;
}
.scn-wakefield-york-surrounded .enemy {
  position: absolute; bottom: 28%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-wakefield-york-surrounded .enemy-left { left: 10%; animation: wy2-enemy-l 12s ease-in-out infinite; }
.scn-wakefield-york-surrounded .enemy-right { right: 10%; animation: wy2-enemy-r 14s ease-in-out infinite; }
.scn-wakefield-york-surrounded .ship {
  position: absolute; bottom: 35%; width: 30px; height: 10px;
  background: linear-gradient(90deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-wakefield-york-surrounded .ship-1 { left: 60%; animation: wy2-ship1 20s linear infinite; }
.scn-wakefield-york-surrounded .ship-2 { left: 70%; width: 22px; height: 8px; animation: wy2-ship2 25s linear infinite; }
.scn-wakefield-york-surrounded .cloud {
  position: absolute; height: 16px; background: linear-gradient(180deg, rgba(200,200,220,0.3) 0%, rgba(200,200,220,0.05) 100%);
  border-radius: 50%; filter: blur(5px);
}
.scn-wakefield-york-surrounded .cloud-c { top: 20%; left: 50%; width: 60px; animation: wy2-drift-c 35s linear infinite; }
@keyframes wy2-sky { 0% { opacity: 0.6 } 50% { opacity: 0.85 } 100% { opacity: 0.5 } }
@keyframes wy2-york { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(2deg) } 75% { transform: translateX(-3px) translateY(0) rotate(-1deg) } }
@keyframes wy2-enemy-l { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(5px) translateY(-2px) rotate(3deg) } }
@keyframes wy2-enemy-r { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(-5px) translateY(-1px) rotate(-2deg) } }
@keyframes wy2-ship1 { 0% { transform: translateX(0) } 100% { transform: translateX(-80px) } }
@keyframes wy2-ship2 { 0% { transform: translateX(0) } 100% { transform: translateX(100px) } }
@keyframes wy2-drift-c { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

/* wakefield-york-captured */
.scn-wakefield-york-captured {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 60%);
}
.scn-wakefield-york-captured .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 70%, transparent 100%);
  animation: wy3-sky 12s ease-in-out infinite alternate;
}
.scn-wakefield-york-captured .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 60% 40% 0 0 / 30% 40% 0 0;
}
.scn-wakefield-york-captured .molehill {
  position: absolute; bottom: 25%; left: 45%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform: translateX(-50%);
}
.scn-wakefield-york-captured .figure-york-captured {
  position: absolute; bottom: 38%; left: 45%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wy3-york 4s ease-in-out infinite;
}
.scn-wakefield-york-captured .soldier {
  position: absolute; bottom: 28%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-wakefield-york-captured .soldier-left { left: 20%; animation: wy3-sold-l 7s ease-in-out infinite; }
.scn-wakefield-york-captured .soldier-right { right: 20%; animation: wy3-sold-r 8s ease-in-out infinite; }
.scn-wakefield-york-captured .spear {
  position: absolute; bottom: 60%; left: 35%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  border-radius: 0 0 20% 20%;
  transform-origin: bottom center;
  animation: wy3-spear 5s ease-in-out infinite;
}
@keyframes wy3-sky { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.5 } }
@keyframes wy3-york { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-45%) translateY(-2px) rotate(5deg) } 75% { transform: translateX(-55%) translateY(0) rotate(-3deg) } }
@keyframes wy3-sold-l { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(3px) translateY(-1px) rotate(2deg) } }
@keyframes wy3-sold-r { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(-3px) translateY(-1px) rotate(-2deg) } }
@keyframes wy3-spear { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } }

/* item-bloody-napkin */
.scn-item-bloody-napkin {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 50%, #3a3a4a 0%, transparent 70%);
}
.scn-item-bloody-napkin .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 100%);
  opacity: 0.8;
  animation: ibn-bg 10s ease-in-out infinite alternate;
}
.scn-item-bloody-napkin .napkin {
  position: absolute; top: 30%; left: 45%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #a0461a 0%, #5e1a1d 70%, #3a0a0a 100%);
  border-radius: 10% 20% 30% 20% / 20% 30% 20% 30%;
  transform: rotate(-15deg);
  animation: ibn-napkin 6s ease-in-out infinite;
  box-shadow: 0 0 10px 2px rgba(160,70,26,0.5);
}
.scn-item-bloody-napkin .hand {
  position: absolute; bottom: 40%; left: 46%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(10deg);
  transform-origin: bottom center;
  animation: ibn-hand 4s ease-in-out infinite;
}
.scn-item-bloody-napkin .drop {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, #a0461a 0%, #5e1a1d 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(160,70,26,0.4);
}
.scn-item-bloody-napkin .drop-1 { top: 22%; left: 48%; animation: ibn-drop1 8s linear infinite; }
.scn-item-bloody-napkin .drop-2 { top: 18%; left: 52%; width: 4px; height: 4px; animation: ibn-drop2 10s linear infinite; }
.scn-item-bloody-napkin .figure-mocking {
  position: absolute; bottom: 20%; right: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ibn-mock 5s ease-in-out infinite;
}
@keyframes ibn-bg { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes ibn-napkin { 0%,100% { transform: rotate(-15deg) translateY(0) } 25% { transform: rotate(-10deg) translateY(-3px) } 75% { transform: rotate(-20deg) translateY(2px) } }
@keyframes ibn-hand { 0%,100% { transform: translateX(-50%) rotate(10deg) } 50% { transform: translateX(-45%) rotate(15deg) } }
@keyframes ibn-drop1 { 0% { transform: translateY(0); opacity: 0 } 10% { opacity: 1 } 90% { opacity: 1 } 100% { transform: translateY(60px); opacity: 0 } }
@keyframes ibn-drop2 { 0% { transform: translateY(0); opacity: 0 } 15% { opacity: 1 } 85% { opacity: 1 } 100% { transform: translateY(50px); opacity: 0 } }
@keyframes ibn-mock { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(5deg) } 75% { transform: translateY(0) rotate(-3deg) } }

/* fly-berwick : urgent, overcast */
.scn-fly-berwick {
  background: linear-gradient(170deg, #3f3f50 0%, #2a2a3a 60%, #1c1c2a 100%),
              radial-gradient(ellipse at 40% 100%, #363647 0%, transparent 70%);
}
.scn-fly-berwick .fb-sky {
  position: absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #59596e 0%, #2f2f42 100%);
  animation: fb-sky 14s ease-in-out infinite alternate;
}
.scn-fly-berwick .fb-hills {
  position: absolute; bottom:38%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #404040 0%, #282828 100%);
  border-radius: 50% 60% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 6px 14px rgba(0,0,0,0.5);
  animation: fb-hills 9s ease-in-out infinite alternate;
}
.scn-fly-berwick .fb-castle {
  position: absolute; bottom:30%; left:15%; width:120px; height:90px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 4% 4% 8% 8% / 10% 10% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  transform-origin: bottom center;
  animation: fb-castle 6s ease-in-out infinite;
}
.scn-fly-berwick .fb-figure-1 {
  position: absolute; bottom:36%; left:45%; width:20px; height:40px;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fb-run 2.5s ease-in-out infinite alternate;
}
.scn-fly-berwick .fb-figure-2 {
  position: absolute; bottom:34%; left:65%; width:18px; height:36px;
  background: linear-gradient(180deg, #222233 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fb-run 2.8s ease-in-out infinite alternate-reverse;
  animation-delay: 0.6s;
}
.scn-fly-berwick .fb-banner {
  position: absolute; bottom:34%; left:20%; width:10px; height:30px;
  background: #5a3a2a;
  border-radius: 3px;
  box-shadow: 0 -10px 0 #3a2a1a;
  transform-origin: top left;
  animation: fb-banner 3.2s ease-in-out infinite;
}
.scn-fly-berwick .fb-dust {
  position: absolute; bottom:35%; left:30%; width:80px; height:20px;
  background: radial-gradient(ellipse, rgba(180,170,150,0.4) 0%, transparent 70%);
  filter: blur(3px);
  animation: fb-dust 4s ease-in-out infinite;
}
@keyframes fb-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes fb-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes fb-castle { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.98) rotate(0.5deg); } }
@keyframes fb-run { 0% { transform: translateX(0) rotate(-2deg) scaleX(1); } 50% { transform: translateX(12px) rotate(3deg) scaleX(1.02); } 100% { transform: translateX(24px) rotate(-1deg) scaleX(1); } }
@keyframes fb-banner { 0%,100% { transform: rotate(-8deg) scaleY(1); } 50% { transform: rotate(10deg) scaleY(0.9); } }
@keyframes fb-dust { 0% { transform: translateX(-10px) scaleY(0.8); opacity:0.3; } 50% { transform: translateX(30px) scaleY(1.2); opacity:0.7; } 100% { transform: translateX(60px) scaleY(0.6); opacity:0.1; } }

/* clifford-wounded : despairing, overcast */
.scn-clifford-wounded {
  background: linear-gradient(180deg, #363645 0%, #252536 50%, #1c1c2a 100%),
              radial-gradient(ellipse at 50% 80%, #2f2f40 0%, transparent 60%);
}
.scn-clifford-wounded .cw-sky {
  position: absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #4d4d60 0%, #2b2b3b 100%);
  animation: cw-sky 12s ease-in-out infinite alternate;
}
.scn-clifford-wounded .cw-ground {
  position: absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1f1f1f 100%);
  border-radius: 30% 20% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-clifford-wounded .cw-knight {
  position: absolute; bottom:30%; left:40%; width:30px; height:60px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cw-knight-breath 6s ease-in-out infinite;
}
.scn-clifford-wounded .cw-candle {
  position: absolute; bottom:45%; left:35%; width:6px; height:18px;
  background: linear-gradient(180deg, #b0a090 0%, #7a6a5a 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px 2px rgba(200,180,140,0.5);
  animation: cw-candle-flicker 2s ease-in-out infinite;
}
.scn-clifford-wounded .cw-glow {
  position: absolute; bottom:45%; left:35%; width:30px; height:30px;
  background: radial-gradient(circle, rgba(200,180,140,0.6) 0%, transparent 60%);
  filter: blur(4px);
  animation: cw-glow-pulse 3s ease-in-out infinite;
}
.scn-clifford-wounded .cw-sword {
  position: absolute; bottom:35%; left:48%; width:4px; height:40px;
  background: #4a4a5a;
  border-radius: 2px;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: cw-sword-glimmer 5s ease-in-out infinite;
}
.scn-clifford-wounded .cw-shadow {
  position: absolute; bottom:25%; left:35%; width:80px; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(3px);
  animation: cw-shadow-shift 7s ease-in-out infinite;
}
@keyframes cw-sky { 0% { opacity:0.6; } 50% { opacity:0.85; } 100% { opacity:0.7; } }
@keyframes cw-knight-breath { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.01) translateY(-1px); } }
@keyframes cw-candle-flicker { 0%,100% { transform: scaleY(1) scaleX(1); opacity:0.9; } 25% { transform: scaleY(1.1) scaleX(0.95); opacity:1; } 75% { transform: scaleY(0.9) scaleX(1.05); opacity:0.8; } }
@keyframes cw-glow-pulse { 0%,100% { transform: scale(1); opacity:0.5; } 50% { transform: scale(1.3); opacity:0.9; } }
@keyframes cw-sword-glimmer { 0%,100% { opacity:0.6; box-shadow: 0 0 2px 0 #a0a0b0; } 50% { opacity:1; box-shadow: 0 0 8px 2px rgba(200,200,220,0.3); } }
@keyframes cw-shadow-shift { 0%,100% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(0.95); } }

/* clifford-dies : bitter, overcast */
.scn-clifford-dies {
  background: linear-gradient(180deg, #3a3a48 0%, #242435 50%, #161622 100%),
              radial-gradient(ellipse at 70% 20%, #2f2f42 0%, transparent 60%);
}
.scn-clifford-dies .cd-sky {
  position: absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #4a4a5c 0%, #2c2c3e 100%);
  animation: cd-sky 18s ease-in-out infinite alternate;
}
.scn-clifford-dies .cd-ground {
  position: absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #35353a 0%, #1a1a1e 100%);
  border-radius: 10% 30% 0 0 / 30% 50% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-clifford-dies .cd-knight {
  position: absolute; bottom:32%; left:40%; width:34px; height:50px;
  background: linear-gradient(180deg, #2a2a38 0%, #0a0a16 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: cd-knight-fall 8s ease-in-out infinite;
}
.scn-clifford-dies .cd-weeds {
  position: absolute; bottom:36%; left:20%; width:100px; height:30px;
  background: repeating-linear-gradient(45deg, #3a4a2a 0px, #3a4a2a 2px, transparent 2px, transparent 8px);
  border-radius: 20% 30% 10% 20%;
  filter: blur(1px);
  animation: cd-weeds-sway 4s ease-in-out infinite alternate;
}
.scn-clifford-dies .cd-shield {
  position: absolute; bottom:22%; left:28%; width:24px; height:26px;
  background: #2a2a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 6px rgba(0,0,0,0.8);
  transform: rotate(-15deg);
  animation: cd-shield-slide 10s ease-in-out infinite;
}
.scn-clifford-dies .cd-crow {
  position: absolute; top:20%; right:10%; width:20px; height:12px;
  background: #111;
  border-radius: 50% 50% 40% 40%;
  filter: blur(0.5px);
  animation: cd-crow-circle 25s linear infinite;
  animation-delay: -5s;
}
@keyframes cd-sky { 0% { opacity:0.5; } 50% { opacity:0.75; } 100% { opacity:0.6; } }
@keyframes cd-knight-fall { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-3px); } }
@keyframes cd-weeds-sway { 0% { transform: skewX(-2deg) translateX(0); } 50% { transform: skewX(2deg) translateX(6px); } 100% { transform: skewX(-1deg) translateX(-4px); } }
@keyframes cd-shield-slide { 0%,100% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(10px); } }
@keyframes cd-crow-circle { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(-30px,-20px) rotate(-5deg); } 50% { transform: translate(-60px,10px) rotate(3deg); } 75% { transform: translate(-90px,-10px) rotate(-2deg); } 100% { transform: translate(-120px,0) rotate(0deg); } }

/* finding-clifford-dead : vengeful, overcast */
.scn-finding-clifford-dead {
  background: linear-gradient(180deg, #333345 0%, #1f1f2f 50%, #141422 100%),
              radial-gradient(circle at 30% 70%, #2f2f42 0%, transparent 70%);
  box-shadow: inset 0 0 40px rgba(100,30,30,0.15); /* muted rust tint */
}
.scn-finding-clifford-dead .fcd-sky {
  position: absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #3f3f54 0%, #242438 100%);
  animation: fcd-sky 16s ease-in-out infinite alternate;
}
.scn-finding-clifford-dead .fcd-ground {
  position: absolute; bottom:0; left:0; right:0; height:60%;
  background: linear-gradient(180deg, #303038 0%, #18181e 100%);
  border-radius: 20% 15% 0 0 / 30% 25% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.7);
}
.scn-finding-clifford-dead .fcd-body {
  position: absolute; bottom:28%; left:35%; width:34px; height:55px;
  background: linear-gradient(180deg, #2a2a36 0%, #0a0a14 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(15deg) scaleY(0.9);
  transform-origin: bottom center;
  animation: fcd-body-still 12s ease-in-out infinite;
}
.scn-finding-clifford-dead .fcd-figure {
  position: absolute; bottom:35%; left:55%; width:22px; height:48px;
  background: linear-gradient(180deg, #1e1e2e 0%, #080812 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fcd-figure-stand 5s ease-in-out infinite;
}
.scn-finding-clifford-dead .fcd-sword {
  position: absolute; bottom:45%; left:70%; width:3px; height:50px;
  background: #4a4a5a;
  border-radius: 2px;
  transform: rotate(30deg);
  transform-origin: bottom center;
  animation: fcd-sword-glint 4s ease-in-out infinite;
}
.scn-finding-clifford-dead .fcd-blood {
  position: absolute; bottom:22%; left:30%; width:50px; height:12px;
  background: radial-gradient(ellipse, #5e1a1d 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(2px);
  animation: fcd-blood-spread 20s ease-in-out infinite alternate;
}
.scn-finding-clifford-dead .fcd-shadow {
  position: absolute; bottom:22%; left:45%; width:70px; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%);
  filter: blur(5px);
  animation: fcd-shadow-warp 8s ease-in-out infinite;
}
@keyframes fcd-sky { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }
@keyframes fcd-body-still { 0%,100% { transform: rotate(15deg) scaleY(0.9) translateY(0); } 50% { transform: rotate(14deg) scaleY(0.92) translateY(-2px); } }
@keyframes fcd-figure-stand { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes fcd-sword-glint { 0%,100% { opacity:0.5; box-shadow: 0 0 2px 0 #a0a0b0; } 50% { opacity:0.9; box-shadow: 0 0 10px 2px rgba(180,160,140,0.2); } }
@keyframes fcd-blood-spread { 0% { transform: scaleX(0.8) scaleY(0.8); opacity:0.3; } 50% { transform: scaleX(1.2) scaleY(1); opacity:0.7; } 100% { transform: scaleX(0.9) scaleY(0.7); opacity:0.4; } }
@keyframes fcd-shadow-warp { 0%,100% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.2) scaleY(0.8); } }

.scn-london-palace-brothers-quarrel { background: linear-gradient(180deg, #8b7355 0%, #d4b483 40%, #e6d3b3 100%), radial-gradient(ellipse at 50% 0%, #f0d8b8 0%, transparent 70%); }
.scn-london-palace-brothers-quarrel .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #6b5b3e 0%, #4a3d2a 100%); box-shadow: inset 0 12px 20px rgba(0,0,0,.3); animation: lpq-floor 20s ease-in-out infinite alternate; }
.scn-london-palace-brothers-quarrel .wall-back { position:absolute; top:0; left:0; right:0; bottom:25%; background: linear-gradient(180deg, #c9a97a 0%, #d4b483 100%); }
.scn-london-palace-brothers-quarrel .window { position:absolute; top:10%; left:35%; width:30%; height:45%; background: radial-gradient(ellipse at 50% 50%, #b8d4e6 0%, #8ba3b3 70%), linear-gradient(135deg, transparent 30%, rgba(255,255,255,.1) 80%); border:4px solid #5a4a35; border-radius:4px; box-shadow: inset 0 0 40px rgba(200,180,140,.4); animation: lpq-win 8s ease-in-out infinite alternate; }
.scn-london-palace-brothers-quarrel .figure-gloucester { position:absolute; bottom:25%; left:25%; width:60px; height:120px; background: linear-gradient(135deg, #2a1f1a 0%, #1a1210 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: lpq-fig1 6s ease-in-out infinite; }
.scn-london-palace-brothers-quarrel .figure-clarence { position:absolute; bottom:25%; right:25%; width:60px; height:115px; background: linear-gradient(225deg, #2a1f1a 0%, #1a1210 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: lpq-fig2 7s ease-in-out infinite; }
.scn-london-palace-brothers-quarrel .table { position:absolute; bottom:25%; left:43%; width:14%; height:8%; background: linear-gradient(180deg, #6b4a30 0%, #4a3320 100%); border-radius:10%; box-shadow: 0 5px 15px rgba(0,0,0,.4); animation: lpq-table 12s ease-in-out infinite alternate; }
.scn-london-palace-brothers-quarrel .candle { position:absolute; bottom:33%; left:49%; width:6px; height:20px; background: linear-gradient(180deg, #e6d3b3 0%, #b59570 100%); border-radius:2px 2px 0 0; box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 12px rgba(255,208,128,.3); animation: lpq-candle 2s ease-in-out infinite alternate; }
.scn-london-palace-brothers-quarrel .shadow { position:absolute; bottom:25%; left:20%; width:60%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.25) 0%, transparent 70%); animation: lpq-shadow 8s ease-in-out infinite alternate; }
@keyframes lpq-floor { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes lpq-win { 0% { opacity:.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.01); } 100% { opacity:.8; transform: scale(.98); } }
@keyframes lpq-fig1 { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(0deg); } 50% { transform: translateX(0) translateY(-1px) rotate(2deg); } 75% { transform: translateX(-5px) translateY(0) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes lpq-fig2 { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 25% { transform: translateX(-5px) translateY(-2px) rotate(0deg); } 50% { transform: translateX(0) translateY(-1px) rotate(-2deg); } 75% { transform: translateX(5px) translateY(0) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(2deg); } }
@keyframes lpq-table { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes lpq-candle { 0% { transform: scaleY(1) scaleX(1); opacity:.8; box-shadow: 0 0 15px 4px #ffd080; } 50% { transform: scaleY(1.05) scaleX(1.02); opacity:1; box-shadow: 0 0 25px 8px #ffd080; } 100% { transform: scaleY(.95) scaleX(.98); opacity:.85; box-shadow: 0 0 18px 5px #ffc060; } }
@keyframes lpq-shadow { 0% { opacity:.3; transform: scaleX(1); } 50% { opacity:.5; transform: scaleX(1.05); } 100% { opacity:.2; transform: scaleX(.95); } }

.scn-plain-warwickshire { background: linear-gradient(180deg, #8a9a8a 0%, #6b7b5e 20%, #4a5a3a 50%, #2a3a2a 100%), radial-gradient(ellipse at 50% 0%, #c0c8b0 0%, transparent 70%); }
.scn-plain-warwickshire .sky { position:absolute; top:0; left:0; right:0; bottom:35%; background: linear-gradient(180deg, #b8c8b0 0%, #8a9a8a 100%); animation: pw-sky 30s linear infinite alternate; }
.scn-plain-warwickshire .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%); border-radius:40% 60% 0 0 / 60% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: pw-ground 20s ease-in-out infinite alternate; }
.scn-plain-warwickshire .hills { position:absolute; bottom:30%; left:-10%; right:-10%; height:20%; background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%); border-radius:50% 50% 0 0; transform: scaleX(1.2); filter: blur(3px); animation: pw-hills 25s ease-in-out infinite alternate; }
.scn-plain-warwickshire .tree { position:absolute; bottom:30%; left:30%; width:8px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:2px; transform-origin: bottom center; animation: pw-tree 15s ease-in-out infinite; }
.scn-plain-warwickshire .tree::before { content:''; position:absolute; top:-30px; left:-15px; width:30px; height:40px; background: radial-gradient(ellipse at 50% 50%, #5a7a4a 0%, #3a5a2a 60%, transparent 80%); border-radius:50%; filter: blur(2px); animation: pw-foliage 15s ease-in-out infinite; }
.scn-plain-warwickshire .figure-warwick { position:absolute; bottom:28%; left:55%; width:45px; height:100px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: pw-warwick 8s ease-in-out infinite; }
.scn-plain-warwickshire .banner { position:absolute; bottom:38%; left:57%; width:20px; height:30px; background: linear-gradient(180deg, #4a2a1a 0%, #5e3a1a 100%); border-radius:2px; transform-origin: top left; animation: pw-banner 6s ease-in-out infinite alternate; }
.scn-plain-warwickshire .cloud { position:absolute; top:10%; right:15%; width:70px; height:16px; background: linear-gradient(180deg, rgba(200,210,200,.6) 0%, rgba(180,190,180,.2) 100%); border-radius:50%; filter: blur(6px); animation: pw-cloud 40s linear infinite reverse; }
@keyframes pw-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes pw-ground { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes pw-hills { 0% { transform: translateX(0) scaleX(1.2); } 50% { transform: translateX(-5px) scaleX(1.22); } 100% { transform: translateX(5px) scaleX(1.2); } }
@keyframes pw-tree { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes pw-foliage { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes pw-warwick { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(-2px) rotate(1deg); } }
@keyframes pw-banner { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(15deg) scaleX(1.1); } 100% { transform: rotate(-10deg) scaleX(1); } }
@keyframes pw-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

.scn-edwards-camp-near-warwick { background: linear-gradient(180deg, #0a0a1e 0%, #1a1a3e 30%, #2a1a3a 60%, #0e0e1a 100%), radial-gradient(ellipse at 50% 80%, #1a2a4a 0%, transparent 70%); }
.scn-edwards-camp-near-warwick .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1e 0%, #1a1a2e 100%); animation: ecnw-night 30s ease-in-out infinite alternate; }
.scn-edwards-camp-near-warwick .tent { position:absolute; bottom:20%; left:35%; width:30%; height:50%; background: linear-gradient(135deg, #3a3a4a 0%, #2a2a3a 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); border-radius:0 0 10% 10%; box-shadow: 0 10px 30px rgba(0,0,0,.7), inset 0 10px 20px rgba(100,100,130,.2); animation: ecnw-tent 12s ease-in-out infinite alternate; }
.scn-edwards-camp-near-warwick .fire { position:absolute; bottom:18%; left:45%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 0%, #ff8a40 0%, #ff6030 30%, #c83010 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 15px #ff6030, 0 0 80px 30px rgba(255,96,48,.3); animation: ecnw-fire 1.5s ease-in-out infinite alternate; }
.scn-edwards-camp-near-warwick .guard-left { position:absolute; bottom:18%; left:30%; width:35px; height:90px; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: ecnw-guard1 8s ease-in-out infinite; }
.scn-edwards-camp-near-warwick .guard-right { position:absolute; bottom:18%; right:30%; width:35px; height:85px; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: ecnw-guard2 9s ease-in-out infinite; }
.scn-edwards-camp-near-warwick .ground-camp { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:40% 40% 0 0 / 100% 100% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); animation: ecnw-ground 25s ease-in-out infinite alternate; }
.scn-edwards-camp-near-warwick .sparks { position:absolute; bottom:30%; left:42%; width:100px; height:100px; background: radial-gradient(circle at 50% 50%, rgba(255,200,100,.3) 0%, transparent 60%); filter: blur(4px); animation: ecnw-sparks 3s ease-in-out infinite; }
@keyframes ecnw-night { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes ecnw-tent { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes ecnw-fire { 0% { transform: scale(1) translateY(0); opacity:.9; box-shadow: 0 0 30px 10px #ff6030; } 50% { transform: scale(1.1) translateY(-3px); opacity:1; box-shadow: 0 0 50px 20px #ff6030; } 100% { transform: scale(.95) translateY(1px); opacity:.85; box-shadow: 0 0 35px 12px #ff6030; } }
@keyframes ecnw-guard1 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-1deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-2px) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ecnw-guard2 { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-2px) rotate(0deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(2px) rotate(0deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes ecnw-ground { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.03) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes ecnw-sparks { 0% { transform: translateY(0) scale(1); opacity:.3; } 50% { transform: translateY(-10px) scale(1.2); opacity:.6; } 100% { transform: translateY(5px) scale(.8); opacity:.2; } }

.scn-item-crown-removed { background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 30%, #2a1a1a 60%, #0e0e0e 100%), radial-gradient(ellipse at 50% 30%, #1a1a2a 0%, transparent 70%); }
.scn-item-crown-removed .bg-deep { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a0a 0%, #1a1a2a 50%, #0a0a0a 100%); animation: icr-bg 30s ease-in-out infinite alternate; }
.scn-item-crown-removed .crown { position:absolute; top:20%; left:35%; width:150px; height:100px; background: linear-gradient(180deg, #d4a060 0%, #b08040 40%, #8a6020 100%); clip-path: polygon(10% 100%, 30% 20%, 50% 0%, 70% 20%, 90% 100%); border-radius:20%; box-shadow: 0 0 30px 5px rgba(200,180,100,.3), inset 0 5px 15px rgba(255,200,100,.4); transform-origin: center bottom; animation: icr-crown 12s ease-in-out infinite alternate; }
.scn-item-crown-removed .crown::after { content:''; position:absolute; top:10%; left:50%; transform:translateX(-50%); width:8px; height:8px; background: radial-gradient(circle, #ffd080 0%, #c08040 100%); border-radius:50%; box-shadow: 0 0 10px 3px #c08040; animation: icr-jewel 3s ease-in-out infinite alternate; }
.scn-item-crown-removed .hand { position:absolute; bottom:10%; left:45%; width:60px; height:80px; background: linear-gradient(180deg, #2a1a1a 0%, #1a1010 100%); border-radius:30% 30% 40% 40% / 40% 40% 30% 30%; transform-origin: bottom center; animation: icr-hand 8s ease-in-out infinite; }
.scn-item-crown-removed .hand::before { content:''; position:absolute; top:-20%; left:50%; transform:translateX(-50%); width:20px; height:30px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a10 100%); border-radius:40% 40% 30% 30%; animation: icr-fingers 4s ease-in-out infinite alternate; }
.scn-item-crown-removed .pedestal { position:absolute; bottom:0; left:20%; width:60%; height:15%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); animation: icr-pedestal 20s ease-in-out infinite alternate; }
.scn-item-crown-removed .glow { position:absolute; top:15%; left:30%; width:200px; height:200px; background: radial-gradient(circle at 50% 50%, rgba(200,180,100,.15) 0%, transparent 60%); filter: blur(10px); animation: icr-glow 6s ease-in-out infinite alternate; }
@keyframes icr-bg { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes icr-crown { 0% { transform: translateY(0) rotate(-2deg) scale(1); } 50% { transform: translateY(-3px) rotate(1deg) scale(1.02); } 100% { transform: translateY(0) rotate(2deg) scale(1); } }
@keyframes icr-jewel { 0% { transform: translateX(-50%) scale(1); opacity:.7; box-shadow: 0 0 8px 2px #c08040; } 50% { transform: translateX(-50%) scale(1.2); opacity:1; box-shadow: 0 0 15px 5px #ffd080; } 100% { transform: translateX(-50%) scale(1); opacity:.8; box-shadow: 0 0 10px 3px #c08040; } }
@keyframes icr-hand { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-4px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes icr-fingers { 0% { transform: translateX(-50%) rotate(0deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(-5deg) scaleY(1.1); } 100% { transform: translateX(-50%) rotate(5deg) scaleY(1); } }
@keyframes icr-pedestal { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes icr-glow { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.1); } 100% { opacity:.2; transform: scale(.9); } }

/* Scene: king-eyes-lady-grey */
.scn-king-eyes-lady-grey {
  background: linear-gradient(180deg, #f5e6d0 0%, #e8d5b0 40%, #d4b896 100%), radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 60%);
}
.scn-king-eyes-lady-grey .wall-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #c4a882 0%, #d4b896 50%, #c4a882 100%);
  border-bottom: 4px solid #a0764a;
  box-shadow: inset 0 20px 40px rgba(139,105,20,0.1);
  animation: kes-wall 12s ease-in-out infinite alternate;
}
.scn-king-eyes-lady-grey .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #a0764a 0%, #8b6914 100%);
  border-top: 2px solid #ba8a5c;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-king-eyes-lady-grey .window {
  position: absolute; top: 10%; left: 20%; width: 80px; height: 120px;
  background: radial-gradient(circle at 30% 20%, #fff8e0 0%, #f0e0c0 50%, #d4b896 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  filter: blur(2px);
  box-shadow: 0 0 30px 10px rgba(255,248,224,0.3);
  animation: kes-window 6s ease-in-out infinite alternate;
}
.scn-king-eyes-lady-grey .throne {
  position: absolute; bottom: 20%; left: 15%; width: 120px; height: 140px;
  background: linear-gradient(180deg, #8b6914 0%, #6d4c0b 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: kes-throne 8s ease-in-out infinite;
}
.scn-king-eyes-lady-grey .king-fig {
  position: absolute; bottom: 18%; left: 18%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #5a3e1a 0%, #3a2a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kes-king 4s ease-in-out infinite alternate;
}
.scn-king-eyes-lady-grey .lady-fig {
  position: absolute; bottom: 18%; left: 50%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #f5d0b0 0%, #d4b896 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kes-lady 5s ease-in-out infinite;
}
.scn-king-eyes-lady-grey .curtain {
  position: absolute; top: 0; right: 10%; width: 60px; height: 100%;
  background: linear-gradient(180deg, #a0764a 0%, #8b6914 50%, #6d4c0b 100%);
  border-radius: 30% 0 0 30% / 50% 0 0 50%;
  transform-origin: top center;
  animation: kes-curtain 7s ease-in-out infinite alternate;
}
.scn-king-eyes-lady-grey .dust-mote,
.scn-king-eyes-lady-grey .dust-mote-2 {
  position: absolute; width: 4px; height: 4px;
  background: rgba(255,248,224,0.7);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-king-eyes-lady-grey .dust-mote {
  top: 30%; left: 40%;
  animation: kes-dust 20s linear infinite;
}
.scn-king-eyes-lady-grey .dust-mote-2 {
  top: 50%; left: 60%;
  animation: kes-dust 25s linear infinite reverse;
  animation-delay: -5s;
}
@keyframes kes-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes kes-window { 0% { filter: blur(2px) brightness(1); } 50% { filter: blur(1px) brightness(1.1); } 100% { filter: blur(3px) brightness(0.95); } }
@keyframes kes-throne { 0%,100% { transform: translateY(0) rotate(-0.5deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } }
@keyframes kes-king { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes kes-lady { 0% { transform: translateY(0) rotate(-3deg); } 33% { transform: translateY(-2px) rotate(2deg); } 66% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes kes-curtain { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes kes-dust { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.7; } 50% { transform: translateY(-40px) translateX(20px) scale(1.3); opacity: 0.3; } 100% { transform: translateY(-80px) translateX(40px) scale(0.8); opacity: 0.5; } }

/* Scene: king-proposes */
.scn-king-proposes {
  background: linear-gradient(180deg, #f0e0c0 0%, #e0c8a0 40%, #c8b080 100%), radial-gradient(ellipse at 30% 40%, #fff0d0 0%, transparent 70%);
}
.scn-king-proposes .wall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #b89870 0%, #c8a880 50%, #b89870 100%);
  border-bottom: 3px solid #a08060;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.1);
  animation: kp-wall 15s ease-in-out infinite alternate;
}
.scn-king-proposes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-top: 2px solid #c0a070;
}
.scn-king-proposes .fireplace {
  position: absolute; bottom: 15%; left: 10%; width: 100px; height: 130px;
  background: linear-gradient(180deg, #8b6040 0%, #604020 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: inset 0 0 20px rgba(255,180,60,0.2);
  animation: kp-fire 4s ease-in-out infinite;
}
.scn-king-proposes .king-fig {
  position: absolute; bottom: 14%; left: 20%; width: 45px; height: 110px;
  background: linear-gradient(180deg, #5a3e1a 0%, #3a2a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kp-king 3s ease-in-out infinite;
}
.scn-king-proposes .child-fig {
  position: absolute; bottom: 14%; left: 50%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #f0d0b0 0%, #d0b090 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kp-child 6s ease-in-out infinite;
}
.scn-king-proposes .crown {
  position: absolute; bottom: 88%; left: 22%; width: 30px; height: 15px;
  background: linear-gradient(180deg, #ffd700 0%, #b8860b 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  box-shadow: 0 0 10px 3px rgba(255,215,0,0.5);
  animation: kp-crown 2s ease-in-out infinite alternate;
}
.scn-king-proposes .candle {
  position: absolute; bottom: 18%; left: 60%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #fff0c0 0%, #f0d0a0 50%, #c0a080 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 12px 6px rgba(255,200,100,0.4);
  animation: kp-candle 3s ease-in-out infinite alternate;
}
.scn-king-proposes .tapestry {
  position: absolute; top: 5%; right: 5%; width: 80px; height: 180px;
  background: linear-gradient(180deg, #a05030 0%, #703820 50%, #502010 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: kp-tapestry 20s ease-in-out infinite;
}
@keyframes kp-wall { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.92; } }
@keyframes kp-fire { 0%,100% { transform: scaleY(1) scaleX(1); } 25% { transform: scaleY(1.02) scaleX(0.98); } 75% { transform: scaleY(0.98) scaleX(1.02); } }
@keyframes kp-king { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(2px) rotate(3deg); } 60% { transform: translateX(1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes kp-child { 0% { transform: translateY(0) rotate(4deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes kp-crown { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(1px); } }
@keyframes kp-candle { 0% { filter: blur(1px) brightness(1); } 50% { filter: blur(0px) brightness(1.2); } 100% { filter: blur(2px) brightness(0.9); } }
@keyframes kp-tapestry { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } }

/* Scene: bargain-struck */
.scn-bargain-struck {
  background: linear-gradient(180deg, #f8ecd0 0%, #e8dcc0 30%, #d8ccb0 100%), radial-gradient(ellipse at 50% 50%, #fff8e8 0%, transparent 60%);
}
.scn-bargain-struck .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #b8a088 0%, #c8b098 50%, #b8a088 100%);
  border-bottom: 3px solid #a09078;
  box-shadow: inset 0 15px 35px rgba(0,0,0,0.08);
  animation: bs-wall 18s ease-in-out infinite alternate;
}
.scn-bargain-struck .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a09078 0%, #908068 100%);
  border-top: 2px solid #b0a088;
}
.scn-bargain-struck .table {
  position: absolute; bottom: 18%; left: 25%; width: 200px; height: 40px;
  background: linear-gradient(180deg, #8b6914 0%, #6d4c0b 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: bs-table 15s ease-in-out infinite;
}
.scn-bargain-struck .scroll {
  position: absolute; bottom: 30%; left: 30%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #f5e6c0 0%, #e0d0b0 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  transform-origin: left center;
  animation: bs-scroll 6s ease-in-out infinite alternate;
}
.scn-bargain-struck .hand-left {
  position: absolute; bottom: 24%; left: 28%; width: 25px; height: 35px;
  background: linear-gradient(180deg, #f0d0b0 0%, #d0b090 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bs-hand-left 8s ease-in-out infinite;
}
.scn-bargain-struck .hand-right {
  position: absolute; bottom: 24%; left: 48%; width: 25px; height: 35px;
  background: linear-gradient(180deg, #f0d0b0 0%, #d0b090 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bs-hand-right 8s ease-in-out infinite alternate;
}
.scn-bargain-struck .quill {
  position: absolute; bottom: 30%; left: 42%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #fff 0%, #ddd 100%);
  border-radius: 10% 10% 80% 80%;
  transform-origin: bottom center;
  box-shadow: 0 0 4px 1px rgba(0,0,0,0.1);
  animation: bs-quill 4s ease-in-out infinite;
}
.scn-bargain-struck .inkwell {
  position: absolute; bottom: 22%; left: 55%; width: 20px; height: 18px;
  background: radial-gradient(circle, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-bargain-struck .coin {
  position: absolute; bottom: 22%; left: 60%; width: 16px; height: 16px;
  background: radial-gradient(circle at 40% 30%, #ffd700 0%, #b8860b 80%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(255,215,0,0.4);
  animation: bs-coin 3s ease-in-out infinite;
}
@keyframes bs-wall { 0% { opacity: 0.92; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes bs-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes bs-scroll { 0% { transform: rotateX(0deg) scaleX(1); } 50% { transform: rotateX(5deg) scaleX(1.03); } 100% { transform: rotateX(-3deg) scaleX(0.98); } }
@keyframes bs-hand-left { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(3px) rotate(10deg); } 66% { transform: translateX(1px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bs-hand-right { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(-12deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bs-quill { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes bs-coin { 0%,100% { transform: rotateY(0deg) translateY(0); } 50% { transform: rotateY(180deg) translateY(-3px); } }

/* Scene: agreement-made */
.scn-agreement-made {
  background: linear-gradient(180deg, #fef6e8 0%, #f0e4ca 30%, #e0d0b0 100%), radial-gradient(ellipse at 50% 40%, #fffbe8 0%, transparent 70%);
}
.scn-agreement-made .wall-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #c8b8a0 0%, #d8c8b0 50%, #c8b8a0 100%);
  border-bottom: 3px solid #b0a088;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.05);
  animation: am-wall 20s ease-in-out infinite alternate;
}
.scn-agreement-made .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #b0a088 0%, #908070 100%);
  border-top: 2px solid #c0b098;
}
.scn-agreement-made .arch {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 60%;
  background: radial-gradient(ellipse 140% 80% at 50% 100%, transparent 20%, #c8b8a0 21%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  filter: blur(2px);
  animation: am-arch 25s ease-in-out infinite;
}
.scn-agreement-made .joined-hands {
  position: absolute; bottom: 20%; left: 35%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #f0d0b0 0%, #d0b090 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(200,160,120,0.3);
  transform-origin: bottom center;
  animation: am-hands 4s ease-in-out infinite alternate;
}
.scn-agreement-made .ring {
  position: absolute; bottom: 28%; left: 45%; width: 12px; height: 8px;
  background: radial-gradient(circle at 50% 50%, #ffd700 0%, #b8860b 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,215,0,0.5);
  animation: am-ring 2s ease-in-out infinite alternate;
}
.scn-agreement-made .cloth {
  position: absolute; bottom: 18%; left: 30%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  opacity: 0.8;
  animation: am-cloth 10s ease-in-out infinite;
}
.scn-agreement-made .heart {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 18px;
  background: radial-gradient(circle at 50% 30%, #b87878 0%, #702243 100%);
  clip-path: path('M10,1 C5,1 1,5 1,9 C1,14 10,19 10,19 C10,19 19,14 19,9 C19,5 15,1 10,1z');
  transform-origin: center;
  animation: am-heart 3s ease-in-out infinite;
}
.scn-agreement-made .sparkle-1,
.scn-agreement-made .sparkle-2 {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, #fff 0%, #ffd700 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-agreement-made .sparkle-1 {
  top: 30%; left: 25%;
  animation: am-sparkle 5s ease-in-out infinite;
}
.scn-agreement-made .sparkle-2 {
  top: 40%; left: 60%;
  animation: am-sparkle 7s ease-in-out infinite reverse;
  animation-delay: -2s;
}
@keyframes am-wall { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.92; } }
@keyframes am-arch { 0%,100% { filter: blur(2px) brightness(1); } 50% { filter: blur(1px) brightness(1.05); } }
@keyframes am-hands { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes am-ring { 0% { transform: scale(1) rotateY(0deg); box-shadow: 0 0 8px 2px rgba(255,215,0,0.5); } 50% { transform: scale(1.1) rotateY(180deg); box-shadow: 0 0 16px 6px rgba(255,215,0,0.8); } 100% { transform: scale(0.95) rotateY(360deg); box-shadow: 0 0 10px 3px rgba(255,215,0,0.6); } }
@keyframes am-cloth { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(-2deg); } }
@keyframes am-heart { 0%,100% { transform: scale(1) translateY(0); } 50% { transform: scale(1.1) translateY(-3px); } }
@keyframes am-sparkle { 0% { transform: translate(0,0) scale(1); opacity: 0.9; } 50% { transform: translate(-10px, -15px) scale(1.5); opacity: 0.3; } 100% { transform: translate(10px, -30px) scale(0.8); opacity: 0.6; } }

/* Scene: york-vows-revenge (yrv) */
.scn-york-vows-revenge {
  background: linear-gradient(180deg, #4a4e5a 0%, #2f3240 60%, #1a1c24 100%),
              radial-gradient(ellipse at 50% 0%, #6a6e7a 0%, transparent 70%);
}
.scn-york-vows-revenge .overcast-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #5a5e6a 0%, transparent 100%);
  animation: yrv-sky 15s ease-in-out infinite alternate;
}
.scn-york-vows-revenge .hills-back {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2f3a2f 0%, #1a221a 100%);
  border-radius: 70% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: yrv-hills 18s ease-in-out infinite alternate;
}
.scn-york-vows-revenge .hills-front {
  position: absolute; bottom: 18%; left: -5%; right: -5%; height: 20%;
  background: linear-gradient(180deg, #3a453a 0%, #202820 100%);
  border-radius: 40% 60% 0 0; box-shadow: inset 0 4px 15px rgba(0,0,0,0.5);
  animation: yrv-hills 22s ease-in-out infinite alternate-reverse;
}
.scn-york-vows-revenge .figure {
  position: absolute; bottom: 10%; left: 48%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: yrv-figure 5s ease-in-out infinite;
}
.scn-york-vows-revenge .axe-handle {
  position: absolute; bottom: 24%; left: 48%; width: 4px; height: 28px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 2px; transform-origin: bottom center; transform: rotate(-20deg);
  animation: yrv-axe 4s ease-in-out infinite;
}
.scn-york-vows-revenge .axe-head {
  position: absolute; bottom: 40%; left: 46%; width: 14px; height: 8px;
  background: radial-gradient(ellipse at 30% 50%, #5a5a6a 0%, #2a2a3a 100%);
  border-radius: 0 40% 40% 0; transform: rotate(-20deg);
  animation: yrv-axe 4s ease-in-out infinite;
}
.scn-york-vows-revenge .cloud-a {
  position: absolute; top: 12%; left: 10%; width: 70px; height: 16px;
  background: rgba(100,104,115,0.4); border-radius: 50%; filter: blur(5px);
  animation: yrv-drift-a 40s linear infinite;
}
.scn-york-vows-revenge .cloud-b {
  position: absolute; top: 20%; right: 15%; width: 50px; height: 12px;
  background: rgba(100,104,115,0.3); border-radius: 50%; filter: blur(4px);
  animation: yrv-drift-b 55s linear infinite reverse;
}
@keyframes yrv-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes yrv-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes yrv-figure { 0% { transform: translateX(-2px) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(3deg) } 75% { transform: translateX(-3px) rotate(0) } 100% { transform: translateX(2px) rotate(-2deg) } }
@keyframes yrv-axe { 0% { transform: rotate(-25deg) translateY(0) } 25% { transform: rotate(-5deg) translateY(-2px) } 50% { transform: rotate(15deg) translateY(0) } 75% { transform: rotate(5deg) translateY(-1px) } 100% { transform: rotate(-25deg) translateY(0) } }
@keyframes yrv-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(130vw) } }
@keyframes yrv-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-140vw) } }

/* Scene: edward-rejects-henry (erh) */
.scn-edward-rejects-henry {
  background: linear-gradient(180deg, #3f4350 0%, #2a2e3a 60%, #1e212a 100%),
              radial-gradient(ellipse at 50% 100%, #4a4e5a 0%, transparent 60%);
}
.scn-edward-rejects-henry .sky-erh {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a4e5a 0%, transparent 100%);
  animation: erh-sky 12s ease-in-out infinite alternate;
}
.scn-edward-rejects-henry .ground-erh {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a3020 0%, #11140c 100%);
  border-radius: 20% 30% 0 0; box-shadow: inset 0 10px 25px rgba(0,0,0,0.5);
  animation: erh-ground 20s ease-in-out infinite alternate;
}
.scn-edward-rejects-henry .figure-edward {
  position: absolute; bottom: 12%; left: 55%; width: 26px; height: 70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: erh-edward 4s ease-in-out infinite;
}
.scn-edward-rejects-henry .figure-henry {
  position: absolute; bottom: 12%; left: 40%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 40% 40% 50% / 60% 40% 40% 60%;
  transform-origin: bottom center;
  animation: erh-henry 5s ease-in-out infinite;
}
.scn-edward-rejects-henry .banner-erh {
  position: absolute; bottom: 40%; left: 65%; width: 10px; height: 50px;
  background: #2a2020; transform-origin: bottom center;
  border-radius: 2px; animation: erh-banner 6s ease-in-out infinite;
}
.scn-edward-rejects-henry .cloud-c {
  position: absolute; top: 15%; left: 5%; width: 65px; height: 14px;
  background: rgba(110,115,130,0.35); border-radius: 50%; filter: blur(5px);
  animation: erh-drift-c 35s linear infinite;
}
.scn-edward-rejects-henry .cloud-d {
  position: absolute; top: 22%; right: 8%; width: 45px; height: 10px;
  background: rgba(110,115,130,0.25); border-radius: 50%; filter: blur(4px);
  animation: erh-drift-d 50s linear infinite reverse;
}
@keyframes erh-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.5 } }
@keyframes erh-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes erh-edward { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(-1px) rotate(-2deg) } 75% { transform: translateX(-3px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes erh-henry { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(-3px) rotate(-1deg) } 66% { transform: translateX(1px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes erh-banner { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(10deg) } }
@keyframes erh-drift-c { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes erh-drift-d { 0% { transform: translateX(0) } 100% { transform: translateX(-130vw) } }

/* Scene: battle-field-warwick (bfw) */
.scn-battle-field-warwick {
  background: linear-gradient(180deg, #3a3e48 0%, #22262e 60%, #12151a 100%),
              radial-gradient(ellipse at 50% 30%, #4a4e58 0%, transparent 60%);
}
.scn-battle-field-warwick .sky-bfw {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a3e48 0%, transparent 100%);
  animation: bfw-sky 14s ease-in-out infinite alternate;
}
.scn-battle-field-warwick .ground-bfw {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1e2518 0%, #0a0e08 100%);
  border-radius: 30% 10% 0 0; box-shadow: inset 0 8px 30px rgba(0,0,0,0.6);
  animation: bfw-ground 25s ease-in-out infinite alternate;
}
.scn-battle-field-warwick .figure-warwick {
  position: absolute; bottom: 12%; left: 50%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 60% 60% 30% 30% / 30% 30% 20% 20%;
  transform: translateX(-50%) rotate(5deg);
  transform-origin: center bottom;
  animation: bfw-warwick 8s ease-in-out infinite;
}
.scn-battle-field-warwick .sword-bfw {
  position: absolute; bottom: 8%; left: 44%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 3px 3px 0 0; transform: rotate(-30deg);
  animation: bfw-sword 12s ease-in-out infinite;
}
.scn-battle-field-warwick .shield-bfw {
  position: absolute; bottom: 10%; left: 48%; width: 18px; height: 22px;
  background: radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 30% 30% 20% 20%; transform: rotate(15deg);
  animation: bfw-shield 7s ease-in-out infinite;
}
.scn-battle-field-warwick .banner-torn {
  position: absolute; bottom: 35%; left: 55%; width: 8px; height: 60px;
  background: #1a1212; transform-origin: bottom; border-radius: 2px;
  animation: bfw-banner 10s ease-in-out infinite;
}
.scn-battle-field-warwick .debris {
  position: absolute; bottom: 5%; left: 30%; width: 20px; height: 8px;
  background: #1a1a22; border-radius: 20% 40% 10% 20%; transform: rotate(-10deg);
  animation: bfw-debris 15s ease-in-out infinite;
}
@keyframes bfw-sky { 0% { opacity:0.5 } 50% { opacity:0.9 } 100% { opacity:0.4 } }
@keyframes bfw-ground { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.01) } 100% { transform: scaleX(1) } }
@keyframes bfw-warwick { 0%,100% { transform: translateX(-50%) rotate(5deg) } 25% { transform: translateX(-50%) rotate(7deg) translateY(-2px) } 50% { transform: translateX(-50%) rotate(3deg) translateY(-4px) } 75% { transform: translateX(-50%) rotate(6deg) translateY(-1px) } }
@keyframes bfw-sword { 0%,100% { transform: rotate(-30deg) } 50% { transform: rotate(-20deg) translateY(3px) } }
@keyframes bfw-shield { 0%,100% { transform: rotate(15deg) } 50% { transform: rotate(10deg) translateY(-2px) } }
@keyframes bfw-banner { 0%,100% { transform: rotate(2deg) } 50% { transform: rotate(-8deg) } }
@keyframes bfw-debris { 0%,100% { transform: translateX(0) rotate(-10deg) } 50% { transform: translateX(3px) rotate(-15deg) } }

/* Scene: richard-news-of-william (rnw) */
.scn-richard-news-of-william {
  background: linear-gradient(180deg, #2e323e 0%, #1a1c26 60%, #0e1016 100%),
              radial-gradient(ellipse at 50% 80%, #3a3e4a 0%, transparent 70%);
}
.scn-richard-news-of-william .sky-rnw {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3a3e4a 0%, transparent 100%);
  animation: rnw-sky 16s ease-in-out infinite alternate;
}
.scn-richard-news-of-william .earth-rnw {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1e14 0%, #080c06 100%);
  border-radius: 10% 40% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,0.7);
  animation: rnw-earth 24s ease-in-out infinite alternate;
}
.scn-richard-news-of-william .figure-richard {
  position: absolute; bottom: 12%; left: 50%; width: 22px; height: 65px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; transform: translateX(-50%);
  animation: rnw-richard 6s ease-in-out infinite;
}
.scn-richard-news-of-william .brother-body {
  position: absolute; bottom: 5%; left: 40%; width: 50px; height: 18px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  transform: rotate(-5deg);
  animation: rnw-body 20s ease-in-out infinite;
}
.scn-richard-news-of-william .blood-pool {
  position: absolute; bottom: 2%; left: 38%; width: 30px; height: 6px;
  background: radial-gradient(ellipse, #5a2a1a 0%, #2a0e08 80%, transparent 100%);
  border-radius: 50%;
  animation: rnw-blood 30s ease-in-out infinite;
}
.scn-richard-news-of-william .raven {
  position: absolute; bottom: 25%; left: 30%; width: 14px; height: 10px;
  background: #1a1a22; border-radius: 50% 50% 10% 10%;
  animation: rnw-raven 8s ease-in-out infinite;
}
@keyframes rnw-sky { 0% { opacity:0.4 } 50% { opacity:0.8 } 100% { opacity:0.3 } }
@keyframes rnw-earth { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rnw-richard { 0%,100% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-50%) rotate(-3deg) translateY(-1px) } 50% { transform: translateX(-50%) rotate(2deg) translateY(-3px) } 75% { transform: translateX(-50%) rotate(-1deg) translateY(0) } }
@keyframes rnw-body { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(0deg) } }
@keyframes rnw-blood { 0%,100% { opacity:0.5 } 50% { opacity:0.8 } }
@keyframes rnw-raven { 0%,100% { transform: translate(0,0) } 50% { transform: translate(5px,-3px) } }

.scn-warwick-vows-revenge {
  background: linear-gradient(180deg, #1f222a 0%, #2b2e3b 50%, #12141a 100%), linear-gradient(0deg, rgba(20,30,40,0.5) 0%, transparent 60%);
}
.scn-warwick-vows-revenge .sky {
  position: absolute;
  inset: 0 0 60% 0;
  background: linear-gradient(180deg, #1a1d24 0%, #2c303b 100%);
  animation: wvr-sky 15s ease-in-out infinite alternate;
}
.scn-warwick-vows-revenge .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a231d 0%, #1a1510 100%);
  animation: wvr-ground 8s ease-in-out infinite;
}
.scn-warwick-vows-revenge .figure-body {
  position: absolute;
  bottom: 15%; left: 50%;
  width: 40px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2d2a2a 0%, #1b1818 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: wvr-figure 2s ease-in-out infinite;
}
.scn-warwick-vows-revenge .figure-head {
  position: absolute;
  bottom: 45%; left: 50%;
  width: 20px; height: 20px;
  transform: translateX(-50%);
  background: #1a1a1a;
  border-radius: 50%;
  animation: wvr-head 2s ease-in-out infinite;
}
.scn-warwick-vows-revenge .sword {
  position: absolute;
  bottom: 35%; left: 55%;
  width: 6px; height: 50px;
  background: linear-gradient(180deg, #b0b0b0 0%, #707070 100%);
  border-radius: 3px;
  transform-origin: bottom center;
  animation: wvr-sword 1s ease-in-out infinite;
}
.scn-warwick-vows-revenge .cloak {
  position: absolute;
  bottom: 20%; left: 40%;
  width: 60px; height: 40px;
  background: linear-gradient(135deg, #3a2a2a 0%, #1f1515 100%);
  border-radius: 50% 0 50% 0;
  transform-origin: top left;
  animation: wvr-cloak 4s ease-in-out infinite alternate;
}
.scn-warwick-vows-revenge .lightning {
  position: absolute;
  top: 20%; left: 30%;
  width: 20px; height: 80px;
  background: radial-gradient(ellipse, #e0e0e080 0%, transparent 80%);
  filter: blur(3px);
  animation: wvr-lightning 3s ease-in-out infinite;
}
@keyframes wvr-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes wvr-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes wvr-figure { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes wvr-head { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px) rotate(5deg); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes wvr-sword { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes wvr-cloak { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.1) rotate(5deg); } 100% { transform: scaleX(1) rotate(0deg); } }
@keyframes wvr-lightning { 0% { opacity: 0; } 10% { opacity: 1; } 20% { opacity: 0.3; } 50% { opacity: 0; } 100% { opacity: 0; } }

.scn-edward-vows-with-warwick {
  background: linear-gradient(180deg, #1e2229 0%, #2a2e38 50%, #13161c 100%), radial-gradient(ellipse at 50% 100%, #2a2e38 0%, transparent 70%);
}
.scn-edward-vows-with-warwick .sky {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #1b1e24 0%, #2c303a 100%);
  animation: evw-sky 20s ease-in-out infinite alternate;
}
.scn-edward-vows-with-warwick .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(135deg, #2a241e 0%, #1c1713 100%);
  animation: evw-ground 10s ease-in-out infinite;
}
.scn-edward-vows-with-warwick .figure-edward {
  position: absolute;
  bottom: 25%; left: 35%;
  width: 40px; height: 55px;
  background: linear-gradient(180deg, #2b2725 0%, #1a1614 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: evw-figure-left 3s ease-in-out infinite;
}
.scn-edward-vows-with-warwick .figure-warwick {
  position: absolute;
  bottom: 25%; left: 55%;
  width: 40px; height: 55px;
  background: linear-gradient(180deg, #2b2725 0%, #1a1614 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: evw-figure-right 3s ease-in-out infinite 1.5s;
}
.scn-edward-vows-with-warwick .hands {
  position: absolute;
  bottom: 35%; left: 50%;
  width: 30px; height: 20px;
  transform: translateX(-50%);
  background: #2d2826;
  border-radius: 50% 20% 50% 20% / 60% 40% 60% 40%;
  animation: evw-hands 4s ease-in-out infinite;
}
.scn-edward-vows-with-warwick .crown {
  position: absolute;
  bottom: 10%; left: 45%;
  width: 40px; height: 15px;
  background: linear-gradient(90deg, #5a4a35 0%, #7a6a55 50%, #5a4a35 100%);
  border-radius: 5px 5px 0 0;
  clip-path: polygon(0% 0%, 20% 100%, 40% 0%, 60% 100%, 80% 0%, 100% 100%);
  animation: evw-crown 6s ease-in-out infinite alternate;
}
.scn-edward-vows-with-warwick .clouds {
  position: absolute;
  top: 10%; left: 0; right: 0;
  height: 20%;
  background: linear-gradient(90deg, rgba(180,180,200,0.1) 0%, rgba(180,180,200,0.3) 50%, rgba(180,180,200,0.1) 100%);
  filter: blur(10px);
  animation: evw-clouds 40s linear infinite;
}
@keyframes evw-sky { 0% { opacity: 0.5; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes evw-ground { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes evw-figure-left { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes evw-figure-right { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes evw-hands { 0% { transform: translateX(-50%) scaleX(1) rotate(0deg); } 50% { transform: translateX(-50%) scaleX(1.2) rotate(5deg); } 100% { transform: translateX(-50%) scaleX(1) rotate(0deg); } }
@keyframes evw-crown { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes evw-clouds { 0% { transform: translateX(0); } 100% { transform: translateX(100vw); } }

.scn-brothers-embrace {
  background: linear-gradient(180deg, #222529 0%, #30333a 50%, #1a1d22 100%), linear-gradient(135deg, rgba(50,50,70,0.2) 0%, transparent 50%);
}
.scn-brothers-embrace .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1c1f23 0%, #2e3138 100%);
  animation: be-sky 18s ease-in-out infinite alternate;
}
.scn-brothers-embrace .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(135deg, #2a251f 0%, #1d1915 100%);
  animation: be-ground 12s ease-in-out infinite;
}
.scn-brothers-embrace .figure-left {
  position: absolute;
  bottom: 20%; left: 38%;
  width: 45px; height: 60px;
  background: linear-gradient(180deg, #24201e 0%, #141110 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: be-figure-left 4s ease-in-out infinite;
}
.scn-brothers-embrace .figure-right {
  position: absolute;
  bottom: 20%; left: 55%;
  width: 45px; height: 60px;
  background: linear-gradient(180deg, #24201e 0%, #141110 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: be-figure-right 4s ease-in-out infinite 2s;
}
.scn-brothers-embrace .embrace-arms {
  position: absolute;
  bottom: 35%; left: 40%;
  width: 70px; height: 30px;
  background: #2a2522;
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: center;
  animation: be-arms 5s ease-in-out infinite;
}
.scn-brothers-embrace .mist {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(100,110,130,0.2) 0%, transparent 70%);
  filter: blur(15px);
  animation: be-mist 20s ease-in-out infinite alternate;
}
.scn-brothers-embrace .tear {
  position: absolute;
  bottom: 30%; left: 48%;
  width: 8px; height: 12px;
  background: radial-gradient(ellipse, rgba(180,200,220,0.6) 0%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: be-tear 3s ease-in-out infinite;
}
@keyframes be-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes be-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes be-figure-left { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes be-figure-right { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes be-arms { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.1) rotate(3deg); } 100% { transform: scaleX(1) rotate(0deg); } }
@keyframes be-mist { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes be-tear { 0% { transform: translateY(0) scale(1); opacity: 0; } 30% { opacity: 1; } 70% { transform: translateY(15px) scale(0.5); opacity: 0.8; } 100% { transform: translateY(20px) scale(0); opacity: 0; } }

.scn-richard-clifford-duel {
  background: linear-gradient(180deg, #2b2f38 0%, #1e2229 50%, #12151c 100%), radial-gradient(ellipse at 50% 100%, #1e2229 0%, transparent 70%);
}
.scn-richard-clifford-duel .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1c1f24 0%, #2a2e35 100%);
  animation: rcd-sky 14s ease-in-out infinite alternate;
}
.scn-richard-clifford-duel .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1f1b17 0%, #13100d 100%);
  animation: rcd-ground 6s ease-in-out infinite;
}
.scn-richard-clifford-duel .figure-richard {
  position: absolute;
  bottom: 25%; left: 25%;
  width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a2522 0%, #1a1613 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: rcd-figure-left 1.5s ease-in-out infinite;
}
.scn-richard-clifford-duel .figure-clifford {
  position: absolute;
  bottom: 25%; left: 60%;
  width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a2522 0%, #1a1613 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: rcd-figure-right 1.5s ease-in-out infinite 0.75s;
}
.scn-richard-clifford-duel .sword-richard {
  position: absolute;
  bottom: 35%; left: 30%;
  width: 5px; height: 50px;
  background: linear-gradient(180deg, #a0a0a0 0%, #606060 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: rcd-sword-left 1s ease-in-out infinite;
}
.scn-richard-clifford-duel .sword-clifford {
  position: absolute;
  bottom: 35%; left: 65%;
  width: 5px; height: 50px;
  background: linear-gradient(180deg, #a0a0a0 0%, #606060 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: rcd-sword-right 1s ease-in-out infinite 0.5s;
}
.scn-richard-clifford-duel .clash {
  position: absolute;
  bottom: 40%; left: 47%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,220,180,0.8) 0%, rgba(255,200,150,0.3) 50%, transparent 80%);
  border-radius: 50%;
  filter: blur(4px);
  animation: rcd-clash 0.5s ease-in-out infinite;
}
.scn-richard-clifford-duel .dust {
  position: absolute;
  bottom: 10%; left: 30%;
  width: 100px; height: 20px;
  background: radial-gradient(ellipse, rgba(180,170,160,0.2) 0%, transparent 70%);
  filter: blur(8px);
  animation: rcd-dust 3s ease-in-out infinite alternate;
}
@keyframes rcd-sky { 0% { opacity: 0.5; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes rcd-ground { 0% { transform: translateY(0); } 25% { transform: translateY(-1px); } 50% { transform: translateY(1px); } 75% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes rcd-figure-left { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(3deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes rcd-figure-right { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(-2px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes rcd-sword-left { 0% { transform: rotate(-20deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-20deg); } }
@keyframes rcd-sword-right { 0% { transform: rotate(20deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(20deg); } }
@keyframes rcd-clash { 0% { opacity: 0; transform: scale(0.5); } 30% { opacity: 1; transform: scale(1.5); } 60% { opacity: 0.5; transform: scale(1); } 100% { opacity: 0; transform: scale(0.5); } }
@keyframes rcd-dust { 0% { transform: translateX(-10px) scaleY(1); } 50% { transform: translateX(10px) scaleY(1.5); } 100% { transform: translateX(-10px) scaleY(1); } }
/* end per-scene blocks */

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-item-paper-crown { background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 80%, #4a4a5a 0%, transparent 80%); }
.scn-item-paper-crown .bg { position:absolute; inset:0; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); }
.scn-item-paper-crown .molehill { position:absolute; bottom:25%; left:40%; width:120px; height:50px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 30% 30% / 100% 100% 30% 30%; transform: perspective(200px) rotateX(10deg); animation: pc-molehill 8s ease-in-out infinite alternate; }
.scn-item-paper-crown .figure-york { position:absolute; bottom:38%; left:45%; width:22px; height:45px; background: linear-gradient(180deg, #4a4a5a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: pc-york 4s ease-in-out infinite; }
.scn-item-paper-crown .crown-paper { position:absolute; bottom:52%; left:46%; width:18px; height:8px; background: linear-gradient(90deg, #b0a080 0%, #d0c0a0 50%, #b0a080 100%); border-radius: 30% 30% 0 0; clip-path: polygon(0 100%, 20% 0, 40% 100%, 60% 0, 80% 100%, 100% 0, 100% 100%); animation: pc-crown 2s ease-in-out infinite alternate; }
.scn-item-paper-crown .napkin { position:absolute; bottom:30%; left:55%; width:30px; height:20px; background: linear-gradient(135deg, #8a7a7a 0%, #6a5a5a 100%); border-radius: 10%; transform: rotate(15deg); animation: pc-napkin 5s ease-in-out infinite; }
.scn-item-paper-crown .figure-margaret { position:absolute; bottom:28%; left:60%; width:25px; height:50px; background: linear-gradient(180deg, #5a4a4a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: pc-margaret 6s ease-in-out infinite; }
.scn-item-paper-crown .stain { position:absolute; bottom:37%; left:58%; width:12px; height:8px; background: radial-gradient(circle, #8a3a3a 0%, #5a1a1a 70%, transparent 100%); border-radius: 50%; animation: pc-stain 4s ease-in-out infinite alternate; }
@keyframes pc-molehill { 0% { transform: perspective(200px) rotateX(10deg) scaleY(1) } 100% { transform: perspective(200px) rotateX(6deg) scaleY(0.95) } }
@keyframes pc-york { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pc-crown { 0% { transform: translateY(0) rotate(-5deg) } 100% { transform: translateY(-3px) rotate(5deg) } }
@keyframes pc-napkin { 0% { transform: rotate(15deg) translate(0,0) } 50% { transform: rotate(20deg) translate(2px,-1px) } 100% { transform: rotate(15deg) translate(0,0) } }
@keyframes pc-margaret { 0% { transform: translate(0,0) rotate(-2deg) } 25% { transform: translate(3px,-1px) rotate(1deg) } 50% { transform: translate(0,0) rotate(2deg) } 75% { transform: translate(-2px,-1px) rotate(-1deg) } 100% { transform: translate(0,0) rotate(-2deg) } }
@keyframes pc-stain { 0% { opacity:0.6; transform: scale(1) } 100% { opacity:1; transform: scale(1.2) } }

/* scene field-wakefield-york-invective */
.scn-field-wakefield-york-invective {
  background: 
    linear-gradient(180deg, #4a4f5a 0%, #2f333c 50%, #1a1c22 100%),
    radial-gradient(ellipse at 50% 100%, #3a3e4a 0%, transparent 70%);
}
.scn-field-wakefield-york-invective .sky-overcast {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #606570 0%, #3b3f48 100%);
  animation: fy-sky 14s ease-in-out infinite alternate;
}
.scn-field-wakefield-york-invective .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2b2e34 0%, #141518 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
}
.scn-field-wakefield-york-invective .figure-york {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1c22 0%, #0c0e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: fy-figure 4s ease-in-out infinite;
}
.scn-field-wakefield-york-invective .arm-york {
  position: absolute; bottom: 45%; left: 28%; width: 40px; height: 8px;
  background: #1a1c22;
  border-radius: 4px;
  transform-origin: 0% 50%;
  transform: rotate(-30deg);
  animation: fy-arm 3s ease-in-out infinite alternate;
}
.scn-field-wakefield-york-invective .horse-silhouette {
  position: absolute; bottom: 30%; right: 20%; width: 80px; height: 60px;
  background: #101216;
  border-radius: 60% 40% 30% 70% / 40% 50% 50% 60%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8);
  animation: fy-horse 6s ease-in-out infinite;
}
.scn-field-wakefield-york-invective .dust {
  position: absolute; bottom: 28%; left: 25%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, rgba(120,100,80,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: fy-dust 5s linear infinite;
}
@keyframes fy-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes fy-figure { 0%,100% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-3px) } }
@keyframes fy-arm { 0% { transform: rotate(-30deg) } 100% { transform: rotate(-45deg) } }
@keyframes fy-horse { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-4px) } }
@keyframes fy-dust { 0% { transform: translateX(0) scale(1); opacity:0.4 } 50% { transform: translateX(20px) scale(1.3); opacity:0.2 } 100% { transform: translateX(0) scale(1); opacity:0.4 } }

/* scene field-wakefield-york-tears */
.scn-field-wakefield-york-tears {
  background: 
    linear-gradient(180deg, #3a404d 0%, #252a33 50%, #13161c 100%),
    radial-gradient(ellipse at 50% 0%, #4a5160 0%, transparent 60%);
}
.scn-field-wakefield-york-tears .sky-overcast {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #505769 0%, #2c313e 100%);
  animation: ft-sky 18s ease-in-out infinite alternate;
}
.scn-field-wakefield-york-tears .hill {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2f38 0%, #191c22 100%);
  border-radius: 50% 50% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,.5);
}
.scn-field-wakefield-york-tears .figure-kneeling {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #16191f 0%, #0a0c10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%) scale(0.9);
  animation: ft-kneel 5s ease-in-out infinite;
}
.scn-field-wakefield-york-tears .hands-cover {
  position: absolute; bottom: 38%; left: 50%; width: 16px; height: 18px;
  background: #0a0c10;
  border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%;
  transform: translateX(-50%);
  animation: ft-hands 3s ease-in-out infinite alternate;
}
.scn-field-wakefield-york-tears .tombstone {
  position: absolute; bottom: 30%; right: 20%; width: 30px; height: 40px;
  background: #2b2f36;
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  transform: rotate(-3deg);
  animation: ft-stone 8s ease-in-out infinite;
}
.scn-field-wakefield-york-tears .rain-mist {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 4px, rgba(100,110,130,0.1) 4px, rgba(100,110,130,0.1) 8px);
  animation: ft-rain 4s linear infinite;
}
@keyframes ft-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes ft-kneel { 0%,100% { transform: translateX(-50%) scale(0.9) translateY(0) } 50% { transform: translateX(-50%) scale(0.9) translateY(-2px) } }
@keyframes ft-hands { 0% { transform: translateX(-50%) scaleY(1) } 100% { transform: translateX(-50%) scaleY(1.2) } }
@keyframes ft-stone { 0% { transform: rotate(-3deg) } 50% { transform: rotate(-1deg) } 100% { transform: rotate(-3deg) } }
@keyframes ft-rain { 0% { background-position: 0 0 } 100% { background-position: 0 20px } }

/* scene field-wakefield-york-cleans-napkin */
.scn-field-wakefield-york-cleans-napkin {
  background: 
    linear-gradient(180deg, #434855 0%, #2c313c 50%, #181b22 100%),
    radial-gradient(ellipse at 50% 100%, #333845 0%, transparent 60%);
}
.scn-field-wakefield-york-cleans-napkin .sky-overcast {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #585d6c 0%, #363a46 100%);
  animation: fc-sky 16s ease-in-out infinite alternate;
}
.scn-field-wakefield-york-cleans-napkin .wall {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(90deg, #1f232a 0%, #2e323c 30%, #22262d 70%, #1b1f26 100%);
  border-radius: 0 0 5% 5%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
}
.scn-field-wakefield-york-cleans-napkin .figure-york {
  position: absolute; bottom: 30%; left: 35%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #15181e 0%, #090b0f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-2deg);
  animation: fc-figure 4s ease-in-out infinite;
}
.scn-field-wakefield-york-cleans-napkin .hand-cloth {
  position: absolute; bottom: 40%; left: 33%; width: 20px; height: 16px;
  background: #1f2229;
  border-radius: 30% 30% 20% 20%;
  transform: rotate(15deg);
  animation: fc-hand 2.5s ease-in-out infinite alternate;
}
.scn-field-wakefield-york-cleans-napkin .basin {
  position: absolute; bottom: 25%; left: 28%; width: 30px; height: 14px;
  background: #2a2e36;
  border-radius: 40% 40% 20% 20%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.5);
  transform: rotate(-5deg);
}
.scn-field-wakefield-york-cleans-napkin .tear-drops {
  position: absolute; bottom: 42%; left: 32%; width: 4px; height: 6px;
  background: rgba(180,190,200,0.3);
  border-radius: 50%;
  filter: blur(1px);
  animation: fc-tears 3s ease-out infinite;
}
.scn-field-wakefield-york-cleans-napkin .napkin-stain {
  position: absolute; bottom: 38%; left: 34%; width: 10px; height: 10px;
  background: radial-gradient(circle, #5e3322 0%, #3a1e12 70%);
  border-radius: 50%;
  opacity: 0.8;
  animation: fc-stain 5s ease-in-out infinite alternate;
}
@keyframes fc-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes fc-figure { 0%,100% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-2px) } }
@keyframes fc-hand { 0% { transform: rotate(15deg) translateX(0) } 100% { transform: rotate(20deg) translateX(3px) } }
@keyframes fc-tears { 0% { transform: translateY(0); opacity:0.6 } 100% { transform: translateY(20px); opacity:0 } }
@keyframes fc-stain { 0% { opacity:0.8; transform: scale(1) } 100% { opacity:0.5; transform: scale(1.2) } }

/* scene field-wakefield-northumberland-weeps */
.scn-field-wakefield-northumberland-weeps {
  background: 
    linear-gradient(180deg, #404652 0%, #282d37 50%, #15181f 100%),
    radial-gradient(ellipse at 50% 100%, #333845 0%, transparent 60%);
}
.scn-field-wakefield-northumberland-weeps .sky-overcast {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #585d6c 0%, #363a46 100%);
  animation: fn-sky 20s ease-in-out infinite alternate;
}
.scn-field-wakefield-northumberland-weeps .castle-wall {
  position: absolute; right: 0; bottom: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #2a2e38 0%, #1b1e26 100%);
  border-radius: 10% 0 0 10%;
  box-shadow: inset 0 6px 20px rgba(0,0,0,.6);
  transform: skewY(-2deg);
}
.scn-field-wakefield-northumberland-weeps .figure-north {
  position: absolute; bottom: 28%; left: 20%; width: 36px; height: 68px;
  background: linear-gradient(180deg, #14171d 0%, #0a0c10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(3deg);
  animation: fn-figure 4s ease-in-out infinite;
}
.scn-field-wakefield-northumberland-weeps .head-bent {
  position: absolute; bottom: 42%; left: 19%; width: 18px; height: 18px;
  background: #0a0c10;
  border-radius: 50%;
  transform: rotate(10deg);
  animation: fn-head 3s ease-in-out infinite alternate;
}
.scn-field-wakefield-northumberland-weeps .hand-weep {
  position: absolute; bottom: 35%; left: 22%; width: 12px; height: 14px;
  background: #0a0c10;
  border-radius: 40% 40% 30% 30%;
  transform: rotate(-20deg);
  animation: fn-hand 2.5s ease-in-out infinite alternate;
}
.scn-field-wakefield-northumberland-weeps .shadow-pool {
  position: absolute; bottom: 18%; left: 15%; width: 50px; height: 12px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 70%);
  filter: blur(4px);
  animation: fn-shadow 7s ease-in-out infinite;
}
@keyframes fn-sky { 0% { opacity:0.7 } 50% { opacity:0.95 } 100% { opacity:0.8 } }
@keyframes fn-figure { 0%,100% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } }
@keyframes fn-head { 0% { transform: rotate(10deg) } 100% { transform: rotate(15deg) } }
@keyframes fn-hand { 0% { transform: rotate(-20deg) translateY(0) } 100% { transform: rotate(-25deg) translateY(2px) } }
@keyframes fn-shadow { 0%,100% { opacity:0.6; transform: scaleX(1) } 50% { opacity:0.8; transform: scaleX(1.1) } }

.scn-france-warwick-arrives { background: linear-gradient(180deg, #c8b088 0%, #a08060 30%, #6a4a3a 70%, #3a2a1a 100%), radial-gradient(ellipse at 40% 20%, #ffd5a0 0%, transparent 50%); }
.scn-france-warwick-arrives .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); }
.scn-france-warwick-arrives .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); }
.scn-france-warwick-arrives .pillar { position:absolute; top:10%; bottom:30%; width:20px; background: linear-gradient(90deg, #7a5a3a 0%, #9a7a5a 50%, #7a5a3a 100%); border-radius:4px; box-shadow: 0 0 10px rgba(0,0,0,.3); }
.scn-france-warwick-arrives .pillar.left { left:20%; }
.scn-france-warwick-arrives .pillar.right { right:20%; }
.scn-france-warwick-arrives .throne { position:absolute; bottom:30%; right:15%; width:60px; height:80px; background: linear-gradient(180deg, #c89050 0%, #a07030 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-france-warwick-arrives .figure { position:absolute; bottom:30%; left:10%; width:28px; height:60px; background: linear-gradient(180deg, #6a3a2a 0%, #2a1a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fwa-walk 6s ease-in-out infinite; }
.scn-france-warwick-arrives .light-shaft { position:absolute; top:0; left:38%; width:24%; height:70%; background: linear-gradient(180deg, rgba(255,213,160,.4) 0%, transparent 100%); filter: blur(10px); animation: fwa-light 8s ease-in-out infinite alternate; }
.scn-france-warwick-arrives .shadow-bar { position:absolute; bottom:30%; left:0; right:0; height:8px; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.3) 20%, rgba(0,0,0,.5) 50%, rgba(0,0,0,.3) 80%, transparent 100%); }
@keyframes fwa-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(15px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(30px) translateY(0) rotate(-2deg); } 75% { transform: translateX(45px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(60px) translateY(0) rotate(0); } }
@keyframes fwa-light { 0% { opacity:.3; } 50% { opacity:.7; } 100% { opacity:.4; } }

.scn-france-warwick-proposes { background: linear-gradient(180deg, #d4bc9c 0%, #b4946c 40%, #7a5a3a 70%, #4a2a1a 100%), radial-gradient(ellipse at 50% 20%, #ffe0b0 0%, transparent 50%); }
.scn-france-warwick-proposes .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #9a7a5a 0%, #6a4a2a 100%); }
.scn-france-warwick-proposes .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); }
.scn-france-warwick-proposes .arch { position:absolute; top:5%; left:25%; right:25%; height:60%; background: linear-gradient(180deg, #b09070 0%, #8a6a4a 100%); border-radius:50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.3); }
.scn-france-warwick-proposes .table { position:absolute; bottom:30%; left:30%; right:30%; height:20px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-france-warwick-proposes .king { position:absolute; bottom:35%; right:20%; width:30px; height:60px; background: linear-gradient(180deg, #a07030 0%, #704020 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 10px rgba(0,0,0,.3); animation: fwp-king 6s ease-in-out infinite; }
.scn-france-warwick-proposes .envoy { position:absolute; bottom:30%; left:20%; width:24px; height:45px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fwp-kneel 4s ease-in-out infinite; }
.scn-france-warwick-proposes .scroll { position:absolute; bottom:33%; left:22%; width:20px; height:6px; background: linear-gradient(90deg, #d4b88a 0%, #f0e0c0 50%, #d4b88a 100%); border-radius:2px; box-shadow: 0 0 10px rgba(255,230,180,.5); animation: fwp-scroll 5s ease-in-out infinite; }
.scn-france-warwick-proposes .candle { position:absolute; bottom:38%; left:10%; width:8px; height:20px; background: linear-gradient(180deg, #f0e0c0 0%, #c89050 100%); border-radius:2px; }
.scn-france-warwick-proposes .candle .glow { position:absolute; top:-8px; left:-4px; width:16px; height:16px; background: radial-gradient(circle, #ffe080 0%, transparent 100%); animation: fwp-glow 3s ease-in-out infinite alternate; }
.scn-france-warwick-proposes .candle .flame { position:absolute; top:-6px; left:2px; width:4px; height:8px; background: linear-gradient(180deg, #fff0a0 0%, #ff8040 100%); border-radius:50%; animation: fwp-flame .5s ease-in-out infinite alternate; }
@keyframes fwp-king { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes fwp-kneel { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-1px) rotate(-5deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes fwp-scroll { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(2deg); } }
@keyframes fwp-glow { 0% { opacity:.6; } 100% { opacity:1; } }
@keyframes fwp-flame { 0% { transform: scaleY(1) skewX(0); } 100% { transform: scaleY(1.2) skewX(5deg); } }

.scn-france-margaret-interrupts { background: linear-gradient(180deg, #b09070 0%, #8a6a4a 30%, #5a3a2a 70%, #2a1a10 100%), radial-gradient(ellipse at 50% 30%, #ffe0b0 0%, transparent 60%); }
.scn-france-margaret-interrupts .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); }
.scn-france-margaret-interrupts .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); }
.scn-france-margaret-interrupts .podium { position:absolute; bottom:25%; left:40%; right:40%; height:40px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:4px 4px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.4); }
.scn-france-margaret-interrupts .council-figure { position:absolute; bottom:25%; width:22px; height:50px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-france-margaret-interrupts .council-figure.left { left:15%; animation: fmi-nod 4s ease-in-out infinite; }
.scn-france-margaret-interrupts .council-figure.right { right:15%; animation: fmi-nod 5s ease-in-out infinite reverse; }
.scn-france-margaret-interrupts .interruptor { position:absolute; bottom:25%; left:42%; width:30px; height:55px; background: linear-gradient(180deg, #702243 0%, #4a1628 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: fmi-step 3s ease-in-out infinite; }
.scn-france-margaret-interrupts .arm-up { /* combined with .interruptor */ }
.scn-france-margaret-interrupts .arm-up::before { content:''; position:absolute; top:-20px; left:10px; width:8px; height:25px; background: linear-gradient(180deg, #702243 0%, #4a1628 100%); border-radius:4px 4px 0 0; transform: rotate(-30deg); transform-origin: bottom center; animation: fmi-arm 1s ease-in-out infinite alternate; }
.scn-france-margaret-interrupts .speech-burst { position:absolute; bottom:55%; left:45%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,200,100,.6) 0%, rgba(255,200,100,.1) 100%); border-radius:50%; filter: blur(4px); animation: fmi-burst 2s ease-in-out infinite; }
@keyframes fmi-nod { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-1px) rotate(-3deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(3deg); } }
@keyframes fmi-step { 0%,100% { transform: translateX(0) translateY(0); } 25% { transform: translateX(5px) translateY(-2px); } 50% { transform: translateX(10px) translateY(0); } 75% { transform: translateX(5px) translateY(-2px); } }
@keyframes fmi-arm { 0% { transform: rotate(-40deg); } 100% { transform: rotate(-20deg); } }
@keyframes fmi-burst { 0% { transform: scale(1); opacity:.5; } 50% { transform: scale(1.5); opacity:1; } 100% { transform: scale(1); opacity:.5; } }

.scn-france-oxford-defends { background: linear-gradient(180deg, #a08060 0%, #7a5a3a 40%, #4a2a1a 70%, #2a1a10 100%), radial-gradient(ellipse at 60% 20%, #ffe0b0 0%, transparent 60%); }
.scn-france-oxford-defends .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); }
.scn-france-oxford-defends .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); }
.scn-france-oxford-defends .bookstand { position:absolute; bottom:30%; left:10%; right:10%; height:30px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-france-oxford-defends .book { position:absolute; bottom:33%; left:20%; right:20%; height:20px; background: linear-gradient(180deg, #b89870 0%, #8a6a4a 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: fod-book 8s ease-in-out infinite alternate; }
.scn-france-oxford-defends .defender { position:absolute; bottom:30%; left:15%; width:28px; height:60px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: fod-defend 5s ease-in-out infinite; }
.scn-france-oxford-defends .figure.gesturing { /* combined */ }
.scn-france-oxford-defends .figure.gesturing::after { content:''; position:absolute; top:-15px; left:20px; width:10px; height:20px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%); border-radius:4px; transform: rotate(20deg); transform-origin: bottom center; animation: fod-gesture 3s ease-in-out infinite alternate; }
.scn-france-oxford-defends .listener { position:absolute; bottom:30%; right:20%; width:24px; height:50px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: fod-listen 6s ease-in-out infinite; }
.scn-france-oxford-defends .lamp { position:absolute; top:10%; left:50%; width:12px; height:20px; background: linear-gradient(180deg, #c89050 0%, #a07030 100%); border-radius:2px; transform: translateX(-50%); }
.scn-france-oxford-defends .lamp .glow { position:absolute; top:-10px; left:-8px; width:28px; height:28px; background: radial-gradient(circle, #ffe080 0%, transparent 100%); animation: fod-glow 3s ease-in-out infinite alternate; }
@keyframes fod-book { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } }
@keyframes fod-defend { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(2deg); } }
@keyframes fod-gesture { 0% { transform: rotate(10deg); } 100% { transform: rotate(30deg); } }
@keyframes fod-listen { 0%,100% { transform: translateX(0); } 50% { transform: translateX(4px); } }
@keyframes fod-glow { 0% { opacity:.5; transform: scale(1); } 100% { opacity:1; transform: scale(1.2); } }

/* france-oxford-revenge - dark mood, bright interior */
.scn-france-oxford-revenge {
  background: linear-gradient(180deg, #d4c9a8 0%, #a89a7a 40%, #6a5c3e 100%),
              radial-gradient(ellipse at 30% 20%, rgba(255,220,160,0.3) 0%, transparent 60%);
}
.scn-france-oxford-revenge .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #bfae8c 0%, #8a7a5a 100%);
  opacity: 0.7; animation: fo-fade 8s ease-in-out infinite alternate;
}
.scn-france-oxford-revenge .window {
  position: absolute; top: 15%; left: 60%; width: 120px; height: 200px;
  background: radial-gradient(ellipse at 50% 50%, #fffbe0 0%, #d4c9a8 60%, #8a7a5a 100%);
  border: 8px solid #5a4c2e; border-radius: 4px; box-shadow: inset 0 0 40px rgba(255,240,180,0.5);
  animation: fo-window 12s ease-in-out infinite alternate;
}
.scn-france-oxford-revenge .drapery {
  position: absolute; top: 0; left: 55%; width: 100px; height: 100%;
  background: linear-gradient(90deg, #3a2e1a 0%, #4a3e2a 50%, #3a2e1a 100%);
  border-radius: 0 20% 20% 0; transform-origin: top left;
  animation: fo-drape 6s ease-in-out infinite alternate;
}
.scn-france-oxford-revenge .figure-arm {
  position: absolute; bottom: 20%; left: 20%; width: 80px; height: 140px;
  background: radial-gradient(ellipse 50% 100% at 50% 100%, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center;
  animation: fo-arm 3s ease-in-out infinite;
}
.scn-france-oxford-revenge .candle-glow {
  position: absolute; bottom: 25%; left: 45%; width: 12px; height: 30px;
  background: radial-gradient(circle at 50% 20%, #ffd080 0%, #b08040 100%);
  border-radius: 50%; box-shadow: 0 0 30px 8px rgba(255,200,100,0.6), 0 0 60px 20px rgba(255,200,100,0.3);
  animation: fo-candle 2s ease-in-out infinite alternate;
}
.scn-france-oxford-revenge .shadow {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 60%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: fo-shadow 4s ease-in-out infinite alternate;
}
@keyframes fo-fade { 0%,100% { opacity: 0.7 } 50% { opacity: 0.5 } }
@keyframes fo-window { 0%,100% { opacity: 0.8; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.02) translateY(-2px) } }
@keyframes fo-drape { 0%,100% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(2deg) scaleX(1.05) } }
@keyframes fo-arm { 0%,100% { transform: rotate(-10deg) translateY(0) } 30% { transform: rotate(5deg) translateY(-5px) } 60% { transform: rotate(-15deg) translateY(-3px) } }
@keyframes fo-candle { 0%,100% { box-shadow: 0 0 25px 5px rgba(255,200,100,0.5); opacity: 0.8 } 50% { box-shadow: 0 0 45px 12px rgba(255,200,100,0.8); opacity: 1 } }
@keyframes fo-shadow { 0%,100% { opacity: 0.5 } 50% { opacity: 0.7 } }

/* france-lewis-consults-warwick - calm mood, bright interior */
.scn-france-lewis-consults-warwick {
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b69e 40%, #9e8a72 100%),
              radial-gradient(ellipse at 70% 30%, rgba(255,240,200,0.3) 0%, transparent 50%);
}
.scn-france-lewis-consults-warwick .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a6a52 0%, #5a4c3a 100%);
  border-radius: 0 0 20% 20%;
}
.scn-france-lewis-consults-warwick .table {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 200px; height: 60px;
  background: linear-gradient(180deg, #6a5a42 0%, #4a3c2a 100%);
  border-radius: 8px; box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: lcw-table 20s ease-in-out infinite alternate;
}
.scn-france-lewis-consults-warwick .figure-left {
  position: absolute; bottom: 35%; left: 30%; width: 60px; height: 110px;
  background: radial-gradient(ellipse 80% 100% at 50% 100%, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center;
  animation: lcw-fig-l 6s ease-in-out infinite alternate;
}
.scn-france-lewis-consults-warwick .figure-right {
  position: absolute; bottom: 35%; right: 30%; width: 60px; height: 110px;
  background: radial-gradient(ellipse 80% 100% at 50% 100%, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center;
  animation: lcw-fig-r 6s ease-in-out infinite alternate;
}
.scn-france-lewis-consults-warwick .goblet {
  position: absolute; bottom: 32%; left: 45%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #c8b890 0%, #8a7a5a 100%);
  border-radius: 0 0 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: lcw-goblet 15s ease-in-out infinite alternate;
}
.scn-france-lewis-consults-warwick .candle {
  position: absolute; bottom: 32%; left: 55%; width: 8px; height: 25px;
  background: linear-gradient(180deg, #ffd080 0%, #b08040 100%);
  border-radius: 50%; box-shadow: 0 0 15px 5px rgba(255,200,100,0.4);
  animation: lcw-candle 4s ease-in-out infinite alternate;
}
@keyframes lcw-table { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes lcw-fig-l { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } }
@keyframes lcw-fig-r { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-3px); } }
@keyframes lcw-goblet { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes lcw-candle { 0%,100% { box-shadow: 0 0 10px 3px rgba(255,200,100,0.3); opacity: 0.9; } 50% { box-shadow: 0 0 25px 8px rgba(255,200,100,0.6); opacity: 1; } }

/* france-bona-accepts - calm mood, bright interior */
.scn-france-bona-accepts {
  background: linear-gradient(180deg, #f0e6d0 0%, #d4c4a8 30%, #b8a48a 100%),
              radial-gradient(ellipse at 50% 20%, rgba(255,235,180,0.25) 0%, transparent 60%);
}
.scn-france-bona-accepts .throne-bg {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 70%;
  background: linear-gradient(180deg, #ab9a82 0%, #7a6a52 100%);
  border-radius: 30% 30% 10% 10%;
  animation: bna-bg 25s ease-in-out infinite alternate;
}
.scn-france-bona-accepts .throne {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 150px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4c3a 100%);
  border-radius: 20% 20% 5% 5%; box-shadow: 0 10px 30px rgba(0,0,0,0.4);
  animation: bna-throne 18s ease-in-out infinite alternate;
}
.scn-france-bona-accepts .figure-queen {
  position: absolute; bottom: 28%; left: 42%; width: 50px; height: 100px;
  background: radial-gradient(ellipse 80% 100% at 50% 100%, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center;
  animation: bna-queen 8s ease-in-out infinite alternate;
}
.scn-france-bona-accepts .figure-king {
  position: absolute; bottom: 28%; right: 42%; width: 50px; height: 100px;
  background: radial-gradient(ellipse 80% 100% at 50% 100%, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center;
  animation: bna-king 8s ease-in-out infinite alternate;
}
.scn-france-bona-accepts .crown-glow {
  position: absolute; bottom: 42%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 15px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 50%; box-shadow: 0 0 20px 10px rgba(255,200,80,0.5);
  animation: bna-crown 4s ease-in-out infinite alternate;
}
.scn-france-bona-accepts .rose-petal {
  position: absolute; bottom: 20%; left: 35%; width: 10px; height: 8px;
  background: #b87878; border-radius: 50% 0 50% 0;
  animation: bna-rose 12s ease-in-out infinite alternate;
}
@keyframes bna-bg { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes bna-throne { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-5px); } }
@keyframes bna-queen { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-4px); } }
@keyframes bna-king { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-4px); } }
@keyframes bna-crown { 0%,100% { opacity: 0.8; transform: translateX(-50%) rotate(0deg); } 50% { opacity: 1; transform: translateX(-50%) rotate(3deg) scale(1.1); } }
@keyframes bna-rose { 0%,100% { transform: translate(0,0) rotate(0deg); opacity: 0.4; } 50% { transform: translate(10px,-5px) rotate(20deg); opacity: 0.7; } }

/* france-margaret-protests - dark mood, bright interior */
.scn-france-margaret-protests {
  background: linear-gradient(180deg, #bfa88c 0%, #9a826a 40%, #5a4c3a 100%),
              radial-gradient(ellipse at 60% 40%, rgba(255,200,140,0.4) 0%, transparent 50%);
}
.scn-france-margaret-protests .wall-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #8a7a5a 0%, #4a3c2a 100%);
  opacity: 0.6; animation: mp-wall 10s ease-in-out infinite alternate;
}
.scn-france-margaret-protests .window-glow {
  position: absolute; top: 10%; right: 10%; width: 100px; height: 180px;
  background: radial-gradient(ellipse at 50% 50%, #fff5d0 0%, #d4c4a8 50%, #8a7a5a 100%);
  border: 6px solid #5a4c3a; border-radius: 4px;
  animation: mp-window 8s ease-in-out infinite alternate;
}
.scn-france-margaret-protests .figure-margaret {
  position: absolute; bottom: 20%; left: 30%; width: 70px; height: 130px;
  background: radial-gradient(ellipse 80% 100% at 50% 100%, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center;
  animation: mp-fig 2s ease-in-out infinite alternate;
}
.scn-france-margaret-protests .arms-flung {
  position: absolute; bottom: 40%; left: 25%; width: 100px; height: 20px;
  background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%);
  border-radius: 50%; transform-origin: 30% 50%;
  animation: mp-arms 1.5s ease-in-out infinite alternate;
}
.scn-france-margaret-protests .table-candle {
  position: absolute; bottom: 25%; left: 55%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #6a5a42 0%, #4a3c2a 100%);
  border-radius: 6px;
}
.scn-france-margaret-protests .table-candle::after {
  content: ''; position: absolute; top: -15px; left: 50%; transform: translateX(-50%);
  width: 6px; height: 20px;
  background: linear-gradient(180deg, #ffd080 0%, #b08040 100%);
  border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,200,100,0.6);
  animation: mp-candle 2s ease-in-out infinite alternate;
}
.scn-france-margaret-protests .shadow-chaos {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 50%, rgba(0,0,0,0.4) 0%, transparent 60%);
  animation: mp-shadow 3s ease-in-out infinite alternate;
}
.scn-france-margaret-protests .spark {
  position: absolute; top: 30%; left: 70%; width: 4px; height: 4px;
  background: #ffd080; border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(255,200,100,0.8);
  animation: mp-spark 0.5s ease-in-out infinite alternate;
}
@keyframes mp-wall { 0%,100% { opacity: 0.6; } 50% { opacity: 0.8; } }
@keyframes mp-window { 0%,100% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.03); } }
@keyframes mp-fig { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-5px); } }
@keyframes mp-arms { 0%,100% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(25deg) scaleX(1.1); } }
@keyframes mp-candle { 0%,100% { box-shadow: 0 0 15px 4px rgba(255,200,100,0.5); opacity: 0.8; } 50% { box-shadow: 0 0 30px 10px rgba(255,200,100,0.8); opacity: 1; } }
@keyframes mp-shadow { 0%,100% { opacity: 0.4; } 50% { opacity: 0.6; } }
@keyframes mp-spark { 0%,100% { transform: translate(0,0) scale(1); opacity: 0.5; } 50% { transform: translate(5px,-5px) scale(1.4); opacity: 1; } }

/* mortimers-cross-news-of-death */
.scn-mortimers-cross-news-of-death {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #3a3a4e 40%, #5a4a3a 70%, #8a7a5a 100%),
    radial-gradient(ellipse at 50% 0%, #3a3a4e 0%, transparent 60%);
}
.scn-mortimers-cross-news-of-death .dawn-sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #3a3a5a 0%, #4a4a6a 30%, #7a6a4a 70%, transparent 100%);
  animation: nd-sky 12s ease-in-out infinite alternate;
}
.scn-mortimers-cross-news-of-death .distant-hills {
  position:absolute; bottom:30%; left:0; right:0; height:18%;
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%);
  border-radius: 60% 40% 0 0 / 40% 60% 0 0;
  animation: nd-hills 20s ease-in-out infinite alternate;
}
.scn-mortimers-cross-news-of-death .fallen-oak {
  position:absolute; bottom:15%; left:20%; width:60%; height:22%;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 80% 20% 80% / 30% 70% 30% 70%;
  transform: rotate(-8deg);
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
  animation: nd-oak 8s ease-in-out infinite;
}
.scn-mortimers-cross-news-of-death .broken-spear {
  position:absolute; bottom:22%; left:55%; width:4px; height:40px;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  transform: rotate(25deg);
  transform-origin: bottom;
  animation: nd-spear 6s ease-in-out infinite;
}
.scn-mortimers-cross-news-of-death .messenger-silhouette {
  position:absolute; bottom:15%; left:40%; width:20px; height:45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nd-messenger 4s ease-in-out infinite;
}
.scn-mortimers-cross-news-of-death .bloodstain {
  position:absolute; bottom:10%; left:25%; width:30px; height:12px;
  background: radial-gradient(ellipse, #5e1a1d 0%, transparent 70%);
  border-radius: 50%;
  animation: nd-blood 5s ease-in-out infinite alternate;
}
.scn-mortimers-cross-news-of-death .mists {
  position:absolute; bottom:20%; width:120px; height:40px;
  background: linear-gradient(180deg, rgba(200,190,170,.3) 0%, transparent 100%);
  border-radius: 50%; filter: blur(12px);
}
.scn-mortimers-cross-news-of-death .mist-1 {
  left:10%; animation: nd-mist1 35s linear infinite;
}
.scn-mortimers-cross-news-of-death .mist-2 {
  right:10%; animation: nd-mist2 45s linear infinite reverse;
}
@keyframes nd-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes nd-hills { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(1px) scale(1) } }
@keyframes nd-oak { 0%,100% { transform: rotate(-8deg) } 50% { transform: rotate(-6deg) translateY(2px) } }
@keyframes nd-spear { 0%,100% { transform: rotate(25deg) } 50% { transform: rotate(20deg) } }
@keyframes nd-messenger { 0%,100% { transform: translateX(0) } 50% { transform: translateX(6px) } }
@keyframes nd-blood { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes nd-mist1 { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes nd-mist2 { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* mortimers-cross-edward-lament */
.scn-mortimers-cross-edward-lament {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #3a3a4e 30%, #4a4a5e 60%, #7a6a4a 100%),
    radial-gradient(ellipse at 30% 0%, #4a4a5e 0%, transparent 70%);
}
.scn-mortimers-cross-edward-lament .dawn-sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #3a3a5a 0%, #5a5a7a 40%, #7a6a4a 80%, transparent 100%);
  animation: el-sky 12s ease-in-out infinite alternate;
}
.scn-mortimers-cross-edward-lament .mountain {
  position:absolute; bottom:35%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: el-mountain 18s ease-in-out infinite alternate;
}
.scn-mortimers-cross-edward-lament .fallen-york {
  position:absolute; bottom:18%; left:40%; width:28px; height:20px;
  background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%;
  transform: rotate(-70deg);
  transform-origin: bottom;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: el-fallen 7s ease-in-out infinite;
}
.scn-mortimers-cross-edward-lament .staff {
  position:absolute; bottom:22%; left:45%; width:3px; height:50px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  transform: rotate(15deg);
  transform-origin: bottom;
  animation: el-staff 6s ease-in-out infinite;
}
.scn-mortimers-cross-edward-lament .edward-figure {
  position:absolute; bottom:15%; left:48%; width:22px; height:50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: el-edward 4s ease-in-out infinite;
}
.scn-mortimers-cross-edward-lament .tear-drop {
  position:absolute; bottom:35%; left:50%; width:4px; height:6px;
  background: radial-gradient(circle, #8a8aaa 0%, transparent 70%);
  border-radius: 50%;
  animation: el-tear 3s ease-in-out infinite alternate;
}
.scn-mortimers-cross-edward-lament .weeds {
  position:absolute; bottom:12%; left:30%; width:100%; height:10%;
  background: linear-gradient(180deg, #3a4a3a 0%, transparent 100%);
  border-radius: 20% 80% 20% 80% / 50% 50% 50% 50%;
  filter: blur(2px);
  animation: el-weeds 8s ease-in-out infinite alternate;
}
@keyframes el-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes el-mountain { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(1px) } }
@keyframes el-fallen { 0%,100% { transform: rotate(-70deg) } 50% { transform: rotate(-65deg) translateX(2px) } }
@keyframes el-staff { 0%,100% { transform: rotate(15deg) } 50% { transform: rotate(10deg) } }
@keyframes el-edward { 0%,100% { transform: translateX(0) } 50% { transform: translateX(4px) translateY(-2px) } }
@keyframes el-tear { 0% { opacity:.2; transform: translateY(0) } 100% { opacity:.8; transform: translateY(8px) } }
@keyframes el-weeds { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

/* mortimers-cross-richard-vengeance */
.scn-mortimers-cross-richard-vengeance {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #4a3a3a 70%, #8a6a4a 100%),
    radial-gradient(ellipse at 70% 0%, #4a3a3a 0%, transparent 80%);
}
.scn-mortimers-cross-richard-vengeance .dawn-sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #4a4a6a 50%, #7a6a4a 90%, transparent 100%);
  animation: rv-sky 12s ease-in-out infinite alternate;
}
.scn-mortimers-cross-richard-vengeance .smoke {
  position:absolute; bottom:30%; left:20%; width:60px; height:80px;
  background: radial-gradient(ellipse, rgba(80,50,30,.3) 0%, transparent 70%);
  border-radius: 50%; filter: blur(20px);
  animation: rv-smoke 10s ease-in-out infinite alternate;
}
.scn-mortimers-cross-richard-vengeance .richard-silhouette {
  position:absolute; bottom:15%; left:30%; width:24px; height:55px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rv-richard 4s ease-in-out infinite;
}
.scn-mortimers-cross-richard-vengeance .flame-heart {
  position:absolute; bottom:30%; left:32%; width:14px; height:14px;
  background: radial-gradient(circle, #f0a040 0%, #d06020 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 4px #d06020, 0 0 40px 8px rgba(200,80,30,.4);
  animation: rv-flame 3s ease-in-out infinite alternate;
}
.scn-mortimers-cross-richard-vengeance .tear-chain {
  position:absolute; bottom:22%; left:30%; width:2px; height:30px;
  background: linear-gradient(180deg, #8a8aaa 0%, transparent 100%);
  animation: rv-tears 5s ease-in-out infinite;
}
.scn-mortimers-cross-richard-vengeance .ember {
  position:absolute; width:6px; height:6px;
  background: radial-gradient(circle, #f0c060 0%, #c06020 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 2px rgba(200,80,20,.6);
}
.scn-mortimers-cross-richard-vengeance .ember-1 {
  bottom:40%; left:50%; animation: rv-ember1 4s linear infinite;
}
.scn-mortimers-cross-richard-vengeance .ember-2 {
  bottom:45%; left:35%; animation: rv-ember2 5s linear infinite reverse;
}
.scn-mortimers-cross-richard-vengeance .ember-3 {
  bottom:35%; left:60%; animation: rv-ember3 3s linear infinite;
}
@keyframes rv-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rv-smoke { 0% { transform: scale(1) translateY(0); opacity:.3 } 50% { transform: scale(1.2) translateY(-10px); opacity:.5 } 100% { transform: scale(.9) translateY(5px); opacity:.2 } }
@keyframes rv-richard { 0%,100% { transform: translateX(0) } 50% { transform: translateX(8px) } }
@keyframes rv-flame { 0% { transform: scale(.9); opacity:.7 } 50% { transform: scale(1.3); opacity:1 } 100% { transform: scale(1); opacity:.8 } }
@keyframes rv-tears { 0% { opacity:.1 } 50% { opacity:.6 } 100% { opacity:.2 } }
@keyframes rv-ember1 { 0% { transform: translate(0,0) rotate(0deg); opacity:1 } 100% { transform: translate(-20px, -40px) rotate(90deg); opacity:0 } }
@keyframes rv-ember2 { 0% { transform: translate(0,0) rotate(0deg); opacity:1 } 100% { transform: translate(30px, -30px) rotate(-120deg); opacity:0 } }
@keyframes rv-ember3 { 0% { transform: translate(0,0) rotate(0deg); opacity:1 } 100% { transform: translate(-10px, -50px) rotate(180deg); opacity:0 } }

/* mortimers-cross-warwick-arrives */
.scn-mortimers-cross-warwick-arrives {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #3a3a4e 25%, #5a5a6e 50%, #9a8a6a 80%, #8a7a5a 100%),
    radial-gradient(ellipse at 60% 0%, #5a5a6e 0%, transparent 70%);
}
.scn-mortimers-cross-warwick-arrives .dawn-sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #3a3a5a 0%, #5a5a7a 30%, #8a7a5a 80%, transparent 100%);
  animation: wa-sky 12s ease-in-out infinite alternate;
}
.scn-mortimers-cross-warwick-arrives .hills {
  position:absolute; bottom:25%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%);
  border-radius: 40% 60% 0 0 / 60% 40% 0 0;
  animation: wa-hills 15s ease-in-out infinite alternate;
}
.scn-mortimers-cross-warwick-arrives .warwick-banner {
  position:absolute; bottom:28%; left:35%; width:12px; height:40px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0a 100%);
  border-radius: 20% 20% 0 0;
  transform: rotate(-5deg);
  transform-origin: bottom;
  animation: wa-banner1 4s ease-in-out infinite;
}
.scn-mortimers-cross-warwick-arrives .montague-banner {
  position:absolute; bottom:28%; left:55%; width:12px; height:35px;
  background: linear-gradient(180deg, #1a3a5e 0%, #0a2a4a 100%);
  border-radius: 20% 20% 0 0;
  transform: rotate(8deg);
  transform-origin: bottom;
  animation: wa-banner2 5s ease-in-out infinite reverse;
}
.scn-mortimers-cross-warwick-arrives .marching-soldiers {
  position:absolute; bottom:15%; left:20%; width:60%; height:18%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  filter: blur(2px);
  animation: wa-march 6s ease-in-out infinite;
}
.scn-mortimers-cross-warwick-arrives .dust {
  position:absolute; bottom:10%; width:100px; height:30px;
  background: linear-gradient(180deg, rgba(160,140,100,.2) 0%, transparent 100%);
  border-radius: 50%; filter: blur(10px);
}
.scn-mortimers-cross-warwick-arrives .dust-1 {
  left:10%; animation: wa-dust1 25s linear infinite;
}
.scn-mortimers-cross-warwick-arrives .dust-2 {
  right:10%; animation: wa-dust2 30s linear infinite reverse;
}
@keyframes wa-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes wa-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes wa-banner1 { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(-2deg) } }
@keyframes wa-banner2 { 0%,100% { transform: rotate(8deg) } 50% { transform: rotate(5deg) } }
@keyframes wa-march { 0% { opacity:.4 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes wa-dust1 { 0% { transform: translateX(-50px); opacity:.2 } 100% { transform: translateX(120vw); opacity:.8 } }
@keyframes wa-dust2 { 0% { transform: translateX(0); opacity:.8 } 100% { transform: translateX(-100vw); opacity:.2 } }

.scn-parliament-house-edward-rage {
  background: linear-gradient(180deg, #d4c6a8 0%, #b8a080 40%, #8a6a4a 100%),
              radial-gradient(ellipse at 50% 20%, rgba(255,230,180,.5) 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-parliament-house-edward-rage .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #c8b898 0%, #a08870 100%);
  animation: er-bgwall 12s ease-in-out infinite alternate;
}
.scn-parliament-house-edward-rage .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
}
.scn-parliament-house-edward-rage .throne {
  position: absolute; bottom: 30%; left: 42%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #b09060 0%, #6a4a20 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: er-throne 8s ease-in-out infinite;
}
.scn-parliament-house-edward-rage .figure {
  position: absolute; bottom: 28%; left: 44%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: er-figure 2s ease-in-out infinite;
}
.scn-parliament-house-edward-rage .arm {
  position: absolute; bottom: 55%; left: 46%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: er-arm 1.5s ease-in-out infinite alternate;
}
.scn-parliament-house-edward-rage .crown {
  position: absolute; bottom: 72%; left: 45%; width: 14px; height: 22px;
  background: linear-gradient(180deg, #d4a050 0%, #b08030 100%);
  clip-path: polygon(10% 100%, 0% 40%, 20% 20%, 40% 0%, 60% 20%, 80% 0%, 100% 40%, 90% 100%);
  animation: er-crown 3s ease-in-out infinite;
}
.scn-parliament-house-edward-rage .light-ray {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,230,180,.3) 0%, transparent 100%);
  transform: skewX(-10deg);
  animation: er-light 10s ease-in-out infinite alternate;
}
.scn-parliament-house-edward-rage .shadow {
  position: absolute; bottom: 28%; left: 38%; width: 80px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 70%);
  animation: er-shadow 2s ease-in-out infinite;
}
@keyframes er-bgwall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes er-throne { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) } }
@keyframes er-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes er-arm { 0% { transform: rotate(-20deg) } 100% { transform: rotate(30deg) } }
@keyframes er-crown { 0%,100% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-3px) rotate(5deg) } }
@keyframes er-light { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes er-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } }

.scn-parliament-house-henry-weak {
  background: linear-gradient(180deg, #c8b898 0%, #a08870 40%, #6a5a4a 100%),
              radial-gradient(ellipse at 50% 15%, rgba(255,220,160,.4) 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-parliament-house-henry-weak .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #b8a890 0%, #9a8270 100%);
  animation: hw-bgwall 15s ease-in-out infinite alternate;
}
.scn-parliament-house-henry-weak .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-parliament-house-henry-weak .throne {
  position: absolute; bottom: 30%; left: 44%; width: 70px; height: 110px;
  background: linear-gradient(180deg, #a08050 0%, #604020 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 10px rgba(0,0,0,.4);
  animation: hw-throne 10s ease-in-out infinite;
}
.scn-parliament-house-henry-weak .figure {
  position: absolute; bottom: 28%; left: 45%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hw-figure 4s ease-in-out infinite alternate;
}
.scn-parliament-house-henry-weak .crown-weight {
  position: absolute; bottom: 72%; left: 46%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #c09030 0%, #a07020 100%);
  clip-path: polygon(10% 100%, 0% 40%, 20% 20%, 40% 0%, 60% 20%, 80% 0%, 100% 40%, 90% 100%);
  animation: hw-crown 8s ease-in-out infinite;
}
.scn-parliament-house-henry-weak .lord {
  position: absolute; bottom: 28%; right: 25%; width: 25px; height: 75px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hw-lord 6s ease-in-out infinite;
}
.scn-parliament-house-henry-weak .shadow {
  position: absolute; bottom: 28%; left: 40%; width: 70px; height: 18px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 70%);
  animation: hw-shadow 4s ease-in-out infinite alternate;
}
@keyframes hw-bgwall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes hw-throne { 0%,100% { transform: scale(1) } 50% { transform: scale(.98) } }
@keyframes hw-figure { 0% { transform: translateX(-2px) rotate(-3deg) } 50% { transform: translateX(0) rotate(0) } 100% { transform: translateX(2px) rotate(3deg) } }
@keyframes hw-crown { 0%,100% { transform: translateY(0) rotate(-10deg) } 50% { transform: translateY(4px) rotate(10deg) } }
@keyframes hw-lord { 0% { transform: translateX(0) } 50% { transform: translateX(-4px) } 100% { transform: translateX(0) } }
@keyframes hw-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(.8) } 100% { transform: scaleX(1) } }

.scn-parliament-house-succession-argument {
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a890 40%, #7a6a5a 100%),
              radial-gradient(ellipse at 50% 20%, rgba(255,240,200,.4) 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-parliament-house-succession-argument .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8b8a0 0%, #a09078 100%);
  animation: sa-bgwall 20s ease-in-out infinite alternate;
}
.scn-parliament-house-succession-argument .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 6px 16px rgba(0,0,0,.4);
}
.scn-parliament-house-succession-argument .table {
  position: absolute; bottom: 28%; left: 50%; width: 100px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 3px 6px rgba(0,0,0,.3);
  animation: sa-table 6s ease-in-out infinite;
}
.scn-parliament-house-succession-argument .figure-left {
  position: absolute; bottom: 26%; left: 38%; width: 26px; height: 72px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sa-fig-left 10s ease-in-out infinite;
}
.scn-parliament-house-succession-argument .figure-right {
  position: absolute; bottom: 26%; right: 38%; width: 26px; height: 72px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sa-fig-right 10s ease-in-out infinite alternate;
}
.scn-parliament-house-succession-argument .crown-desk {
  position: absolute; bottom: 36%; left: 50%; width: 14px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a040 0%, #a08020 100%);
  clip-path: polygon(10% 100%, 0% 40%, 20% 20%, 40% 0%, 60% 20%, 80% 0%, 100% 40%, 90% 100%);
  animation: sa-crown 12s ease-in-out infinite;
}
.scn-parliament-house-succession-argument .book {
  position: absolute; bottom: 30%; left: 48%; width: 20px; height: 6px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  animation: sa-book 15s ease-in-out infinite;
}
.scn-parliament-house-succession-argument .light-ray {
  position: absolute; top: 0; left: 25%; width: 50%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,.2) 0%, transparent 100%);
  transform: skewX(-5deg);
  animation: sa-light 18s ease-in-out infinite alternate;
}
@keyframes sa-bgwall { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes sa-table { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } }
@keyframes sa-fig-left { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(-2deg) } 50% { transform: translateX(-2px) rotate(2deg) } 75% { transform: translateX(3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sa-fig-right { 0% { transform: translateX(0) } 33% { transform: translateX(-3px) } 66% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes sa-crown { 0%,100% { transform: translateX(-50%) rotate(-3deg) } 50% { transform: translateX(-50%) rotate(3deg) } }
@keyframes sa-book { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes sa-light { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.3 } }

.scn-parliament-house-objection {
  background: linear-gradient(180deg, #d0c0a8 0%, #b0a088 40%, #8a7a6a 100%),
              radial-gradient(ellipse at 50% 15%, rgba(255,220,170,.4) 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-parliament-house-objection .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #c0b098 0%, #a09078 100%);
  animation: ob-bgwall 14s ease-in-out infinite alternate;
}
.scn-parliament-house-objection .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-parliament-house-objection .throne {
  position: absolute; bottom: 32%; left: 42%; width: 70px; height: 100px;
  background: linear-gradient(180deg, #a08050 0%, #604020 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 10px rgba(0,0,0,.4);
  animation: ob-throne 9s ease-in-out infinite;
}
.scn-parliament-house-objection .figure-protest {
  position: absolute; bottom: 28%; left: 35%; width: 26px; height: 76px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ob-fig-protest 2s ease-in-out infinite;
}
.scn-parliament-house-objection .arm-up {
  position: absolute; bottom: 55%; left: 37%; width: 6px; height: 45px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: ob-arm-up 1.2s ease-in-out infinite alternate;
}
.scn-parliament-house-objection .figure-seated {
  position: absolute; bottom: 28%; right: 30%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ob-fig-seated 5s ease-in-out infinite;
}
.scn-parliament-house-objection .shadow {
  position: absolute; bottom: 28%; left: 30%; width: 90px; height: 18px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 70%);
  animation: ob-shadow 2s ease-in-out infinite alternate;
}
@keyframes ob-bgwall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ob-throne { 0%,100% { transform: scale(1) } 50% { transform: scale(1.01) } }
@keyframes ob-fig-protest { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(-1px) rotate(-1deg) } 75% { transform: translateX(2px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ob-arm-up { 0% { transform: rotate(0) } 100% { transform: rotate(40deg) } }
@keyframes ob-fig-seated { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-3px) } }
@keyframes ob-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.3) } 100% { transform: scaleX(1) } }

/* Scene: towton-richard-message */
.scn-towton-richard-message {
  background:
    linear-gradient(180deg, #3b3b4d 0%, #2a2a3a 40%, #1e1e2b 100%),
    radial-gradient(ellipse at 50% 100%, #4a4a5c 0%, transparent 70%);
}
.scn-towton-richard-message .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(0deg, #4a4a5c 0%, #33344a 60%, #2a2b40 100%);
  animation: trm-sky 16s ease-in-out infinite alternate;
}
.scn-towton-richard-message .horizon {
  position: absolute; bottom: 45%; left: -5%; right: -5%; height: 8%;
  background: linear-gradient(180deg, #5a5a5c 0%, #3d3d3f 100%);
  border-radius: 50% 50% 0 0; filter: blur(4px);
  animation: trm-horizon 20s ease-in-out infinite alternate;
}
.scn-towton-richard-message .figure-left {
  position: absolute; bottom: 28%; left: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1a1e 0%, #0e0e12 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: trm-figure 5s ease-in-out infinite;
}
.scn-towton-richard-message .figure-right {
  position: absolute; bottom: 28%; right: 25%; width: 42px; height: 72px;
  background: linear-gradient(180deg, #1c1c20 0%, #101014 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: trm-figure 5s ease-in-out infinite reverse;
}
.scn-towton-richard-message .arm {
  position: absolute; bottom: 52%; left: 43%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #1a1a1e 0%, #0e0e12 100%);
  border-radius: 40%;
  transform-origin: bottom center;
  animation: trm-arm 7s ease-in-out infinite;
}
.scn-towton-richard-message .mist-a {
  position: absolute; top: 20%; left: 10%; width: 120px; height: 40px;
  background: radial-gradient(ellipse, rgba(180,180,200,0.2) 0%, transparent 60%);
  filter: blur(8px);
  animation: trm-mist 45s linear infinite;
}
.scn-towton-richard-message .mist-b {
  position: absolute; top: 35%; right: -10%; width: 100px; height: 30px;
  background: radial-gradient(ellipse, rgba(180,180,200,0.15) 0%, transparent 50%);
  filter: blur(6px);
  animation: trm-mist 55s linear infinite reverse;
}
@keyframes trm-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes trm-horizon { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes trm-figure { 0% { transform: translateY(0) rotate(-0.5deg) } 50% { transform: translateY(-3px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(-0.5deg) } }
@keyframes trm-arm { 0% { transform: rotate(-15deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-15deg) } }
@keyframes trm-mist { 0% { transform: translateX(-30px) } 100% { transform: translateX(200vw) } }

/* Scene: towton-vows */
.scn-towton-vows {
  background:
    linear-gradient(180deg, #3d3d4e 0%, #2a2a39 50%, #1d1d28 100%),
    radial-gradient(ellipse at 50% 100%, #404055 0%, transparent 80%);
}
.scn-towton-vows .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(0deg, #4a4a5c 0%, #2e2e40 80%);
  animation: twv-sky 18s ease-in-out infinite alternate;
}
.scn-towton-vows .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2a2a2d 0%, #16161a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-towton-vows .cross {
  position: absolute; bottom: 40%; left: 50%; width: 12px; height: 80px;
  background: linear-gradient(180deg, #3a3a3e 0%, #222226 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: twv-cross 6s ease-in-out infinite;
}
.scn-towton-vows .cross::before {
  content: ''; position: absolute; top: 0; left: -18px; width: 48px; height: 10px;
  background: inherit; border-radius: 2px;
}
.scn-towton-vows .figure-left {
  position: absolute; bottom: 25%; left: 32%; width: 38px; height: 52px;
  background: linear-gradient(180deg, #1a1a1e 0%, #0e0e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: twv-kneel 7s ease-in-out infinite;
}
.scn-towton-vows .figure-right {
  position: absolute; bottom: 25%; right: 32%; width: 38px; height: 52px;
  background: linear-gradient(180deg, #1a1a1e 0%, #0e0e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: twv-kneel 7s ease-in-out infinite reverse;
}
.scn-towton-vows .hands {
  position: absolute; bottom: 48%; left: 50%; width: 20px; height: 14px;
  background: #1e1e22;
  border-radius: 50% 50% 20% 20%;
  transform: translateX(-50%);
  animation: twv-hands 4s ease-in-out infinite;
}
.scn-towton-vows .cloak {
  position: absolute; bottom: 18%; left: 25%; right: 25%; height: 20px;
  background: linear-gradient(180deg, #1a1a1e 0%, #0e0e12 100%);
  border-radius: 30% 30% 50% 50%;
  filter: blur(3px);
  animation: twv-cloak 8s ease-in-out infinite alternate;
}
@keyframes twv-sky { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.5 } }
@keyframes twv-cross { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes twv-kneel { 0% { transform: translateY(0) rotate(-0.5deg) } 50% { transform: translateY(-2px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(-0.5deg) } }
@keyframes twv-hands { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.1) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes twv-cloak { 0% { transform: scaleX(1) } 100% { transform: scaleX(1.05) } }

/* Scene: towton-rally */
.scn-towton-rally {
  background:
    linear-gradient(180deg, #3b3b4a 0%, #252535 40%, #1a1a24 100%),
    radial-gradient(ellipse at 50% 80%, #3a3a4c 0%, transparent 70%);
}
.scn-towton-rally .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #2e2e3e 100%);
  animation: try-sky 20s ease-in-out infinite alternate;
}
.scn-towton-rally .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2d2d32 0%, #14141a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.5);
}
.scn-towton-rally .speaker {
  position: absolute; bottom: 32%; left: 50%; width: 48px; height: 75px;
  background: linear-gradient(180deg, #1a1a1e 0%, #0e0e12 100%);
  border-radius: 45% 45% 30% 30% / 50% 50% 30% 30%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: try-speaker 6s ease-in-out infinite;
}
.scn-towton-rally .speaker::after {
  content: ''; position: absolute; top: 15%; left: 45%; width: 8px; height: 12px;
  background: #1a1a1e; border-radius: 50%; transform: rotate(20deg);
}
.scn-towton-rally .crowd-left {
  position: absolute; bottom: 20%; left: 5%; width: 35%; height: 35%;
  background: radial-gradient(ellipse at 50% 100%, #1c1c20 0%, transparent 70%);
  filter: blur(8px);
  animation: try-crowd 10s ease-in-out infinite alternate;
}
.scn-towton-rally .crowd-right {
  position: absolute; bottom: 20%; right: 5%; width: 35%; height: 35%;
  background: radial-gradient(ellipse at 50% 100%, #1c1c20 0%, transparent 70%);
  filter: blur(8px);
  animation: try-crowd 10s ease-in-out infinite alternate-reverse;
}
.scn-towton-rally .banner {
  position: absolute; bottom: 50%; left: 60%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #3a3a3e 0%, #1a1a1e 100%);
  transform-origin: bottom center;
  animation: try-banner 7s ease-in-out infinite;
}
.scn-towton-rally .banner::after {
  content: ''; position: absolute; top: 0; left: -10px; width: 28px; height: 16px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); /* terracotta */
  border-radius: 0 30% 30% 0;
}
.scn-towton-rally .spear-line {
  position: absolute; bottom: 40%; left: 20%; right: 20%; height: 4px;
  background: repeating-linear-gradient(90deg, #2a2a2e 0px, #2a2a2e 2px, transparent 2px, transparent 8px);
  filter: blur(1px);
  animation: try-spears 9s ease-in-out infinite;
}
@keyframes try-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.5 } }
@keyframes try-speaker { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes try-crowd { 0% { transform: scaleY(0.95) } 100% { transform: scaleY(1.05) } }
@keyframes try-banner { 0% { transform: rotate(0deg) } 50% { transform: rotate(6deg) } 100% { transform: rotate(0deg) } }
@keyframes try-spears { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }

/* Scene: towton-rivarly-duel */
.scn-towton-rivarly-duel {
  background:
    linear-gradient(180deg, #2e2e3f 0%, #1c1c2a 50%, #0f0f18 100%),
    radial-gradient(ellipse at 50% 100%, #252535 0%, transparent 70%);
}
.scn-towton-rivarly-duel .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #1e1e2e 100%);
  animation: trd-sky 14s ease-in-out infinite alternate;
}
.scn-towton-rivarly-duel .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #232327 0%, #121216 100%);
  border-radius: 30% 70% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
}
.scn-towton-rivarly-duel .figure-clifford {
  position: absolute; bottom: 20%; left: 20%; width: 45px; height: 80px;
  background: linear-gradient(180deg, #1a1a1e 0%, #0e0e12 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: trd-clifford 4s ease-in-out infinite;
}
.scn-towton-rivarly-duel .figure-clifford::after {
  content: ''; position: absolute; top: -10px; left: 5px; width: 30px; height: 30px;
  background: linear-gradient(180deg, #2a2a2e 0%, #1a1a1e 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(20deg);
}
.scn-towton-rivarly-duel .figure-richard {
  position: absolute; bottom: 20%; right: 20%; width: 45px; height: 80px;
  background: linear-gradient(180deg, #1c1c20 0%, #101014 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: trd-richard 4.5s ease-in-out infinite;
}
.scn-towton-rivarly-duel .figure-richard::after {
  content: ''; position: absolute; top: -8px; right: 8px; width: 28px; height: 28px;
  background: linear-gradient(180deg, #2a2a2e 0%, #1a1a1e 100%);
  border-radius: 20% 50% 20% 50%;
  transform: rotate(-15deg);
}
.scn-towton-rivarly-duel .sword-clash {
  position: absolute; bottom: 45%; left: 50%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c8c8d0 0%, #8888a0 30%, transparent 60%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 40px 10px rgba(200,200,210,0.25);
  animation: trd-clash 0.8s ease-in-out infinite alternate;
}
.scn-towton-rivarly-duel .dust-a {
  position: absolute; bottom: 8%; left: 30%; width: 80px; height: 30px;
  background: radial-gradient(ellipse, rgba(160,160,170,0.15) 0%, transparent 70%);
  filter: blur(6px);
  animation: trd-dust 12s linear infinite;
}
.scn-towton-rivarly-duel .dust-b {
  position: absolute; bottom: 12%; right: 25%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, rgba(160,160,170,0.1) 0%, transparent 60%);
  filter: blur(5px);
  animation: trd-dust 18s linear infinite reverse;
}
@keyframes trd-sky { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.4 } }
@keyframes trd-clifford { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes trd-richard { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes trd-clash { 0% { transform: translate(-50%,-50%) scale(0.8); opacity: 0.6 } 100% { transform: translate(-50%,-50%) scale(1.2); opacity: 1 } }
@keyframes trd-dust { 0% { transform: translateX(-10px) } 100% { transform: translateX(120vw) } }

/* Scene 1: london-tower-warwick-refuses – calm, bright interior */
.scn-london-tower-warwick-refuses {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 40%, #a89078 100%),
    radial-gradient(ellipse at 50% 0%, #f0e8d8 0%, transparent 50%);
}
.scn-london-tower-warwick-refuses .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #d4c4b0 0%, #e0d4c0 50%, #d4c4b0 100%);
  animation: ltwr-wall 12s ease-in-out infinite alternate;
}
.scn-london-tower-warwick-refuses .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.15);
}
.scn-london-tower-warwick-refuses .window {
  position: absolute; top: 20%; left: 35%; width: 30%; height: 45%;
  background: radial-gradient(ellipse at 50% 50%, #c0d8f0 0%, #90b0d0 60%, #7090b0 100%);
  border: 3px solid #8a7a6a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(180,200,230,0.6), 0 0 30px rgba(180,200,230,0.3);
  animation: ltwr-glow 6s ease-in-out infinite alternate;
}
.scn-london-tower-warwick-refuses .table {
  position: absolute; bottom: 28%; left: 20%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-london-tower-warwick-refuses .candle {
  position: absolute; bottom: 34%; left: 38%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #f0d8b0 0%, #c8a870 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px rgba(240,216,176,0.5);
  animation: ltwr-flicker 3s ease-in-out infinite alternate;
}
.scn-london-tower-warwick-refuses .figure-warwick {
  position: absolute; bottom: 22%; left: 50%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ltwr-bow 8s ease-in-out infinite;
}
.scn-london-tower-warwick-refuses .shadow-fig {
  position: absolute; bottom: 0; left: 48%; width: 14%; height: 6%;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(4px);
  animation: ltwr-shadow 8s ease-in-out infinite;
}
@keyframes ltwr-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes ltwr-glow { 0% { box-shadow: inset 0 0 10px rgba(180,200,230,0.3), 0 0 15px rgba(180,200,230,0.15); } 50% { box-shadow: inset 0 0 30px rgba(180,200,230,0.7), 0 0 40px rgba(180,200,230,0.4); } 100% { box-shadow: inset 0 0 20px rgba(180,200,230,0.5), 0 0 25px rgba(180,200,230,0.25); } }
@keyframes ltwr-flicker { 0% { transform: scaleY(1) scaleX(1); opacity:0.9; box-shadow: 0 0 8px 2px rgba(240,216,176,0.4); } 30% { transform: scaleY(1.02) scaleX(0.98); opacity:1; box-shadow: 0 0 16px 4px rgba(240,216,176,0.6); } 60% { transform: scaleY(0.98) scaleX(1.02); opacity:0.95; box-shadow: 0 0 12px 3px rgba(240,216,176,0.5); } 100% { transform: scaleY(1) scaleX(1); opacity:0.9; box-shadow: 0 0 10px 2px rgba(240,216,176,0.4); } }
@keyframes ltwr-bow { 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 ltwr-shadow { 0% { transform: scaleX(1); opacity:0.15; } 50% { transform: scaleX(1.1); opacity:0.2; } 100% { transform: scaleX(1); opacity:0.15; } }

/* Scene 2: london-tower-edward-proclaimed-traitor – tense, bright interior */
.scn-london-tower-edward-proclaimed-traitor {
  background: 
    linear-gradient(180deg, #d4c4b0 0%, #b8a890 50%, #8a7a6a 100%),
    radial-gradient(ellipse at 50% 0%, #e8dcc8 0%, transparent 40%);
}
.scn-london-tower-edward-proclaimed-traitor .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #c8b8a0 0%, #d8c8b0 50%, #c8b8a0 100%);
  animation: ltep-wall 10s ease-in-out infinite alternate;
}
.scn-london-tower-edward-proclaimed-traitor .pillar {
  position: absolute; top: 0; left: 15%; width: 8%; height: 80%;
  background: linear-gradient(90deg, #a09080 0%, #b0a090 50%, #a09080 100%);
  border-radius: 4px;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.1), 4px 0 8px rgba(0,0,0,0.1);
}
.scn-london-tower-edward-proclaimed-traitor .crier {
  position: absolute; bottom: 22%; left: 45%; width: 12%; height: 32%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ltep-crier 2s ease-in-out infinite alternate;
}
.scn-london-tower-edward-proclaimed-traitor .scroll {
  position: absolute; bottom: 30%; left: 48%; width: 8%; height: 6%;
  background: #e0d4c0;
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: ltep-scroll 4s ease-in-out infinite;
}
.scn-london-tower-edward-proclaimed-traitor .shadow-crier {
  position: absolute; bottom: 0; left: 43%; width: 16%; height: 8%;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(5px);
  animation: ltep-shadow 2s ease-in-out infinite alternate;
}
.scn-london-tower-edward-proclaimed-traitor .light-shaft {
  position: absolute; top: 0; left: 35%; width: 30%; height: 100%;
  background: linear-gradient(180deg, rgba(240,230,210,0.4) 0%, transparent 70%);
  clip-path: polygon(40% 0%, 60% 0%, 70% 100%, 30% 100%);
  animation: ltep-shaft 5s ease-in-out infinite alternate;
}
@keyframes ltep-wall { 0% { opacity:1; } 50% { opacity:0.95; } 100% { opacity:1; } }
@keyframes ltep-crier { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ltep-scroll { 0% { transform: rotate(3deg) translateX(0); } 33% { transform: rotate(5deg) translateX(2px); } 66% { transform: rotate(1deg) translateX(-2px); } 100% { transform: rotate(3deg) translateX(0); } }
@keyframes ltep-shadow { 0% { transform: scaleX(1); opacity:0.2; } 100% { transform: scaleX(1.2); opacity:0.35; } }
@keyframes ltep-shaft { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.5; transform: scaleX(1.05); } 100% { opacity:0.4; transform: scaleX(0.95); } }

/* Scene 3: london-tower-richmond-blessed – warm, bright interior */
.scn-london-tower-richmond-blessed {
  background: 
    linear-gradient(180deg, #f0e0c8 0%, #d8c8a8 50%, #b8a088 100%),
    radial-gradient(ellipse at 50% 0%, #f8e8d0 0%, transparent 50%);
}
.scn-london-tower-richmond-blessed .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #d8c8a8 0%, #e8d8b8 50%, #d8c8a8 100%);
  animation: ltrb-wall 15s ease-in-out infinite alternate;
}
.scn-london-tower-richmond-blessed .bishop {
  position: absolute; bottom: 20%; left: 30%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ltrb-bishop 6s ease-in-out infinite;
}
.scn-london-tower-richmond-blessed .child-richmond {
  position: absolute; bottom: 18%; left: 45%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #b08868 0%, #705040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ltrb-child 6s ease-in-out infinite;
}
.scn-london-tower-richmond-blessed .halo {
  position: absolute; top: 20%; left: 42%; width: 14%; height: 14%;
  background: radial-gradient(circle, rgba(240,220,180,0.6) 0%, transparent 60%);
  border-radius: 50%;
  animation: ltrb-halo 4s ease-in-out infinite alternate;
}
.scn-london-tower-richmond-blessed .altar {
  position: absolute; bottom: 12%; left: 40%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #a09080 0%, #706050 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-london-tower-richmond-blessed .window-stained {
  position: absolute; top: 18%; left: 65%; width: 20%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #c8a070 0%, #a08050 60%, #705030 100%);
  border: 3px solid #706050;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(200,160,112,0.5);
  animation: ltrb-stained 8s ease-in-out infinite alternate;
}
@keyframes ltrb-wall { 0% { opacity:0.95; } 50% { opacity:1; } 100% { opacity:0.98; } }
@keyframes ltrb-bishop { 0% { transform: translateY(0) rotate(-2deg); } 33% { transform: translateY(-2px) rotate(0deg); } 66% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ltrb-child { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ltrb-halo { 0% { transform: scale(1); opacity:0.4; } 50% { transform: scale(1.1); opacity:0.6; } 100% { transform: scale(0.95); opacity:0.5; } }
@keyframes ltrb-stained { 0% { box-shadow: inset 0 0 10px rgba(200,160,112,0.2); } 50% { box-shadow: inset 0 0 30px rgba(200,160,112,0.5); } 100% { box-shadow: inset 0 0 20px rgba(200,160,112,0.3); } }

/* Scene 4: london-tower-edwards-escape – tense, bright interior */
.scn-london-tower-edwards-escape {
  background: 
    linear-gradient(180deg, #c8b8a0 0%, #a89880 50%, #786858 100%),
    radial-gradient(ellipse at 50% 0%, #d8c8b0 0%, transparent 30%);
}
.scn-london-tower-edwards-escape .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #b8a890 0%, #c8b8a0 50%, #b8a890 100%);
  animation: ltee-wall 8s ease-in-out infinite alternate;
}
.scn-london-tower-edwards-escape .door {
  position: absolute; bottom: 0; left: 40%; width: 20%; height: 70%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.3), 4px 0 8px rgba(0,0,0,0.3);
  animation: ltee-door 4s ease-in-out infinite alternate;
}
.scn-london-tower-edwards-escape .figure-dark {
  position: absolute; bottom: 20%; left: 30%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ltee-figure 3s ease-in-out infinite alternate;
}
.scn-london-tower-edwards-escape .torch {
  position: absolute; bottom: 45%; left: 55%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #f0c060 0%, #c08020 100%);
  border-radius: 2px;
  box-shadow: 0 0 16px 6px rgba(240,192,96,0.5);
  animation: ltee-torch 1.5s ease-in-out infinite alternate;
}
.scn-london-tower-edwards-escape .map {
  position: absolute; bottom: 30%; left: 20%; width: 12%; height: 8%;
  background: #e0d4c0;
  border-radius: 2px;
  transform: rotate(-8deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: ltee-map 6s ease-in-out infinite;
}
.scn-london-tower-edwards-escape .shadow-escape {
  position: absolute; bottom: 0; left: 28%; width: 14%; height: 6%;
  background: rgba(0,0,0,0.35);
  border-radius: 50%;
  filter: blur(5px);
  animation: ltee-shadow 3s ease-in-out infinite alternate;
}
.scn-london-tower-edwards-escape .hint-ambush {
  position: absolute; top: 50%; right: 10%; width: 6%; height: 10%;
  background: radial-gradient(ellipse, rgba(60,40,30,0.4) 0%, transparent 60%);
  border-radius: 50%;
  animation: ltee-ambush 10s ease-in-out infinite;
}
@keyframes ltee-wall { 0% { opacity:1; } 50% { opacity:0.9; } 100% { opacity:1; } }
@keyframes ltee-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.98); } 100% { transform: scaleX(1); } }
@keyframes ltee-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(-3px) rotate(-2deg); } }
@keyframes ltee-torch { 0% { transform: scaleY(1) scaleX(1); opacity:0.9; box-shadow: 0 0 12px 4px rgba(240,192,96,0.4); } 50% { transform: scaleY(1.05) scaleX(0.95); opacity:1; box-shadow: 0 0 20px 6px rgba(240,192,96,0.6); } 100% { transform: scaleY(0.95) scaleX(1.05); opacity:0.85; box-shadow: 0 0 14px 5px rgba(240,192,96,0.45); } }
@keyframes ltee-map { 0% { transform: rotate(-6deg) translateX(0); } 33% { transform: rotate(-10deg) translateX(2px); } 66% { transform: rotate(-4deg) translateX(-2px); } 100% { transform: rotate(-6deg) translateX(0); } }
@keyframes ltee-shadow { 0% { transform: scaleX(1); opacity:0.25; } 100% { transform: scaleX(1.15); opacity:0.4; } }
@keyframes ltee-ambush { 0% { transform: scale(1); opacity:0.3; } 50% { transform: scale(1.2); opacity:0.5; } 100% { transform: scale(0.9); opacity:0.2; } }

.scn-item-gauntlet { background: linear-gradient(180deg, #fce4b8 0%, #e8c790 40%, #d4a86a 100%), radial-gradient(ellipse at 30% 20%, #fff8e0 0%, transparent 60%); position:relative; overflow:hidden; }
.scn-item-gauntlet .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #ffeac2 0%, #ffd699 100%); animation: ig-sky 8s ease-in-out infinite alternate; }
.scn-item-gauntlet .sun { position:absolute; top:8%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #fff5c0 0%, #ffd060 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,208,96,0.4), 0 0 80px 40px rgba(255,208,96,0.2); animation: ig-sun 6s ease-in-out infinite alternate; }
.scn-item-gauntlet .rays { position:absolute; top:0; left:0; width:100%; height:100%; background: repeating-linear-gradient(45deg, rgba(255,255,200,0.1) 0%, rgba(255,255,200,0.1) 2%, transparent 2%, transparent 8%); animation: ig-rays 20s linear infinite; }
.scn-item-gauntlet .trumpet { position:absolute; bottom:45%; left:20%; width:40px; height:80px; background: linear-gradient(180deg, #c8a86a 0%, #a08050 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-30deg); box-shadow: 0 4px 6px rgba(0,0,0,0.3); animation: ig-trumpet 4s ease-in-out infinite; }
.scn-item-gauntlet .gauntlet { position:absolute; bottom:40%; left:50%; width:50px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a86a 0%, #8a6a3a 100%); border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
.scn-item-gauntlet .hand { position:absolute; bottom:38%; left:48%; width:30px; height:40px; background: linear-gradient(180deg, #c8a86a 0%, #9a7a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: ig-hand 3s ease-in-out infinite alternate; }
.scn-item-gauntlet .cloth { position:absolute; bottom:30%; left:38%; width:90px; height:60px; background: linear-gradient(135deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: ig-cloth 5s ease-in-out infinite; }
.scn-item-gauntlet .dust { position:absolute; inset:0; background: radial-gradient(circle at 30% 40%, rgba(255,255,200,0.15) 0%, transparent 50%); animation: ig-dust 12s ease-in-out infinite alternate; }
@keyframes ig-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes ig-sun { 0% { transform: scale(1) translate(0,0) } 50% { transform: scale(1.05) translate(5px,-5px) } 100% { transform: scale(0.98) translate(-3px,3px) } }
@keyframes ig-rays { 0% { background-position: 0 0 } 100% { background-position: 100% 100% } }
@keyframes ig-trumpet { 0% { transform: rotate(-30deg) translateY(0) } 50% { transform: rotate(-28deg) translateY(-3px) } 100% { transform: rotate(-32deg) translateY(0) } }
@keyframes ig-hand { 0% { transform: rotate(10deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(8deg) } }
@keyframes ig-cloth { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes ig-dust { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

.scn-london-palace-henry-council { background: linear-gradient(180deg, #d4b88c 0%, #b89870 40%, #8a6a4a 100%), radial-gradient(ellipse at 50% 50%, #e8d4b8 0%, transparent 80%); position:relative; overflow:hidden; }
.scn-london-palace-henry-council .wall { position:absolute; inset:0; background: linear-gradient(90deg, #b89870 0%, #c8a880 20%, #b89870 100%); }
.scn-london-palace-henry-council .throne { position:absolute; bottom:20%; left:50%; width:100px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 8px 16px rgba(0,0,0,0.5); }
.scn-london-palace-henry-council .king { position:absolute; bottom:25%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-london-palace-henry-council .lord-left { position:absolute; bottom:22%; left:20%; width:35px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); }
.scn-london-palace-henry-council .lord-right { position:absolute; bottom:22%; right:20%; width:35px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); }
.scn-london-palace-henry-council .table { position:absolute; bottom:15%; left:30%; width:120px; height:20px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-london-palace-henry-council .map { position:absolute; bottom:15%; left:35%; width:80px; height:40px; background: linear-gradient(135deg, #c8a86a 0%, #a08050 100%); border-radius: 5%; transform: rotate(2deg); animation: hc-map 12s ease-in-out infinite alternate; }
.scn-london-palace-henry-council .candle { position:absolute; bottom:20%; left:55%; width:10px; height:25px; background: linear-gradient(180deg, #d4a86a 0%, #8a6a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 12px 4px rgba(255,200,100,0.5); animation: hc-candle 3s ease-in-out infinite; }
@keyframes hc-map { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes hc-candle { 0% { transform: scaleY(1); opacity:0.9 } 50% { transform: scaleY(1.05); opacity:1 } 100% { transform: scaleY(0.98); opacity:0.95 } }

.scn-london-palace-henry-muses { background: linear-gradient(180deg, #e0c8a0 0%, #c8a880 50%, #a88860 100%), radial-gradient(ellipse at 70% 40%, #f0e0c0 0%, transparent 70%); position:relative; overflow:hidden; }
.scn-london-palace-henry-muses .window { position:absolute; top:10%; right:10%; width:120px; height:180px; background: linear-gradient(180deg, #b8d8e0 0%, #a0c0c8 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: inset 0 0 20px rgba(0,0,0,0.2); border: 6px solid #6a4a2a; }
.scn-london-palace-henry-muses .light-beam { position:absolute; top:10%; right:10%; width:100px; height:200px; background: linear-gradient(135deg, rgba(255,255,200,0.2) 0%, transparent 70%); transform: rotate(-20deg); animation: hm-beam 10s ease-in-out infinite alternate; }
.scn-london-palace-henry-muses .figure { position:absolute; bottom:30%; left:20%; width:40px; height:70px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); box-shadow: 0 0 20px 5px rgba(0,0,0,0.2); }
.scn-london-palace-henry-muses .chair { position:absolute; bottom:25%; left:18%; width:50px; height:60px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; }
.scn-london-palace-henry-muses .table { position:absolute; bottom:20%; left:40%; width:80px; height:15px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 10%; }
.scn-london-palace-henry-muses .scroll { position:absolute; bottom:22%; left:42%; width:20px; height:30px; background: linear-gradient(180deg, #d4b88c 0%, #b89870 100%); border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%; transform: rotate(15deg); animation: hm-scroll 8s ease-in-out infinite alternate; }
.scn-london-palace-henry-muses .dust { position:absolute; inset:0; background: radial-gradient(circle at 40% 30%, rgba(255,255,200,0.1) 0%, transparent 60%); animation: hm-dust 15s ease-in-out infinite; }
@keyframes hm-beam { 0% { opacity:0.2; transform: rotate(-20deg) scaleX(1) } 50% { opacity:0.4; transform: rotate(-18deg) scaleX(1.05) } 100% { opacity:0.3; transform: rotate(-22deg) scaleX(0.98) } }
@keyframes hm-scroll { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-2px) } 100% { transform: rotate(16deg) translateY(0) } }
@keyframes hm-dust { 0% { opacity:0.1 } 50% { opacity:0.3 } 100% { opacity:0.2 } }

.scn-london-palace-edward-captures-henry { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 40%, #5a3a2a 0%, transparent 80%); position:relative; overflow:hidden; }
.scn-london-palace-edward-captures-henry .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-london-palace-edward-captures-henry .wall-shadow { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a0a00 0%, transparent 100%); animation: ec-shadow 5s ease-in-out infinite alternate; }
.scn-london-palace-edward-captures-henry .henry { position:absolute; bottom:25%; left:40%; width:40px; height:65px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); box-shadow: 0 0 20px 5px rgba(0,0,0,0.5); }
.scn-london-palace-edward-captures-henry .soldier-sword { position:absolute; bottom:28%; left:52%; width:30px; height:70px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-20deg); animation: ec-sword 0.8s ease-in-out infinite alternate; }
.scn-london-palace-edward-captures-henry .soldier-grab { position:absolute; bottom:30%; left:45%; width:35px; height:55px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: ec-grab 1.2s ease-in-out infinite; }
.scn-london-palace-edward-captures-henry .crown-falling { position:absolute; top:15%; left:40%; width:30px; height:20px; background: linear-gradient(180deg, #c8a86a 0%, #8a6a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 10px 2px rgba(200,168,106,0.5); animation: ec-crown 3s ease-in-out infinite; }
.scn-london-palace-edward-captures-henry .sparks { position:absolute; inset:0; background: radial-gradient(circle at 50% 30%, rgba(255,200,100,0.2) 0%, transparent 40%); animation: ec-sparks 2s ease-in-out infinite; }
@keyframes ec-shadow { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ec-sword { 0% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-15deg) translateX(3px) } 100% { transform: rotate(-22deg) translateX(-2px) } }
@keyframes ec-grab { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(3deg) translateX(4px) } 100% { transform: rotate(6deg) translateX(-2px) } }
@keyframes ec-crown { 0% { transform: translateY(0) rotate(0deg); opacity:1 } 30% { transform: translateY(20px) rotate(45deg); opacity:0.8 } 60% { transform: translateY(40px) rotate(90deg); opacity:0.6 } 100% { transform: translateY(60px) rotate(135deg); opacity:0 } }
@keyframes ec-sparks { 0% { opacity:0.1 } 50% { opacity:0.4 } 100% { opacity:0.2 } }

.scn-forest-henry-soliloquy {
  background:
    linear-gradient(180deg, #0b1a2e 0%, #1a2b1f 40%, #0f1a12 100%),
    radial-gradient(ellipse at 30% 60%, #2c4a3a 0%, transparent 70%);
}
.scn-forest-henry-soliloquy .bg-deep { position:absolute; inset:0; background: linear-gradient(135deg, #0d1e1a 0%, #1a2e24 50%, #0b1c14 100%); animation: fhs-bg 20s ease-in-out infinite alternate; }
.scn-forest-henry-soliloquy .bg-mid { position:absolute; inset:10% 0 20% 0; background: linear-gradient(180deg, rgba(10,24,18,.6) 0%, transparent 100%); }
.scn-forest-henry-soliloquy .tree-trunk { position:absolute; left:20%; bottom:5%; width:40px; height:70%; background: linear-gradient(90deg, #3a2a1a 0%,#5c3a1e 40%,#3a2a1a 100%); border-radius:8% / 4%; transform:rotate(2deg); animation: fhs-tree 12s ease-in-out infinite; }
.scn-forest-henry-soliloquy .figure-stand { position:absolute; left:38%; bottom:25%; width:22px; height:60px; background: linear-gradient(180deg, #0f1720 0%, #060c12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fhs-figure 4s ease-in-out infinite; }
.scn-forest-henry-soliloquy .lantern-glow { position:absolute; left:48%; bottom:45%; width:10px; height:10px; background: radial-gradient(circle, #b8944f 0%, #7a5f2e 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(184,148,79,.5), 0 0 60px 20px rgba(184,148,79,.2); animation: fhs-lantern 4s ease-in-out infinite alternate; }
.scn-forest-henry-soliloquy .leaf.drift-a { position:absolute; top:20%; left:50%; width:14px; height:8px; background: #5c4a2a; border-radius:50% 0; opacity:.6; animation: fhs-leaf-a 15s linear infinite; }
.scn-forest-henry-soliloquy .leaf.drift-b { position:absolute; top:30%; left:70%; width:10px; height:6px; background: #4a3a1a; border-radius:0 50%; opacity:.5; animation: fhs-leaf-b 20s linear infinite; animation-delay: 5s; }

@keyframes fhs-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fhs-tree { 0%,100% { transform:rotate(2deg) } 50% { transform:rotate(0deg) } }
@keyframes fhs-figure { 0%,100% { transform:translateY(0) rotate(-1deg) } 50% { transform:translateY(-3px) rotate(1deg) } }
@keyframes fhs-lantern { 0% { box-shadow: 0 0 20px 6px rgba(184,148,79,.4), 0 0 40px 12px rgba(184,148,79,.15); opacity:.8 } 50% { box-shadow: 0 0 40px 12px rgba(184,148,79,.6), 0 0 70px 24px rgba(184,148,79,.3); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(184,148,79,.45), 0 0 50px 16px rgba(184,148,79,.2); opacity:.9 } }
@keyframes fhs-leaf-a { 0% { transform: translate(-30px, 0) rotate(0deg) } 50% { transform: translate(20px, 40px) rotate(180deg) } 100% { transform: translate(60px, 80px) rotate(360deg) } }
@keyframes fhs-leaf-b { 0% { transform: translate(10px, 0) rotate(0deg) } 50% { transform: translate(-30px, 30px) rotate(-180deg) } 100% { transform: translate(-70px, 60px) rotate(-360deg) } }

.scn-forest-henry-muse {
  background:
    linear-gradient(180deg, #0e1f2b 0%, #1a2e2e 40%, #0a1818 100%),
    radial-gradient(ellipse at 70% 20%, #2c4a4a 0%, transparent 60%);
}
.scn-forest-henry-muse .bg-night { position:absolute; inset:0; background: linear-gradient(135deg, #0d1c1c 0%, #162828 50%, #0b1a1a 100%); animation: fhm-bg 25s ease-in-out infinite alternate; }
.scn-forest-henry-muse .moon { position:absolute; top:8%; right:15%; width:40px; height:40px; background: radial-gradient(circle, #d4c4a0 0%, #a09070 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(212,196,160,.4); animation: fhm-moon 10s ease-in-out infinite; }
.scn-forest-henry-muse .log { position:absolute; bottom:22%; left:35%; width:80px; height:12px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:20% / 40%; transform:rotate(-2deg); }
.scn-forest-henry-muse .figure-sit { position:absolute; left:30%; bottom:25%; width:28px; height:50px; background: linear-gradient(180deg, #0f1720 0%, #060c12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fhm-sit 6s ease-in-out infinite; }
.scn-forest-henry-muse .scroll { position:absolute; right:40%; bottom:38%; width:20px; height:8px; background: #6a5a3a; border-radius:10% / 50%; transform:rotate(-10deg); animation: fhm-scroll 8s ease-in-out infinite; }
.scn-forest-henry-muse .leaf.left-drift { position:absolute; top:15%; left:10%; width:12px; height:7px; background: #5c4a2a; border-radius:50% 0; opacity:.5; animation: fhm-leaf-l 18s linear infinite; }
.scn-forest-henry-muse .leaf.right-drift { position:absolute; top:25%; left:80%; width:10px; height:6px; background: #4a3a1a; border-radius:0 50%; opacity:.4; animation: fhm-leaf-r 22s linear infinite; animation-delay: 4s; }

@keyframes fhm-bg { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes fhm-moon { 0%,100% { transform: scale(1); } 50% { transform: scale(1.05); opacity:.85; } }
@keyframes fhm-sit { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes fhm-scroll { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } }
@keyframes fhm-leaf-l { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(40px,50px) rotate(180deg); } 100% { transform: translate(80px,100px) rotate(360deg); } }
@keyframes fhm-leaf-r { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(-30px,40px) rotate(-180deg); } 100% { transform: translate(-60px,80px) rotate(-360deg); } }

.scn-forest-keepers-confront {
  background:
    linear-gradient(180deg, #0b1a2e 0%, #1a2b1f 40%, #101d14 100%),
    radial-gradient(ellipse at 50% 70%, #1e3a2a 0%, transparent 70%);
}
.scn-forest-keepers-confront .bg-depth { position:absolute; inset:0; background: linear-gradient(135deg, #0d1e1a 0%, #1a2e24 50%, #0b1c14 100%); animation: fkc-bg 18s ease-in-out infinite alternate; }
.scn-forest-keepers-confront .tree-left { position:absolute; left:10%; bottom:5%; width:30px; height:80%; background: linear-gradient(90deg, #3a2a1a 0%,#5c3a1e 40%,#3a2a1a 100%); border-radius:6% / 4%; transform:rotate(-3deg); animation: fkc-tree-l 14s ease-in-out infinite; }
.scn-forest-keepers-confront .tree-right { position:absolute; right:10%; bottom:5%; width:30px; height:80%; background: linear-gradient(90deg, #3a2a1a 0%,#5c3a1e 40%,#3a2a1a 100%); border-radius:6% / 4%; transform:rotate(3deg); animation: fkc-tree-r 16s ease-in-out infinite; }
.scn-forest-keepers-confront .figure-left { position:absolute; left:25%; bottom:20%; width:24px; height:50px; background: linear-gradient(180deg, #0f1720 0%, #060c12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fkc-fig-l 5s ease-in-out infinite; }
.scn-forest-keepers-confront .figure-right { position:absolute; right:25%; bottom:20%; width:24px; height:50px; background: linear-gradient(180deg, #0f1720 0%, #060c12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fkc-fig-r 5s ease-in-out infinite 0.5s; }
.scn-forest-keepers-confront .staff-left { position:absolute; left:30%; bottom:30%; width:4px; height:60px; background: #4a3a2a; border-radius:10%; transform:rotate(-15deg); animation: fkc-staff-l 4s ease-in-out infinite; }
.scn-forest-keepers-confront .staff-right { position:absolute; right:30%; bottom:30%; width:4px; height:60px; background: #4a3a2a; border-radius:10%; transform:rotate(15deg); animation: fkc-staff-r 4s ease-in-out infinite 0.2s; }
.scn-forest-keepers-confront .grass { position:absolute; bottom:15%; left:0; right:0; height:10%; background: linear-gradient(180deg, #1a2e1e 0%, #0f1a12 100%); border-radius:30% 70% 0 0 / 60% 40% 0 0; animation: fkc-grass 10s ease-in-out infinite; }

@keyframes fkc-bg { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes fkc-tree-l { 0%,100% { transform:rotate(-3deg) } 50% { transform:rotate(-1deg) } }
@keyframes fkc-tree-r { 0%,100% { transform:rotate(3deg) } 50% { transform:rotate(1deg) } }
@keyframes fkc-fig-l { 0%,100% { transform:translateY(0) rotate(-1deg) } 50% { transform:translateY(-3px) rotate(1deg) } }
@keyframes fkc-fig-r { 0%,100% { transform:translateY(0) rotate(1deg) } 50% { transform:translateY(-3px) rotate(-1deg) } }
@keyframes fkc-staff-l { 0%,100% { transform:rotate(-15deg) } 50% { transform:rotate(-10deg) } }
@keyframes fkc-staff-r { 0%,100% { transform:rotate(15deg) } 50% { transform:rotate(10deg) } }
@keyframes fkc-grass { 0%,100% { transform:translateY(0) } 50% { transform:translateY(2px) } }

.scn-forest-henry-argument {
  background:
    linear-gradient(180deg, #0b1a2e 0%, #1a2b1f 40%, #0f1a12 100%),
    radial-gradient(ellipse at 50% 50%, #1a3a2a 0%, transparent 70%);
}
.scn-forest-henry-argument .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0d1c1c 0%, #142424 50%, #091414 100%); animation: fha-bg 22s ease-in-out infinite alternate; }
.scn-forest-henry-argument .figure-left { position:absolute; left:20%; bottom:20%; width:30px; height:55px; background: linear-gradient(180deg, #0f1720 0%, #060c12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fha-fig-l 3s ease-in-out infinite; }
.scn-forest-henry-argument .figure-right { position:absolute; right:20%; bottom:20%; width:30px; height:55px; background: linear-gradient(180deg, #0f1720 0%, #060c12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fha-fig-r 3s ease-in-out infinite 0.15s; }
.scn-forest-henry-argument .arm-left { position:absolute; left:30%; bottom:45%; width:20px; height:6px; background: #0f1720; border-radius:50%; transform-origin: left center; animation: fha-arm-l 2s ease-in-out infinite; }
.scn-forest-henry-argument .arm-right { position:absolute; right:30%; bottom:45%; width:20px; height:6px; background: #0f1720; border-radius:50%; transform-origin: right center; animation: fha-arm-r 2s ease-in-out infinite 0.1s; }
.scn-forest-henry-argument .ground { position:absolute; bottom:15%; left:0; right:0; height:8%; background: linear-gradient(180deg, #1a2e1e 0%, #0f1a12 100%); border-radius:20% 80% 0 0 / 50% 50% 0 0; animation: fha-ground 5s ease-in-out infinite; }

@keyframes fha-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fha-fig-l { 0%,100% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(-2px) rotate(2deg) } }
@keyframes fha-fig-r { 0%,100% { transform:translateY(0) rotate(2deg) } 50% { transform:translateY(-2px) rotate(-2deg) } }
@keyframes fha-arm-l { 0% { transform: rotate(0deg) } 50% { transform: rotate(-40deg) } 100% { transform: rotate(0deg) } }
@keyframes fha-arm-r { 0% { transform: rotate(0deg) } 50% { transform: rotate(40deg) } 100% { transform: rotate(0deg) } }
@keyframes fha-ground { 0%,100% { transform:translateY(0) } 50% { transform:translateY(1px) } }

/* Scene: warwick orders - tense dawn */
.scn-mortimers-cross-warwick-orders {
  background: linear-gradient(180deg, #2a2a5e 0%, #3a3a6e 40%, #6b4a3a 100%), radial-gradient(ellipse at 70% 20%, #6b4a3a 0%, transparent 60%);
}
.scn-mortimers-cross-warwick-orders .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #1a1a4e 0%, #3a3a6e 70%, transparent 100%);
  animation: wko-sky 12s ease-in-out infinite alternate;
}
.scn-mortimers-cross-warwick-orders .horizon-light {
  position:absolute; bottom:45%; left:0; right:0; height:8%;
  background: linear-gradient(90deg, transparent 0%, #b08040 50%, transparent 100%);
  opacity:0.6; filter:blur(6px);
  animation: wko-horizon 15s ease-in-out infinite alternate;
}
.scn-mortimers-cross-warwick-orders .castle {
  position:absolute; bottom:30%; left:20%; width:60%; height:40%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.5);
  animation: wko-castle 20s ease-in-out infinite;
}
.scn-mortimers-cross-warwick-orders .tower-left {
  position:absolute; bottom:40%; left:22%; width:12%; height:30%;
  background: linear-gradient(180deg, #1e1e3e 0%, #0e0e1e 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: -4px 0 10px rgba(0,0,0,0.6);
  animation: wko-tower 6s ease-in-out infinite alternate;
}
.scn-mortimers-cross-warwick-orders .tower-right {
  position:absolute; bottom:40%; right:22%; width:12%; height:30%;
  background: linear-gradient(180deg, #1e1e3e 0%, #0e0e1e 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 4px 0 10px rgba(0,0,0,0.6);
  animation: wko-tower 8s ease-in-out infinite alternate;
}
.scn-mortimers-cross-warwick-orders .flag {
  position:absolute; bottom:65%; left:45%; width:6%; height:10%;
  background: linear-gradient(180deg, #8a5a3a 0%, #5a3a1a 100%);
  border-radius: 0 0 10% 10%;
  transform-origin: bottom center;
  animation: wko-flag 3s ease-in-out infinite;
}
.scn-mortimers-cross-warwick-orders .figure-silhouette {
  position:absolute; bottom:28%; left:30%; width:6%; height:18%;
  background: #0a0a1a;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: wko-fig 4s ease-in-out infinite;
}
.scn-mortimers-cross-warwick-orders .shadow-cross {
  position:absolute; bottom:20%; left:40%; width:2%; height:25%;
  background: rgba(0,0,0,0.6);
  transform: rotate(45deg);
  animation: wko-cross 5s ease-in-out infinite alternate;
}
@keyframes wko-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes wko-horizon { 0% { transform: scaleX(0.9); opacity:0.5 } 50% { transform: scaleX(1.1); opacity:0.8 } 100% { transform: scaleX(0.95); opacity:0.6 } }
@keyframes wko-castle { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes wko-tower { 0% { transform: translateY(0) } 100% { transform: translateY(-4px) } }
@keyframes wko-flag { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes wko-fig { 0% { transform: translateX(0) } 25% { transform: translateX(5px) translateY(-2px) scale(1.02) } 50% { transform: translateX(10px) } 75% { transform: translateX(5px) translateY(-1px) scale(0.98) } 100% { transform: translateX(0) } }
@keyframes wko-cross { 0% { opacity:0.3 } 100% { opacity:0.8 } }

/* Scene: edward pledge - warm dawn */
.scn-mortimers-cross-edward-pledge {
  background: linear-gradient(180deg, #b07a4a 0%, #e8b870 30%, #f8d8a0 60%, #fff8e0 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 70%);
}
.scn-mortimers-cross-edward-pledge .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #d8a060 0%, #f8d8a0 80%, transparent 100%);
  animation: wep-sky 10s ease-in-out infinite alternate;
}
.scn-mortimers-cross-edward-pledge .sun {
  position:absolute; top:10%; left:65%; width:12%; height:12%;
  background: radial-gradient(circle, #ffcc80 0%, #ffa040 60%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 60px 20px #ffa040;
  animation: wep-sun 15s ease-in-out infinite alternate;
}
.scn-mortimers-cross-edward-pledge .figure-left {
  position:absolute; bottom:28%; left:25%; width:8%; height:30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: wep-figL 4s ease-in-out infinite;
}
.scn-mortimers-cross-edward-pledge .figure-right {
  position:absolute; bottom:28%; left:35%; width:9%; height:32%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: wep-figR 5s ease-in-out infinite;
}
.scn-mortimers-cross-edward-pledge .shield {
  position:absolute; bottom:35%; left:30%; width:6%; height:8%;
  background: linear-gradient(135deg, #b08040 0%, #6a4a2a 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
  animation: wep-shield 3s ease-in-out infinite alternate;
}
.scn-mortimers-cross-edward-pledge .ground {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 40% 40% 0 0;
  animation: wep-ground 20s ease-in-out infinite;
}
.scn-mortimers-cross-edward-pledge .grass-blades {
  position:absolute; bottom:20%; left:15%; width:20%; height:6%;
  background: linear-gradient(90deg, #6a8a4a 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: wep-grass 5s ease-in-out infinite;
}
.scn-mortimers-cross-edward-pledge .sparkle {
  position:absolute; top:20%; left:40%; width:2%; height:2%;
  background: #fff;
  border-radius:50%;
  box-shadow: 0 0 10px #fff;
  animation: wep-spark 2s ease-in-out infinite;
}
@keyframes wep-sky { 0% { opacity:0.8 } 100% { opacity:1 } }
@keyframes wep-sun { 0% { transform: scale(0.9) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes wep-figL { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes wep-figR { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(-2deg) } }
@keyframes wep-shield { 0% { transform: scale(1) } 100% { transform: scale(1.05) } }
@keyframes wep-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes wep-grass { 0%,100% { transform: translateX(0) } 50% { transform: translateX(5px) } }
@keyframes wep-spark { 0%,100% { opacity:0 } 50% { opacity:1 } }

/* Scene: march - warm dawn */
.scn-mortimers-cross-march {
  background: linear-gradient(180deg, #b08040 0%, #d8a060 30%, #f0c080 60%, #fff0d0 100%), radial-gradient(ellipse at 40% 20%, #f0c080 0%, transparent 70%);
}
.scn-mortimers-cross-march .sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #d09050 0%, #f0c080 80%, transparent 100%);
  animation: wma-sky 14s ease-in-out infinite alternate;
}
.scn-mortimers-cross-march .sun {
  position:absolute; top:8%; right:15%; width:10%; height:10%;
  background: radial-gradient(circle, #ffcc80 0%, #ffa040 50%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 50px 15px #ffa040;
  animation: wma-sun 12s ease-in-out infinite alternate;
}
.scn-mortimers-cross-march .soldier-row-1 {
  position:absolute; bottom:22%; left:10%; width:80%; height:18%;
  background: repeating-linear-gradient(90deg, #1a1a2a 0%, #1a1a2a 4%, transparent 4%, transparent 8%);
  border-radius: 50% 50% 0 0;
  animation: wma-sold1 3s ease-in-out infinite;
}
.scn-mortimers-cross-march .soldier-row-2 {
  position:absolute; bottom:18%; left:5%; width:90%; height:14%;
  background: repeating-linear-gradient(90deg, #2a2a3a 0%, #2a2a3a 5%, transparent 5%, transparent 10%);
  border-radius: 50% 50% 0 0;
  animation: wma-sold2 4s ease-in-out infinite;
}
.scn-mortimers-cross-march .drum {
  position:absolute; bottom:16%; left:42%; width:6%; height:8%;
  background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: wma-drum 2s ease-in-out infinite;
}
.scn-mortimers-cross-march .banner {
  position:absolute; bottom:40%; left:20%; width:3%; height:20%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 10% 10% 0 0;
  transform-origin: bottom center;
  animation: wma-banner 4s ease-in-out infinite;
}
.scn-mortimers-cross-march .ground {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 30% 30% 0 0;
  animation: wma-ground 20s ease-in-out infinite;
}
.scn-mortimers-cross-march .dust {
  position:absolute; bottom:20%; left:30%; width:40%; height:8%;
  background: linear-gradient(90deg, transparent, rgba(200,160,120,0.3), transparent);
  filter: blur(6px);
  animation: wma-dust 8s linear infinite;
}
@keyframes wma-sky { 0% { opacity:0.7 } 100% { opacity:1 } }
@keyframes wma-sun { 0% { transform: scale(0.8) } 50% { transform: scale(1.1) } 100% { transform: scale(0.9) } }
@keyframes wma-sold1 { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-5px) } }
@keyframes wma-sold2 { 0%,100% { transform: translateX(0) } 50% { transform: translateX(5px) } }
@keyframes wma-drum { 0%,100% { transform: scale(1) rotate(0) } 50% { transform: scale(1.1) rotate(5deg) } }
@keyframes wma-banner { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes wma-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } 100% { transform: scaleY(1) } }
@keyframes wma-dust { 0% { transform: translateX(-20px) opacity:0 } 50% { opacity:0.4 } 100% { transform: translateX(80px) opacity:0 } }

/* Scene: henrys arrival - calm sunlit */
.scn-before-york-henrys-arrival {
  background: linear-gradient(180deg, #88aacc 0%, #b0c8e0 40%, #e0d8c0 80%, #f8f0e0 100%), radial-gradient(ellipse at 50% 80%, #f8f0e0 0%, transparent 60%);
}
.scn-before-york-henrys-arrival .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #6a9ac0 0%, #b0c8e0 70%, transparent 100%);
  animation: yha-sky 10s ease-in-out infinite alternate;
}
.scn-before-york-henrys-arrival .sun {
  position:absolute; top:5%; left:55%; width:14%; height:14%;
  background: radial-gradient(circle, #ffe0a0 0%, #ffcc80 40%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 80px 30px #ffcc80;
  animation: yha-sun 18s ease-in-out infinite alternate;
}
.scn-before-york-henrys-arrival .city-wall {
  position:absolute; bottom:30%; left:10%; width:80%; height:40%;
  background: linear-gradient(180deg, #c0b8a0 0%, #a09880 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: yha-wall 20s ease-in-out infinite;
}
.scn-before-york-henrys-arrival .gate {
  position:absolute; bottom:30%; left:40%; width:20%; height:35%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 15px rgba(0,0,0,0.4);
  animation: yha-gate 8s ease-in-out infinite alternate;
}
.scn-before-york-henrys-arrival .pike {
  position:absolute; bottom:48%; left:45%; width:2%; height:25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  transform: rotate(10deg);
  animation: yha-pike 5s ease-in-out infinite;
}
.scn-before-york-henrys-arrival .figure-king {
  position:absolute; bottom:20%; left:30%; width:7%; height:25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: yha-king 4s ease-in-out infinite;
}
.scn-before-york-henrys-arrival .retinue {
  position:absolute; bottom:20%; left:20%; width:20%; height:20%;
  background: repeating-linear-gradient(90deg, #3a2a1a 0%, #3a2a1a 3%, transparent 3%, transparent 6%);
  border-radius: 50% 50% 0 0;
  animation: yha-ret 6s ease-in-out infinite;
}
.scn-before-york-henrys-arrival .ground {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #7a9a6a 0%, #4a6a3a 100%);
  border-radius: 40% 40% 0 0;
  animation: yha-ground 15s ease-in-out infinite;
}
@keyframes yha-sky { 0% { opacity:0.8 } 100% { opacity:1 } }
@keyframes yha-sun { 0% { transform: scale(0.9) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes yha-wall { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes yha-gate { 0% { box-shadow: 0 0 10px rgba(0,0,0,0.3) } 100% { box-shadow: 0 0 20px rgba(0,0,0,0.5) } }
@keyframes yha-pike { 0%,100% { transform: rotate(8deg) } 50% { transform: rotate(12deg) } }
@keyframes yha-king { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes yha-ret { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes yha-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }

.scn-towton-queen-flees { background: linear-gradient(180deg, #6d7068 0%, #55584f 40%, #3a3c35 100%); }
.scn-towton-queen-flees .sky-clouds { position:absolute; inset:0 0 55% 0; background: radial-gradient(ellipse at 30% 20%, #8c8e84 0%, #6a6c62 50%, transparent 70%), linear-gradient(180deg, #6d7068 0%, #9a9c92 60%); animation: tqf-sky 12s ease-in-out infinite alternate; }
.scn-towton-queen-flees .hills-bg { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a4d42 0%, #2e3028 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 6px 15px #2a2c24; animation: tqf-hills 15s ease-in-out infinite; }
.scn-towton-queen-flees .castle-tower { position:absolute; bottom:50%; right:25%; width:28px; height:60px; background: linear-gradient(180deg, #3a3c33 0%, #25271f 100%); border-radius: 4px 4px 0 0; box-shadow: 0 4px 8px #1d1f18; animation: tqf-castle 10s ease-in-out infinite; }
.scn-towton-queen-flees .queen-figure { position:absolute; bottom:28%; left:30%; width:22px; height:50px; background: linear-gradient(180deg, #2a2c24 0%, #191a15 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tqf-queen 4s linear infinite; }
.scn-towton-queen-flees .ground-grass { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3b3e34 0%, #25271f 100%); border-radius: 40% 30% 0 0; box-shadow: inset 0 10px 20px #1c1e17; }
@keyframes tqf-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes tqf-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tqf-castle { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-1px) translateY(-1px) } }
@keyframes tqf-queen { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(8px) rotate(-2deg) } 50% { transform: translateX(16px) rotate(0) } 75% { transform: translateX(24px) rotate(2deg) } 100% { transform: translateX(32px) rotate(0) } }

.scn-towton-clifford-dying { background: linear-gradient(180deg, #1a1820 0%, #0e0c14 40%, #06040a 100%), radial-gradient(ellipse at 50% 100%, #1f1c2a 0%, transparent 70%); }
.scn-towton-clifford-dying .dark-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #14121c 0%, #0a0810 100%); border-radius: 50% 40% 0 0; box-shadow: inset 0 12px 24px #020206; }
.scn-towton-clifford-dying .candle-flame { position:absolute; bottom:55%; right:40%; width:10px; height:18px; background: radial-gradient(circle, #a07840 0%, #604820 70%); border-radius: 50%; box-shadow: 0 0 20px 8px #806030, 0 0 40px 16px rgba(128,96,48,.4); animation: tcd-candle 2s ease-in-out infinite alternate; }
.scn-towton-clifford-dying .clifford-figure { position:absolute; bottom:25%; left:30%; width:24px; height:50px; background: linear-gradient(180deg, #1a1822 0%, #0e0c16 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: tcd-fall 6s ease-in-out infinite; }
.scn-towton-clifford-dying .shield { position:absolute; bottom:22%; left:20%; width:20px; height:30px; background: #16141e; border-radius: 30% 30% 20% 20%; box-shadow: 0 4px 6px #08060c; animation: tcd-shield 8s ease-in-out infinite; }
.scn-towton-clifford-dying .sword { position:absolute; bottom:20%; left:50%; width:4px; height:40px; background: #2a2836; border-radius: 2px; transform: rotate(30deg); transform-origin: bottom; animation: tcd-sword 10s ease-in-out infinite; }
.scn-towton-clifford-dying .blood-smear { position:absolute; bottom:12%; left:25%; width:40px; height:8px; background: #3e1a1c; border-radius: 50%; filter: blur(3px); opacity:0.6; }
@keyframes tcd-candle { 0% { transform: scale(1); opacity:0.8 } 50% { transform: scale(1.2) translateY(-2px); opacity:1 } 100% { transform: scale(0.9); opacity:0.7 } }
@keyframes tcd-fall { 0% { transform: rotate(0) } 25% { transform: rotate(-4deg) translateY(1px) } 50% { transform: rotate(0) translateY(3px) } 75% { transform: rotate(4deg) translateY(1px) } 100% { transform: rotate(0) } }
@keyframes tcd-shield { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-2px) rotate(-3deg) } }
@keyframes tcd-sword { 0%,100% { transform: rotate(30deg) } 50% { transform: rotate(35deg) } }

.scn-towton-edwards-victory { background: linear-gradient(180deg, #7a7a6c 0%, #6a6a5c 40%, #535345 100%), radial-gradient(ellipse at 50% 0%, #9a9a7c 0%, transparent 70%); }
.scn-towton-edwards-victory .twilight-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #8a8a7a 0%, #747464 60%); animation: tev-sky 20s ease-in-out infinite alternate; }
.scn-towton-edwards-victory .distant-hills { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2e 100%); border-radius: 60% 40% 0 0; box-shadow: inset 0 6px 12px #2a2a20; }
.scn-towton-edwards-victory .campfire-glow { position:absolute; bottom:25%; right:35%; width:20px; height:20px; background: radial-gradient(circle, #c09850 0%, #907038 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 40px 15px #a07840, 0 0 80px 30px rgba(160,120,64,.3); animation: tev-fire 3s ease-in-out infinite alternate; }
.scn-towton-edwards-victory .tent { position:absolute; bottom:30%; left:30%; width:50px; height:40px; background: linear-gradient(180deg, #4a4a3c 0%, #2e2e24 100%); border-radius: 40% 40% 0 0; box-shadow: inset 0 -4px 8px #1c1c16; }
.scn-towton-edwards-victory .banner { position:absolute; bottom:38%; left:30%; width:4px; height:30px; background: #2a2a20; animation: tev-banner 6s ease-in-out infinite; }
.scn-towton-edwards-victory .banner::after { content:''; position:absolute; top:0; left:0; width:20px; height:14px; background: #6a5a3a; border-radius: 0 60% 60% 0; }
.scn-towton-edwards-victory .soldier-group { position:absolute; bottom:22%; left:50%; width:40px; height:30px; background: linear-gradient(180deg, #3a3a2e 0%, #1e1e18 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 4px 6px #14140e; animation: tev-soldiers 8s ease-in-out infinite; }
@keyframes tev-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes tev-fire { 0% { transform: scale(1); opacity:0.8 } 50% { transform: scale(1.3); opacity:1 } 100% { transform: scale(0.9); opacity:0.85 } }
@keyframes tev-banner { 0%,100% { transform: rotate(0) } 50% { transform: rotate(8deg) } }
@keyframes tev-soldiers { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }

.scn-towton-clifford-found { background: linear-gradient(180deg, #1e1c26 0%, #14121a 40%, #0a0810 100%), radial-gradient(ellipse at 50% 100%, #1c1a24 0%, transparent 70%); }
.scn-towton-clifford-found .darken-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #25232e 0%, #14121a 100%); animation: tcf-sky 18s ease-in-out infinite alternate; }
.scn-towton-clifford-found .tree-trunk { position:absolute; bottom:25%; left:25%; width:12px; height:60px; background: linear-gradient(180deg, #2a2834 0%, #181622 100%); border-radius: 4px; box-shadow: 0 2px 6px #0a0810; transform-origin: bottom; animation: tcf-tree 12s ease-in-out infinite; }
.scn-towton-clifford-found .fallen-body { position:absolute; bottom:12%; left:30%; width:50px; height:30px; background: linear-gradient(180deg, #1e1c28 0%, #12101a 100%); border-radius: 40% 40% 20% 20%; transform: rotate(-10deg); box-shadow: 0 4px 8px #0a0812; }
.scn-towton-clifford-found .helmet { position:absolute; bottom:24%; left:28%; width:20px; height:16px; background: #3a3846; border-radius: 50% 50% 10% 10%; box-shadow: 0 2px 4px #080610; animation: tcf-helmet 14s ease-in-out infinite; }
.scn-towton-clifford-found .sword-stuck { position:absolute; bottom:30%; left:38%; width:3px; height:30px; background: #2e2c3a; transform: rotate(20deg); transform-origin: bottom; animation: tcf-sword 16s ease-in-out infinite; }
.scn-towton-clifford-found .cloak { position:absolute; bottom:10%; left:20%; width:60px; height:20px; background: linear-gradient(180deg, #1a1822 0%, #0e0c16 100%); border-radius: 60% 40% 0 0; filter: blur(2px); opacity:0.7; }
@keyframes tcf-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes tcf-tree { 0%,100% { transform: rotate(0) } 50% { transform: rotate(1deg) } }
@keyframes tcf-helmet { 0%,100% { transform: translateX(0) } 50% { transform: translateX(1px) } }
@keyframes tcf-sword { 0%,100% { transform: rotate(20deg) } 50% { transform: rotate(25deg) } }

/* parliament-house-revolt – calm bright interior */
.scn-parliament-house-revolt {
  background:
    linear-gradient(180deg, #c8b89a 0%, #dccba8 40%, #f5e8c8 100%),
    radial-gradient(ellipse at 50% 30%, #ffe8c0 0%, transparent 70%);
}
.scn-parliament-house-revolt .hall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, #8b7a65 0%, #bcaa8a 50%, #dcd0b8 100%);
  opacity: 0.4;
  animation: phr-ambient 20s ease-in-out infinite alternate;
}
.scn-parliament-house-revolt .pillar-left {
  position: absolute; left: 12%; top: 0; bottom: 0; width: 8%;
  background: linear-gradient(90deg, #6a5a45 0%, #b8a68a 30%, #d4c4a8 50%, #b8a68a 70%, #6a5a45 100%);
  border-radius: 6px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.2);
}
.scn-parliament-house-revolt .pillar-right {
  position: absolute; right: 12%; top: 0; bottom: 0; width: 8%;
  background: linear-gradient(90deg, #6a5a45 0%, #b8a68a 30%, #d4c4a8 50%, #b8a68a 70%, #6a5a45 100%);
  border-radius: 6px;
  box-shadow: -2px 0 8px rgba(0,0,0,0.2);
}
.scn-parliament-house-revolt .throne {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 32%; height: 45%;
  background: linear-gradient(165deg, #9a7a5a 0%, #7a5a3a 40%, #5a3a2a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.3), inset 0 0 20px rgba(255,230,180,0.1);
  animation: phr-throne 8s ease-in-out infinite alternate;
}
.scn-parliament-house-revolt .king {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 12%; height: 28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: phr-king 6s ease-in-out infinite alternate;
}
.scn-parliament-house-revolt .banner {
  position: absolute; top: 6%; right: 28%;
  width: 8%; height: 25%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 50%, #7a3012 100%);
  border-radius: 4px 4px 0 0;
  transform-origin: top center;
  animation: phr-banner 12s ease-in-out infinite;
}
.scn-parliament-house-revolt .candle {
  position: absolute; bottom: 30%; left: 20%;
  width: 2%; height: 10%;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 60%, #8a6a40 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  box-shadow: 0 0 16px 6px rgba(255,200,100,0.6), 0 0 32px 12px rgba(255,200,100,0.3);
  animation: phr-candle 3s ease-in-out infinite alternate;
}
@keyframes phr-ambient { 0% { opacity:0.35; } 50% { opacity:0.5; } 100% { opacity:0.4; } }
@keyframes phr-throne { 0% { transform:translateX(-50%) scaleY(1); } 50% { transform:translateX(-50%) scaleY(0.98) translateY(2px); } 100% { transform:translateX(-50%) scaleY(1); } }
@keyframes phr-king { 0% { transform:translateX(-50%) rotate(0deg); } 50% { transform:translateX(-50%) rotate(1deg) translateY(-1px); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes phr-banner { 0% { transform:rotate(-2deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(-2deg); } }
@keyframes phr-candle { 0% { box-shadow:0 0 12px 4px rgba(255,200,100,0.5),0 0 24px 8px rgba(255,200,100,0.2); } 50% { box-shadow:0 0 20px 8px rgba(255,200,100,0.7),0 0 40px 16px rgba(255,200,100,0.4); } 100% { box-shadow:0 0 14px 5px rgba(255,200,100,0.6),0 0 28px 10px rgba(255,200,100,0.3); } }

/* parliament-house-clifford-vow – dark mood bright interior */
.scn-parliament-house-clifford-vow {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #3a3040 40%, #6a5a4a 100%),
    radial-gradient(ellipse at 50% 20%, #b08a60 0%, transparent 70%);
}
.scn-parliament-house-clifford-vow .chamber-dark {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, #1a1a28 0%, #3a3038 50%, #5a4a3a 100%);
  opacity: 0.6;
  animation: phc-shadow 15s ease-in-out infinite alternate;
}
.scn-parliament-house-clifford-vow .clifford-figure {
  position: absolute; bottom: 10%; left: 42%;
  width: 14%; height: 40%;
  background: linear-gradient(180deg, #2a2018 0%, #0a0805 100%);
  border-radius: 60% 20% 10% 10% / 70% 30% 20% 20%;
  transform-origin: bottom center;
  animation: phc-kneel 5s ease-in-out infinite;
}
.scn-parliament-house-clifford-vow .sword {
  position: absolute; bottom: 18%; left: 48%;
  width: 2%; height: 30%;
  background: linear-gradient(180deg, #c8b89a 0%, #88765a 50%, #5a4a3a 100%);
  border-radius: 10% 10% 30% 30%;
  transform-origin: bottom center;
  animation: phc-sword 4s ease-in-out infinite alternate;
}
.scn-parliament-house-clifford-vow .vow-light {
  position: absolute; bottom: 30%; left: 38%;
  width: 20%; height: 20%;
  background: radial-gradient(circle at 50% 60%, rgba(255,220,160,0.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: phc-light 6s ease-in-out infinite alternate;
}
.scn-parliament-house-clifford-vow .shadow-column {
  position: absolute; left: 20%; top: 0; bottom: 20%;
  width: 6%;
  background: linear-gradient(90deg, #1a1a28 0%, #3a3040 40%, #1a1a28 100%);
  border-radius: 4px;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
}
.scn-parliament-house-clifford-vow .flag {
  position: absolute; top: 8%; right: 22%;
  width: 10%; height: 18%;
  background: linear-gradient(180deg, #5e1a1d 0%, #702243 50%, #5e1a1d 100%);
  border-radius: 2px 2px 0 0;
  transform-origin: top left;
  animation: phc-flag 10s ease-in-out infinite;
}
@keyframes phc-shadow { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.6; } }
@keyframes phc-kneel { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-3px) rotate(2deg); } 100% { transform:translateY(0) rotate(-2deg); } }
@keyframes phc-sword { 0% { transform:rotate(-5deg); } 50% { transform:rotate(5deg); } 100% { transform:rotate(-5deg); } }
@keyframes phc-light { 0% { opacity:0.5; transform:scale(0.9); } 50% { opacity:0.8; transform:scale(1.1); } 100% { opacity:0.6; transform:scale(0.95); } }
@keyframes phc-flag { 0% { transform:rotate(-2deg); } 50% { transform:rotate(3deg); } 100% { transform:rotate(-2deg); } }

/* parliament-house-armed-men – tense bright interior */
.scn-parliament-house-armed-men {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #7a5a3a 40%, #a08060 100%),
    radial-gradient(ellipse at 50% 50%, #e8d0b0 0%, transparent 60%);
}
.scn-parliament-house-armed-men .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #3a2a1a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-parliament-house-armed-men .soldier-a {
  position: absolute; bottom: 22%; left: 18%;
  width: 12%; height: 40%;
  background: linear-gradient(180deg, #2a1a10 0%, #4a2a1a 50%, #2a1a10 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  animation: pha-soldier 2s ease-in-out infinite alternate;
}
.scn-parliament-house-armed-men .soldier-b {
  position: absolute; bottom: 22%; left: 38%;
  width: 12%; height: 40%;
  background: linear-gradient(180deg, #2a1a10 0%, #4a2a1a 50%, #2a1a10 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  animation: pha-soldier 2.5s ease-in-out infinite alternate-reverse;
}
.scn-parliament-house-armed-men .soldier-c {
  position: absolute; bottom: 22%; left: 58%;
  width: 12%; height: 40%;
  background: linear-gradient(180deg, #2a1a10 0%, #4a2a1a 50%, #2a1a10 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  animation: pha-soldier 3s ease-in-out infinite alternate;
}
.scn-parliament-house-armed-men .spear {
  position: absolute; bottom: 25%; left: 48%;
  width: 1.5%; height: 35%;
  background: linear-gradient(180deg, #c8b89a 0%, #a09070 50%, #6a5a40 100%);
  border-radius: 10% 10% 30% 30%;
  transform-origin: bottom center;
  animation: pha-spear 1.5s ease-in-out infinite alternate;
}
.scn-parliament-house-armed-men .torch-glow {
  position: absolute; bottom: 60%; left: 50%; transform: translateX(-50%);
  width: 15%; height: 20%;
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, rgba(255,180,80,0.2) 50%, transparent 100%);
  border-radius: 50%;
  animation: pha-torch 3s ease-in-out infinite alternate;
}
@keyframes pha-soldier { 0% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-2px) rotate(1deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes pha-spear { 0% { transform:rotate(-3deg); } 50% { transform:rotate(3deg); } 100% { transform:rotate(-3deg); } }
@keyframes pha-torch { 0% { opacity:0.7; transform:translateX(-50%) scale(0.9); } 50% { opacity:1; transform:translateX(-50%) scale(1.1); } 100% { opacity:0.8; transform:translateX(-50%) scale(0.95); } }

/* parliament-house-nobles-abandon – tense bright interior */
.scn-parliament-house-nobles-abandon {
  background:
    linear-gradient(180deg, #5a4a3a 0%, #8a7a5a 40%, #b8a88a 100%),
    radial-gradient(ellipse at 50% 40%, #ffe0c0 0%, transparent 70%);
}
.scn-parliament-house-nobles-abandon .empty-hall {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, #4a3a2a 0%, #7a6a5a 100%);
  opacity: 0.5;
  animation: phn-void 12s ease-in-out infinite alternate;
}
.scn-parliament-house-nobles-abandon .king-single {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 16%; height: 35%;
  background: linear-gradient(180deg, #1a1008 0%, #3a2a1a 60%, #1a1008 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: phn-king 8s ease-in-out infinite alternate;
}
.scn-parliament-house-nobles-abandon .crown-above {
  position: absolute; bottom: 52%; left: 50%; transform: translateX(-50%);
  width: 10%; height: 5%;
  background: linear-gradient(180deg, #c8b89a 0%, #a09070 50%, #6a5a40 100%);
  border-radius: 50% 50% 0 0;
  animation: phn-crown 4s ease-in-out infinite alternate;
}
.scn-parliament-house-nobles-abandon .shadow-king {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%) translateY(2px);
  width: 16%; height: 35%;
  background: linear-gradient(0deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  opacity: 0.5;
  animation: phn-shadow 8s ease-in-out infinite alternate;
}
.scn-parliament-house-nobles-abandon .doorway {
  position: absolute; bottom: 10%; right: 10%;
  width: 20%; height: 60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 60%, #0a0805 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-parliament-house-nobles-abandon .departing-shadow {
  position: absolute; bottom: 15%; right: 30%;
  width: 10%; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.4) 100%);
  border-radius: 50% 50% 10% 10% / 40% 40% 20% 20%;
  animation: phn-depart 7s ease-in-out infinite;
}
@keyframes phn-void { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.5; } }
@keyframes phn-king { 0% { transform:translateX(-50%) rotate(-1deg); } 50% { transform:translateX(-50%) rotate(1deg) translateY(-2px); } 100% { transform:translateX(-50%) rotate(-1deg); } }
@keyframes phn-crown { 0% { transform:translateX(-50%) translateY(0); } 50% { transform:translateX(-50%) translateY(-1px); } 100% { transform:translateX(-50%) translateY(0); } }
@keyframes phn-shadow { 0% { transform:translateX(-50%) translateY(2px) scaleY(1); } 50% { transform:translateX(-50%) translateY(2px) scaleY(0.95); } 100% { transform:translateX(-50%) translateY(2px) scaleY(1); } }
@keyframes phn-depart { 0% { transform:translateX(0) scaleX(1); } 50% { transform:translateX(4px) scaleX(0.9); } 100% { transform:translateX(0) scaleX(1); } }

.scn-parliament-house-rear-guard {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 30%, #7a6a5a 60%, #5a4a3a 100%),
    radial-gradient(ellipse at 50% 20%, #8a7a6a 0%, transparent 70%);
}
.scn-parliament-house-rear-guard .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 100%);
  animation: ph1-wall 10s ease-in-out infinite alternate;
}
.scn-parliament-house-rear-guard .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-parliament-house-rear-guard .throne {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #8a7040 0%, #4a3a20 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 8px 8px 20px rgba(0,0,0,0.6), inset 0 -20px 30px rgba(0,0,0,0.3);
  animation: ph1-throne 4s ease-in-out infinite;
}
.scn-parliament-house-rear-guard .warrior-a {
  position: absolute; bottom: 28%; left: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ph1-warrior 2s ease-in-out infinite alternate;
}
.scn-parliament-house-rear-guard .warrior-b {
  position: absolute; bottom: 28%; right: 20%; width: 32px; height: 72px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ph1-warrior 2s ease-in-out infinite alternate-reverse;
}
.scn-parliament-house-rear-guard .spear-banner {
  position: absolute; bottom: 50%; left: 30%; width: 4px; height: 80px;
  background: #4a3a2a;
  transform: rotate(-15deg);
  animation: ph1-spear 3s ease-in-out infinite;
}
.scn-parliament-house-rear-guard .spear-banner::after {
  content: ''; position: absolute; top: 0; left: -10px; width: 24px; height: 30px;
  background: #a0461a; /* rust */
  border-radius: 0 0 50% 50%;
}
.scn-parliament-house-rear-guard .window-light {
  position: absolute; top: 15%; right: 10%; width: 50px; height: 70px;
  background: radial-gradient(ellipse, rgba(255,220,180,0.8) 0%, rgba(255,200,150,0.2) 70%);
  border-radius: 10% 10% 40% 40%;
  filter: blur(4px);
  animation: ph1-window 6s ease-in-out infinite alternate;
}
.scn-parliament-house-rear-guard .shadow-pool {
  position: absolute; bottom: 0; left: 30%; right: 30%; height: 20%;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: ph1-shadow 8s ease-in-out infinite;
}
@keyframes ph1-wall { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes ph1-throne { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) scale(1.01) } }
@keyframes ph1-warrior { 0% { transform: rotate(-2deg) } 100% { transform: rotate(2deg) } }
@keyframes ph1-spear { 0%,100% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-13deg) translateY(-3px) } }
@keyframes ph1-window { 0% { opacity:0.6; transform: scaleX(1) } 50% { opacity:1; transform: scaleX(1.1) } 100% { opacity:0.7; transform: scaleX(0.95) } }
@keyframes ph1-shadow { 0%,100% { opacity:0.6 } 50% { opacity:1 } }

.scn-parliament-house-king-henry-arrival {
  background:
    linear-gradient(180deg, #3a3a2a 0%, #5a5a4a 30%, #7a7a6a 60%, #5a5a4a 100%),
    radial-gradient(ellipse at 50% 20%, #9a8a7a 0%, transparent 70%);
}
.scn-parliament-house-king-henry-arrival .bg-arch {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a4a3a 0%, #6a6a5a 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  animation: ph2-arch 12s ease-in-out infinite alternate;
}
.scn-parliament-house-king-henry-arrival .carpet {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(135deg, #4a2a2a 0%, #6a4a4a 100%);
  border-radius: 60% 60% 0 0 / 100% 100% 0 0;
  animation: ph2-carpet 8s ease-in-out infinite alternate;
}
.scn-parliament-house-king-henry-arrival .throne {
  position: absolute; bottom: 25%; left: 50%; width: 90px; height: 110px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #9a7040 0%, #5a3a20 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.5);
}
.scn-parliament-house-king-henry-arrival .king {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a060 0%, #8a6020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ph2-king 5s ease-in-out infinite;
}
.scn-parliament-house-king-henry-arrival .noble-l {
  position: absolute; bottom: 28%; left: 20%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ph2-noble 4s ease-in-out infinite alternate;
}
.scn-parliament-house-king-henry-arrival .noble-r {
  position: absolute; bottom: 28%; right: 20%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ph2-noble 4s ease-in-out infinite alternate-reverse;
}
.scn-parliament-house-king-henry-arrival .crown-light {
  position: absolute; bottom: 55%; left: 50%; width: 20px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #c08040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #c08040;
  animation: ph2-crown 3s ease-in-out infinite alternate;
}
.scn-parliament-house-king-henry-arrival .soft-beam {
  position: absolute; top: 10%; left: 30%; right: 30%; height: 50%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3), transparent);
  filter: blur(10px);
  animation: ph2-beam 10s ease-in-out infinite alternate;
}
@keyframes ph2-arch { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes ph2-carpet { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes ph2-king { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-3px) scale(1.02) } }
@keyframes ph2-noble { 0% { transform: rotate(-1deg) } 100% { transform: rotate(1deg) } }
@keyframes ph2-crown { 0% { opacity:0.7; transform: translateX(-50%) scale(0.9) } 100% { opacity:1; transform: translateX(-50%) scale(1.1) } }
@keyframes ph2-beam { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

.scn-parliament-house-york-defiance-continued {
  background:
    linear-gradient(180deg, #2a1a2a 0%, #4a3a4a 30%, #6a5a6a 60%, #4a3a4a 100%),
    radial-gradient(ellipse at 50% 20%, #7a6a7a 0%, transparent 70%);
}
.scn-parliament-house-york-defiance-continued .bg-pillar {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a3a 0%, #5a4a5a 100%);
  border-radius: 0 0 10% 10%;
}
.scn-parliament-house-york-defiance-continued .step {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-parliament-house-york-defiance-continued .chair-splinter {
  position: absolute; bottom: 25%; left: 30%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #6a5020 0%, #3a2a10 100%);
  border-radius: 20% 20% 5% 5%;
  transform: rotate(15deg);
  box-shadow: 0 5px 15px rgba(0,0,0,0.7);
  animation: ph3-chair 2s ease-in-out infinite alternate;
}
.scn-parliament-house-york-defiance-continued .york-figure {
  position: absolute; bottom: 28%; left: 45%; width: 35px; height: 75px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ph3-york 1.5s ease-in-out infinite alternate;
}
.scn-parliament-house-york-defiance-continued .fist {
  position: absolute; bottom: 60%; left: 48%; width: 16px; height: 20px;
  background: #2a2a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ph3-fist 0.8s ease-in-out infinite alternate;
}
.scn-parliament-house-york-defiance-continued .clifford-sil {
  position: absolute; bottom: 28%; right: 20%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ph3-clifford 2.5s ease-in-out infinite alternate;
}
.scn-parliament-house-york-defiance-continued .spark-lines {
  position: absolute; top: 20%; left: 40%; right: 40%; height: 10%;
  background: linear-gradient(90deg, transparent, #ffa040 50%, transparent);
  filter: blur(3px);
  animation: ph3-spark 0.5s ease-in-out infinite alternate;
}
.scn-parliament-house-york-defiance-continued .anger-halo {
  position: absolute; bottom: 50%; left: 50%; width: 120px; height: 120px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(180,80,40,0.3) 0%, transparent 70%);
  animation: ph3-halo 2s ease-in-out infinite alternate;
}
@keyframes ph3-chair { 0% { transform: rotate(15deg) } 100% { transform: rotate(12deg) } }
@keyframes ph3-york { 0% { transform: rotate(-3deg) scale(1) } 100% { transform: rotate(3deg) scale(1.02) } }
@keyframes ph3-fist { 0% { transform: translateY(0) scale(1) } 100% { transform: translateY(-5px) scale(1.1) } }
@keyframes ph3-clifford { 0% { transform: rotate(-1deg) } 100% { transform: rotate(1deg) } }
@keyframes ph3-spark { 0% { opacity:0.3 } 100% { opacity:1 } }
@keyframes ph3-halo { 0% { opacity:0.5; transform: translate(-50%,-50%) scale(0.9) } 100% { opacity:1; transform: translate(-50%,-50%) scale(1.1) } }

.scn-parliament-house-argument {
  background:
    linear-gradient(180deg, #1a2a2a 0%, #3a4a4a 30%, #5a6a6a 60%, #3a4a4a 100%),
    radial-gradient(ellipse at 50% 20%, #6a7a7a 0%, transparent 70%);
}
.scn-parliament-house-argument .bg-cornice {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a3a3a 0%, #4a5a5a 100%);
  border-radius: 0 0 20% 20%;
}
.scn-parliament-house-argument .table-center {
  position: absolute; bottom: 15%; left: 25%; right: 25%; height: 20%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 50% 50%;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.4);
  animation: ph4-table 6s ease-in-out infinite alternate;
}
.scn-parliament-house-argument .scroll {
  position: absolute; bottom: 25%; left: 48%; width: 40px; height: 15px;
  background: #8a7a5a;
  border-radius: 10% 10% 30% 30%;
  transform: rotate(-5deg);
  animation: ph4-scroll 3s ease-in-out infinite;
}
.scn-parliament-house-argument .henry-sil {
  position: absolute; bottom: 22%; left: 30%; width: 32px; height: 65px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ph4-henry 2s ease-in-out infinite alternate;
}
.scn-parliament-house-argument .york-sil {
  position: absolute; bottom: 22%; left: 50%; width: 32px; height: 68px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ph4-york 1.8s ease-in-out infinite alternate-reverse;
}
.scn-parliament-house-argument .warwick-sil {
  position: absolute; bottom: 22%; right: 30%; width: 32px; height: 66px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ph4-warwick 2.2s ease-in-out infinite alternate;
}
.scn-parliament-house-argument .shadow-dance {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: ph4-shadow 4s ease-in-out infinite alternate;
}
.scn-parliament-house-argument .mace {
  position: absolute; bottom: 35%; left: 20%; width: 8px; height: 40px;
  background: #8a7a4a;
  transform: rotate(20deg);
  animation: ph4-mace 3s ease-in-out infinite;
}
@keyframes ph4-table { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes ph4-scroll { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } }
@keyframes ph4-henry { 0% { transform: rotate(-1deg) } 100% { transform: rotate(1deg) } }
@keyframes ph4-york { 0% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes ph4-warwick { 0% { transform: rotate(-1.5deg) } 100% { transform: rotate(1.5deg) } }
@keyframes ph4-shadow { 0% { opacity:0.7 } 100% { opacity:1 } }
@keyframes ph4-mace { 0%,100% { transform: rotate(20deg) } 50% { transform: rotate(22deg) } }

/* scene field-wakefield-york-speech */
.scn-field-wakefield-york-speech {
  background: linear-gradient(180deg, #2d2d3f 0%, #1f1f2e 40%, #14141f 100%), radial-gradient(ellipse at 30% 50%, #3a3a50 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-field-wakefield-york-speech .sky-overcast { position:absolute; inset:0; background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3e 70%, #1a1a2a 100%); animation: fys-sky 14s ease-in-out infinite alternate; }
.scn-field-wakefield-york-speech .hills-distant { position:absolute; bottom:25%; left:0; right:0; height:50%; background: linear-gradient(180deg, #2e3a2e 0%, #1a241a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); animation: fys-hills 20s ease-in-out infinite; }
.scn-field-wakefield-york-speech .tide-wave { position:absolute; bottom:20%; left:-10%; width:120%; height:20%; background: radial-gradient(ellipse at 50% 100%, #3a4a5e 0%, transparent 70%), linear-gradient(180deg, #3a4a5e 0%, #2a3a4a 100%); border-radius: 50% 50% 0 0; filter: blur(2px); animation: fys-wave 12s ease-in-out infinite; }
.scn-field-wakefield-york-speech .swan-shape { position:absolute; bottom:22%; left:55%; width:50px; height:30px; background: radial-gradient(ellipse at 30% 50%, #d4d4d4 0%, #a0a0b0 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom left; animation: fys-swan 8s ease-in-out infinite; }
.scn-field-wakefield-york-speech .orator { position:absolute; bottom:25%; left:25%; width:40px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 6px 10px rgba(0,0,0,.5); animation: fys-orator 6s ease-in-out infinite; }
.scn-field-wakefield-york-speech .cloud-mist { position:absolute; top:10%; left:-20%; width:140%; height:40%; background: radial-gradient(ellipse at 50% 50%, rgba(180,180,190,.3) 0%, transparent 70%); filter: blur(8px); animation: fys-mist 30s linear infinite; }
@keyframes fys-sky    { 0% { opacity:.7; transform: scale(1.02) } 50% { opacity:1; transform: scale(1) } 100% { opacity:.8; transform: scale(1.03) } }
@keyframes fys-hills  { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes fys-wave   { 0% { transform: translateX(-10%) rotate(-2deg) } 50% { transform: translateX(5%) rotate(0deg) } 100% { transform: translateX(-10%) rotate(2deg) } }
@keyframes fys-swan   { 0% { transform: translate(0,0) rotate(0deg) scaleX(1) } 25% { transform: translate(-10px,-8px) rotate(-5deg) scaleX(.9) } 50% { transform: translate(-20px,-2px) rotate(3deg) scaleX(1.1) } 75% { transform: translate(-5px,-6px) rotate(0deg) scaleX(.95) } 100% { transform: translate(0,0) rotate(0deg) scaleX(1) } }
@keyframes fys-orator { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes fys-mist   { 0% { transform: translateX(0) } 100% { transform: translateX(50%) } }

/* scene field-wakefield-capture */
.scn-field-wakefield-capture {
  background: linear-gradient(180deg, #1c1c2a 0%, #12121a 50%, #0d0d14 100%), radial-gradient(ellipse at 50% 30%, #2a2a3c 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-field-wakefield-capture .sky-gloom { position:absolute; inset:0; background: linear-gradient(180deg, #3a3a4e 0%, #1e1e2e 60%, #0e0e1a 100%); animation: fc-sky 12s ease-in-out infinite alternate; }
.scn-field-wakefield-capture .ground-battle { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a2e2a 0%, #1a1e1a 100%); border-radius: 20% 80% 0 0 / 40% 60% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.7); }
.scn-field-wakefield-capture .figure-york { position:absolute; bottom:22%; left:30%; width:35px; height:60px; background: linear-gradient(180deg, #a0461a 0%, #702243 100%); /* desaturated red tone */ border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 4px 8px rgba(0,0,0,.5), 0 6px 12px rgba(0,0,0,.6); animation: fc-figure 5s ease-in-out infinite; }
.scn-field-wakefield-capture .figure-margaret { position:absolute; bottom:24%; left:55%; width:30px; height:65px; background: linear-gradient(180deg, #3a2a3e 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); animation: fc-figure 6s ease-in-out infinite reverse; }
.scn-field-wakefield-capture .figure-clifford { position:absolute; bottom:26%; left:60%; width:35px; height:70px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: skewX(-10deg); animation: fc-figure 4s ease-in-out infinite; }
.scn-field-wakefield-capture .banner-torn { position:absolute; top:15%; left:35%; width:25px; height:40px; background: linear-gradient(180deg, #8a4a3a 0%, #5a2a1a 100%); clip-path: polygon(0 0, 100% 0, 100% 70%, 60% 80%, 40% 100%, 0 70%); filter: drop-shadow(2px 4px 6px rgba(0,0,0,.5)); animation: fc-banner 7s ease-in-out infinite; }
.scn-field-wakefield-capture .sparks-dim { position:absolute; top:45%; left:50%; width:8px; height:8px; background: #c8553d; border-radius:50%; box-shadow: 0 0 10px 4px rgba(200,85,61,.3), 0 0 20px 8px rgba(200,85,61,.1); animation: fc-spark 2s ease-in-out infinite; }
@keyframes fc-sky    { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fc-figure { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes fc-banner { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes fc-spark  { 0% { opacity:0; transform: translate(0,0) scale(.5) } 30% { opacity:1; transform: translate(10px,-12px) scale(1.2) } 60% { opacity:.7; transform: translate(-8px,-18px) scale(1) } 100% { opacity:0; transform: translate(0,-24px) scale(.3) } }

/* scene field-wakefield-mockery */
.scn-field-wakefield-mockery {
  background: linear-gradient(180deg, #1e1e2a 0%, #13131c 50%, #0a0a10 100%), radial-gradient(ellipse at 50% 20%, #2a2a3c 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-field-wakefield-mockery .sky-low { position:absolute; inset:0; background: linear-gradient(180deg, #34344a 0%, #1a1a28 70%, #0a0a14 100%); animation: fm-sky 16s ease-in-out infinite alternate; }
.scn-field-wakefield-mockery .wall-stone { position:absolute; bottom:20%; left:10%; right:50%; height:40%; background: repeating-linear-gradient(0deg, #3a3a4a 0px, #3a3a4a 2px, #2a2a3a 2px, #2a2a3a 4px); border-radius: 0 30% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.5); filter: blur(.5px); }
.scn-field-wakefield-mockery .figure-clifford-mock { position:absolute; bottom:25%; left:18%; width:40px; height:75px; background: linear-gradient(180deg, #3a2e2e 0%, #1a1212 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: fm-clifford 5s ease-in-out infinite; }
.scn-field-wakefield-mockery .figure-york-bound { position:absolute; bottom:22%; left:35%; width:35px; height:65px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-3deg); animation: fm-york 6s ease-in-out infinite; }
.scn-field-wakefield-mockery .falcon-soar { position:absolute; top:10%; left:40%; width:30px; height:20px; background: radial-gradient(ellipse at 50% 50%, #2a2a3e 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; clip-path: polygon(0 50%, 30% 0, 70% 0, 100% 50%, 70% 100%, 30% 100%); transform-origin: bottom center; animation: fm-falcon 8s ease-in-out infinite; }
.scn-field-wakefield-mockery .dove-fall { position:absolute; top:5%; left:60%; width:20px; height:15px; background: radial-gradient(ellipse at 50% 50%, #b0b0b8 0%, #7a7a8a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fm-dove 4s ease-in infinite; }
.scn-field-wakefield-mockery .dust-swirl { position:absolute; bottom:10%; left:30%; width:60px; height:40px; background: radial-gradient(ellipse at 30% 50%, rgba(150,140,130,.25) 0%, transparent 70%); filter: blur(6px); animation: fm-dust 15s linear infinite; }
@keyframes fm-sky     { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes fm-clifford { 0%,100% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-3px) } }
@keyframes fm-york    { 0%,100% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } }
@keyframes fm-falcon  { 0% { transform: translate(0,0) rotate(-5deg) scale(1) } 33% { transform: translate(20px,-30px) rotate(5deg) scale(1.1) } 66% { transform: translate(-10px,-50px) rotate(-3deg) scale(.95) } 100% { transform: translate(0,0) rotate(-5deg) scale(1) } }
@keyframes fm-dove    { 0% { transform: translateY(0) rotate(0deg); opacity:1 } 50% { transform: translateY(40px) rotate(20deg); opacity:.7 } 100% { transform: translateY(80px) rotate(40deg); opacity:0 } }
@keyframes fm-dust    { 0% { transform: translateX(-20px) scale(1) } 50% { transform: translateX(20px) scale(1.2) } 100% { transform: translateX(-20px) scale(1) } }

/* scene field-wakefield-york-captive */
.scn-field-wakefield-york-captive {
  background: linear-gradient(180deg, #161624 0%, #0e0e18 50%, #06060c 100%), radial-gradient(ellipse at 50% 50%, #1e1e2e 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-field-wakefield-york-captive .sky-iron { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3e 0%, #141422 70%, #080810 100%); animation: fyc-sky 18s ease-in-out infinite alternate; }
.scn-field-wakefield-york-captive .ground-uneven { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1e221e 0%, #0e120e 100%); border-radius: 40% 60% 0 0 / 50% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.7); }
.scn-field-wakefield-york-captive .figure-york-kneeling { position:absolute; bottom:18%; left:35%; width:35px; height:50px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg) scaleY(.85); animation: fyc-kneel 7s ease-in-out infinite; }
.scn-field-wakefield-york-captive .figure-northumberland { position:absolute; bottom:22%; left:45%; width:40px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: skewX(5deg); animation: fyc-north 5s ease-in-out infinite; }
.scn-field-wakefield-york-captive .figure-clifford-spear { position:absolute; bottom:24%; left:55%; width:35px; height:75px; background: linear-gradient(180deg, #3a2e2e 0%, #1a1212 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(.95); animation: fyc-clifford 6s ease-in-out infinite; }
.scn-field-wakefield-york-captive .rain-veil { position:absolute; inset:0; background: repeating-linear-gradient(0deg, rgba(180,180,200,.08) 0px, rgba(180,180,200,.08) 1px, transparent 1px, transparent 4px), repeating-linear-gradient(90deg, rgba(180,180,200,.05) 0px, rgba(180,180,200,.05) 1px, transparent 1px, transparent 8px); pointer-events: none; animation: fyc-rain 1.2s linear infinite; }
.scn-field-wakefield-york-captive .chain-link { position:absolute; bottom:20%; left:34%; width:8px; height:40px; background: radial-gradient(ellipse at 50% 50%, #5a5a6a 0%, #2a2a3a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 6px rgba(0,0,0,.4); animation: fyc-chain 3s ease-in-out infinite; }
@keyframes fyc-sky      { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fyc-kneel    { 0%,100% { transform: rotate(-10deg) scaleY(.85) translateY(0) } 50% { transform: rotate(-8deg) scaleY(.88) translateY(-2px) } }
@keyframes fyc-north    { 0%,100% { transform: skewX(5deg) translateY(0) } 50% { transform: skewX(3deg) translateY(-3px) } }
@keyframes fyc-clifford { 0%,100% { transform: scaleX(.95) translateY(0) } 50% { transform: scaleX(1) translateY(-4px) } }
@keyframes fyc-rain     { 0% { background-position: 0 0; } 100% { background-position: -20px 20px; } }
@keyframes fyc-chain    { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }

/* france-posts-arrive */
.scn-france-posts-arrive {
  background:
    linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 30%, #5a5a6a 60%, #3a3a4a 100%),
    radial-gradient(ellipse at 30% 50%, #6a6a7a 0%, transparent 70%);
}
.scn-france-posts-arrive .wall-left {
  position: absolute; top: 0; left: 0; width: 35%; height: 100%;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  box-shadow: inset -4px 0 12px rgba(0,0,0,0.3);
}
.scn-france-posts-arrive .wall-right {
  position: absolute; top: 0; right: 0; width: 40%; height: 100%;
  background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 100%);
  box-shadow: inset 4px 0 12px rgba(0,0,0,0.3);
}
.scn-france-posts-arrive .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-france-posts-arrive .window {
  position: absolute; top: 12%; right: 8%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #8a9ab0 0%, #6a7a90 100%);
  border: 4px solid #3a3a4a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.2), 0 0 30px rgba(138,154,176,0.4);
  animation: fpa-window 8s ease-in-out infinite alternate;
}
.scn-france-posts-arrive .door {
  position: absolute; bottom: 30%; left: 10%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  transform: perspective(400px) rotateY(10deg);
  animation: fpa-door 12s ease-in-out infinite;
}
.scn-france-posts-arrive .post {
  position: absolute; bottom: 30%; left: 28%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fpa-post-walk 6s ease-in-out infinite;
}
.scn-france-posts-arrive .horn {
  position: absolute; bottom: 42%; left: 30%; width: 18px; height: 8px;
  background: radial-gradient(ellipse at 30% 50%, #c8a040 0%, #8a6020 100%);
  border-radius: 50% 50% 50% 50% / 80% 80% 20% 20%;
  transform: rotate(-30deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: fpa-horn 2s ease-in-out infinite;
}
.scn-france-posts-arrive .letters {
  position: absolute; bottom: 40%; left: 35%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a880 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: fpa-letters 6s ease-in-out infinite;
}
.scn-france-posts-arrive .candle {
  position: absolute; bottom: 28%; left: 50%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%);
  border-radius: 50% 50% 30% 30% / 20% 20% 60% 60%;
  box-shadow: 0 0 20px 6px rgba(224,192,128,0.5), 0 0 40px 12px rgba(224,192,128,0.2);
  animation: fpa-candle-glow 3s ease-in-out infinite alternate;
}
@keyframes fpa-window { 0% { opacity:0.7; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.02); } 100% { opacity:0.8; transform:scaleY(0.98); } }
@keyframes fpa-door { 0% { transform: perspective(400px) rotateY(10deg); } 50% { transform: perspective(400px) rotateY(5deg); } 100% { transform: perspective(400px) rotateY(10deg); } }
@keyframes fpa-post-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(6px) rotate(2deg); } 50% { transform: translateX(12px) rotate(-1deg); } 75% { transform: translateX(18px) rotate(1deg); } 100% { transform: translateX(24px) rotate(0deg); } }
@keyframes fpa-horn { 0% { transform: rotate(-30deg) scale(1); } 50% { transform: rotate(-25deg) scale(1.1); } 100% { transform: rotate(-35deg) scale(0.95); } }
@keyframes fpa-letters { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-3px) rotate(5deg); } 66% { transform: translateY(2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fpa-candle-glow { 0% { box-shadow: 0 0 20px 6px rgba(224,192,128,0.5), 0 0 40px 12px rgba(224,192,128,0.2); } 50% { box-shadow: 0 0 30px 10px rgba(224,192,128,0.7), 0 0 60px 20px rgba(224,192,128,0.4); } 100% { box-shadow: 0 0 18px 5px rgba(224,192,128,0.4), 0 0 35px 10px rgba(224,192,128,0.15); } }

/* france-warwick-renounces */
.scn-france-warwick-renounces {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #2a2a3a 100%),
    radial-gradient(ellipse at 70% 40%, #3a3a4a 0%, transparent 70%);
}
.scn-france-warwick-renounces .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
}
.scn-france-warwick-renounces .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
}
.scn-france-warwick-renounces .table {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-france-warwick-renounces .warwick {
  position: absolute; bottom: 25%; left: 40%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fwr-warwick 15s ease-in-out infinite;
}
.scn-france-warwick-renounces .paper {
  position: absolute; bottom: 45%; left: 52%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #e0d0b0 0%, #b0a080 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: fwr-paper 8s ease-in-out infinite;
}
.scn-france-warwick-renounces .candle {
  position: absolute; bottom: 40%; left: 55%; width: 5px; height: 15px;
  background: linear-gradient(180deg, #d0b080 0%, #a08040 100%);
  border-radius: 50% 50% 30% 30% / 20% 20% 60% 60%;
  box-shadow: 0 0 15px 4px rgba(208,176,128,0.5), 0 0 30px 8px rgba(208,176,128,0.2);
  animation: fwr-candle 4s ease-in-out infinite alternate;
}
.scn-france-warwick-renounces .shadow {
  position: absolute; bottom: 25%; left: 30%; width: 50px; height: 60px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(8px);
  animation: fwr-shadow 6s ease-in-out infinite;
}
@keyframes fwr-warwick { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-4px) rotate(-2deg); } 66% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fwr-paper { 0% { transform: translateY(0) rotate(0deg) scale(1); } 25% { transform: translateY(-3px) rotate(5deg) scale(1.05); } 50% { transform: translateY(-6px) rotate(-5deg) scale(1.1); } 75% { transform: translateY(-2px) rotate(3deg) scale(1.02); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes fwr-candle { 0% { box-shadow: 0 0 15px 4px rgba(208,176,128,0.5), 0 0 30px 8px rgba(208,176,128,0.2); } 50% { box-shadow: 0 0 25px 8px rgba(208,176,128,0.7), 0 0 50px 15px rgba(208,176,128,0.4); opacity: 0.9; } 100% { box-shadow: 0 0 12px 3px rgba(208,176,128,0.4), 0 0 25px 6px rgba(208,176,128,0.1); } }
@keyframes fwr-shadow { 0% { transform: scale(1); opacity: 0.4; } 50% { transform: scale(1.1); opacity: 0.6; } 100% { transform: scale(0.95); opacity: 0.3; } }

/* france-margaret-forgives */
.scn-france-margaret-forgives {
  background:
    linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 40%, #6a4a3a 80%, #5a3a2a 100%),
    radial-gradient(ellipse at 50% 30%, #8a5a3a 0%, transparent 60%);
}
.scn-france-margaret-forgives .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
}
.scn-france-margaret-forgives .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-france-margaret-forgives .window {
  position: absolute; top: 10%; left: 10%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #c0a880 0%, #a08060 100%);
  border: 4px solid #3a1a0a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,200,150,0.3), 0 0 40px rgba(192,168,128,0.3);
  animation: fmf-window 8s ease-in-out infinite alternate;
}
.scn-france-margaret-forgives .margaret {
  position: absolute; bottom: 25%; left: 42%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #6a3a2a 0%, #4a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fmf-margaret 12s ease-in-out infinite;
}
.scn-france-margaret-forgives .warwick {
  position: absolute; bottom: 25%; left: 50%; width: 24px; height: 58px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fmf-warwick 12s ease-in-out infinite reverse;
}
.scn-france-margaret-forgives .embrace {
  position: absolute; bottom: 40%; left: 44%; width: 30px; height: 20px;
  background: linear-gradient(180deg, rgba(100,60,40,0.6) 0%, rgba(60,30,20,0.4) 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: fmf-embrace 6s ease-in-out infinite;
}
.scn-france-margaret-forgives .glow {
  position: absolute; bottom: 30%; left: 45%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,200,150,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: fmf-glow 5s ease-in-out infinite alternate;
}
@keyframes fmf-window { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes fmf-margaret { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fmf-warwick { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fmf-embrace { 0% { transform: scale(1) rotate(0deg); opacity: 0.6; } 50% { transform: scale(1.15) rotate(3deg); opacity: 0.8; } 100% { transform: scale(1) rotate(0deg); opacity: 0.6; } }
@keyframes fmf-glow { 0% { transform: scale(1); opacity: 0.3; } 50% { transform: scale(1.2); opacity: 0.5; } 100% { transform: scale(0.9); opacity: 0.2; } }

/* france-alliance-formed */
.scn-france-alliance-formed {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #5a4a3a 100%),
    radial-gradient(ellipse at 60% 40%, #6a5a4a 0%, transparent 60%);
}
.scn-france-alliance-formed .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
}
.scn-france-alliance-formed .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 90% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-france-alliance-formed .table {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-france-alliance-formed .hand1 {
  position: absolute; bottom: 42%; left: 40%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 50% 50% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  animation: faf-hand1 8s ease-in-out infinite;
}
.scn-france-alliance-formed .hand2 {
  position: absolute; bottom: 42%; left: 48%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 50% 50% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  animation: faf-hand2 8s ease-in-out infinite 0.5s;
}
.scn-france-alliance-formed .hand3 {
  position: absolute; bottom: 42%; left: 56%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 50% 50% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  animation: faf-hand3 8s ease-in-out infinite 1s;
}
.scn-france-alliance-formed .banner {
  position: absolute; top: 10%; right: 15%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #6a3a2a 0%, #4a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: faf-banner 15s ease-in-out infinite;
}
.scn-france-alliance-formed .candle {
  position: absolute; bottom: 35%; left: 30%; width: 5px; height: 14px;
  background: linear-gradient(180deg, #d0b080 0%, #a08040 100%);
  border-radius: 50% 50% 30% 30% / 20% 20% 60% 60%;
  box-shadow: 0 0 18px 5px rgba(208,176,128,0.5), 0 0 35px 10px rgba(208,176,128,0.2);
  animation: faf-candle 4s ease-in-out infinite alternate;
}
@keyframes faf-hand1 { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes faf-hand2 { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes faf-hand3 { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes faf-banner { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-2px) rotate(-3deg); } 66% { transform: translateX(2px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes faf-candle { 0% { box-shadow: 0 0 18px 5px rgba(208,176,128,0.5), 0 0 35px 10px rgba(208,176,128,0.2); } 50% { box-shadow: 0 0 28px 9px rgba(208,176,128,0.7), 0 0 55px 18px rgba(208,176,128,0.4); } 100% { box-shadow: 0 0 15px 4px rgba(208,176,128,0.4), 0 0 30px 8px rgba(208,176,128,0.1); } }

/* ===== sandal-castle-preparations (scp) ===== */
.scn-sandal-castle-preparations {
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-sandal-castle-preparations .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 80%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,.7);
  animation: scp-wall 20s ease-in-out infinite alternate;
}
.scn-sandal-castle-preparations .table {
  position: absolute; bottom: 18%; left: 15%; width: 70%; height: 12%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
}
.scn-sandal-castle-preparations .candle {
  position: absolute; bottom: 30%; left: 40%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: scp-candle 4s ease-in-out infinite;
}
.scn-sandal-castle-preparations .flame {
  position: absolute; bottom: 43%; left: 40%; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #ffda80 0%, #ff8833 40%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  box-shadow: 0 0 20px 6px #ff8833, 0 0 50px 12px rgba(255,136,51,.3);
  animation: scp-flame 0.5s ease-in-out infinite alternate;
}
.scn-sandal-castle-preparations .figure-l {
  position: absolute; bottom: 26%; left: 20%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scp-fig-l 3s ease-in-out infinite;
}
.scn-sandal-castle-preparations .figure-r {
  position: absolute; bottom: 26%; right: 20%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scp-fig-r 2.8s ease-in-out infinite;
}
.scn-sandal-castle-preparations .chair {
  position: absolute; bottom: 22%; left: 48%; width: 10px; height: 20px;
  background: #4a2a0a;
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
@keyframes scp-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes scp-candle { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes scp-flame { 0% { transform: scaleY(1) scaleX(1) translateY(0); opacity:.9 } 50% { transform: scaleY(1.1) scaleX(.9) translateY(-2px); opacity:1 } 100% { transform: scaleY(1) scaleX(1) translateY(0); opacity:.85 } }
@keyframes scp-fig-l { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes scp-fig-r { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(2deg) } }

/* ===== sandal-castle-arguments (sca) ===== */
.scn-sandal-castle-arguments {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 40%, #0a0606 100%), radial-gradient(ellipse at 80% 20%, #3a1a0a 0%, transparent 60%);
}
.scn-sandal-castle-arguments .bg-shadow {
  position: absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0606 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,.8);
  animation: sca-shadow 12s ease-in-out infinite alternate;
}
.scn-sandal-castle-arguments .throne {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 35px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,.6);
}
.scn-sandal-castle-arguments .crown {
  position: absolute; bottom: 45%; left: 50%; width: 16px; height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a050 0%, #a08030 100%);
  clip-path: polygon(0% 100%, 20% 0%, 40% 60%, 60% 0%, 80% 60%, 100% 0%, 100% 100%);
  box-shadow: 0 2px 6px rgba(200,160,80,.5);
  animation: sca-crown 4s ease-in-out infinite alternate;
}
.scn-sandal-castle-arguments .chain {
  position: absolute; bottom: 28%; left: 45%; width: 20px; height: 4px;
  background: linear-gradient(90deg, #8a7030 0%, #6a5020 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: sca-chain 2s ease-in-out infinite;
}
.scn-sandal-castle-arguments .arg-figure {
  position: absolute; bottom: 18%; left: 60%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0404 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sca-fig 3s ease-in-out infinite;
}
.scn-sandal-castle-arguments .scroll {
  position: absolute; bottom: 22%; left: 35%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #d4c090 0%, #b09060 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  transform: rotate(-15deg);
  animation: sca-scroll 6s ease-in-out infinite alternate;
}
@keyframes sca-shadow { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sca-crown { 0% { transform: translateX(-50%) translateY(0) rotate(-3deg) } 50% { transform: translateX(-50%) translateY(-1px) rotate(3deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg) } }
@keyframes sca-chain { 0% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-5deg) } }
@keyframes sca-fig { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(5deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-4px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sca-scroll { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-2px) } 100% { transform: rotate(-20deg) translateY(0) } }

/* ===== item-white-rose (iwr) ===== */
.scn-item-white-rose {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 60%, #0a0a0a 100%), radial-gradient(ellipse at 50% 70%, #2a1a1a 0%, transparent 80%);
}
.scn-item-white-rose .wr-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 60% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: iwr-bg 15s ease-in-out infinite alternate;
}
.scn-item-white-rose .pedestal {
  position: absolute; bottom: 18%; left: 50%; width: 50px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-item-white-rose .rose {
  position: absolute; bottom: 38%; left: 50%; width: 22px; height: 28px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 30% 40%, #f0e0d0 0%, #d4c0a8 40%, #a08070 80%);
  border-radius: 50% 50% 40% 40% / 60% 40% 50% 50%;
  box-shadow: 0 0 12px 4px rgba(200,180,160,.3), 0 0 30px 8px rgba(200,180,160,.1);
  animation: iwr-rose 5s ease-in-out infinite alternate;
}
.scn-item-white-rose .leaf {
  position: absolute; bottom: 34%; left: 45%; width: 12px; height: 8px;
  background: linear-gradient(180deg, #4a6a3a 0%, #3a4a2a 100%);
  border-radius: 60% 40% 50% 50%;
  transform: rotate(-30deg);
  animation: iwr-leaf 6s ease-in-out infinite alternate;
}
.scn-item-white-rose .thorn {
  position: absolute; bottom: 32%; left: 48%; width: 4px; height: 6px;
  background: #5a4a3a;
  border-radius: 0 0 50% 50%;
  transform: rotate(20deg);
}
.scn-item-white-rose .hand {
  position: absolute; bottom: 28%; left: 35%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #c8a890 0%, #a08070 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 50%;
  transform: rotate(-10deg);
  animation: iwr-hand 4s ease-in-out infinite alternate;
}
@keyframes iwr-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes iwr-rose { 0% { transform: translateX(-50%) rotate(-3deg) scale(1) } 50% { transform: translateX(-50%) rotate(2deg) scale(1.02) } 100% { transform: translateX(-50%) rotate(-1deg) scale(1) } }
@keyframes iwr-leaf { 0% { transform: rotate(-30deg) translateY(0) } 50% { transform: rotate(-25deg) translateY(-1px) } 100% { transform: rotate(-35deg) translateY(0) } }
@keyframes iwr-hand { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(3px) } 100% { transform: rotate(-12deg) translateX(0) } }

/* ===== sandal-castle-york-orders (syo) ===== */
.scn-sandal-castle-york-orders {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a120a 100%), radial-gradient(ellipse at 40% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-sandal-castle-york-orders .y-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,.6);
  animation: syo-bg 18s ease-in-out infinite alternate;
}
.scn-sandal-castle-york-orders .desk {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 10%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-sandal-castle-york-orders .y-map {
  position: absolute; bottom: 18%; left: 20%; width: 30%; height: 12%;
  background: linear-gradient(135deg, #d4c090 0%, #b09060 50%, #d4c090 100%);
  border-radius: 5%;
  transform: rotate(-2deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: syo-map 8s ease-in-out infinite alternate;
}
.scn-sandal-castle-york-orders .y-candle {
  position: absolute; bottom: 26%; left: 55%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: syo-candle 4s ease-in-out infinite;
}
.scn-sandal-castle-york-orders .y-flame {
  position: absolute; bottom: 38%; left: 55%; width: 10px; height: 18px;
  background: radial-gradient(circle at 50% 30%, #ffda80 0%, #ff8833 40%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  box-shadow: 0 0 18px 5px #ff8833, 0 0 45px 10px rgba(255,136,51,.3);
  animation: syo-flame 0.6s ease-in-out infinite alternate;
}
.scn-sandal-castle-york-orders .y-figure-l {
  position: absolute; bottom: 18%; left: 12%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: syo-fig-l 3.5s ease-in-out infinite;
}
.scn-sandal-castle-york-orders .y-figure-r {
  position: absolute; bottom: 18%; right: 15%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: syo-fig-r 4s ease-in-out infinite;
}
.scn-sandal-castle-york-orders .y-chair {
  position: absolute; bottom: 13%; left: 50%; width: 20px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
@keyframes syo-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes syo-map { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(-4deg) translateY(0) } }
@keyframes syo-candle { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes syo-flame { 0% { transform: scaleY(1) scaleX(1) translateY(0); opacity:.9 } 50% { transform: scaleY(1.15) scaleX(.85) translateY(-2px); opacity:1 } 100% { transform: scaleY(1) scaleX(1) translateY(0); opacity:.8 } }
@keyframes syo-fig-l { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(2px) rotate(0deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes syo-fig-r { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(1deg) } }

.scn-item-paper-crown {
  background: linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 40%, #5a5a6a 100%), radial-gradient(ellipse at 50% 0%, #2a2a3a 0%, transparent 60%);
}
.scn-item-paper-crown .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #6a6a7a 50%, #7a7a8a 100%);
  animation: pc-sky 14s ease-in-out infinite alternate;
}
.scn-item-paper-crown .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 50%, #1a1a0a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.6);
  animation: pc-ground 20s ease-in-out infinite;
}
.scn-item-paper-crown .figure {
  position: absolute; bottom: 15%; left: 50%; width: 50px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pc-figure 6s ease-in-out infinite;
}
.scn-item-paper-crown .crown {
  position: absolute; bottom: 80%; left: 50%; width: 30px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #a0a080 0%, #c0c0a0 50%, #808060 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4), 0 0 12px rgba(200,200,180,0.3);
  clip-path: polygon(0% 100%, 15% 30%, 50% 0%, 85% 30%, 100% 100%);
  animation: pc-crown 3s ease-in-out infinite alternate;
}
.scn-item-paper-crown .hand {
  position: absolute; bottom: 30%; left: 42%; width: 16px; height: 22px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(-20deg);
  animation: pc-hand 4s ease-in-out infinite;
}
.scn-item-paper-crown .cloud-a {
  position: absolute; top: 10%; left: 10%; width: 80px; height: 16px;
  background: linear-gradient(180deg, rgba(120,120,130,0.6) 0%, rgba(120,120,130,0.1) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: pc-drift-a 40s linear infinite;
}
.scn-item-paper-crown .cloud-b {
  position: absolute; top: 18%; right: 5%; width: 60px; height: 12px;
  background: linear-gradient(180deg, rgba(140,140,150,0.5) 0%, rgba(140,140,150,0.05) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: pc-drift-b 55s linear infinite reverse;
}

@keyframes pc-sky { 0% { opacity:0.7; background-position:0 0; } 50% { opacity:1; background-position:0 5px; } 100% { opacity:0.8; background-position:0 0; } }
@keyframes pc-ground { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } }
@keyframes pc-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } }
@keyframes pc-crown { 0% { transform: translateX(-50%) translateY(0) rotate(-5deg); box-shadow: 0 4px 6px rgba(0,0,0,0.4); } 50% { transform: translateX(-50%) translateY(-1px) rotate(0deg); box-shadow: 0 6px 12px rgba(200,200,180,0.4); } 100% { transform: translateX(-50%) translateY(0) rotate(5deg); box-shadow: 0 4px 6px rgba(0,0,0,0.4); } }
@keyframes pc-hand { 0%,100% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-2px); } }
@keyframes pc-drift-a { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes pc-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-item-bloody-napkin {
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 30%, #4a4a5a 0%, transparent 70%);
}
.scn-item-bloody-napkin .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2a3a 0%, #3a3a4a 100%);
  animation: bn-bg 10s ease-in-out infinite alternate;
}
.scn-item-bloody-napkin .hand {
  position: absolute; bottom: 20%; left: 30%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(15deg);
  animation: bn-hand 4s ease-in-out infinite;
}
.scn-item-bloody-napkin .napkin {
  position: absolute; bottom: 25%; left: 35%; width: 100px; height: 80px;
  background: linear-gradient(135deg, #c8c0b0 0%, #b8b0a0 50%, #a8a090 100%);
  border-radius: 10% 10% 20% 20% / 15% 15% 25% 25%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5), inset 0 0 20px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: bn-napkin 6s ease-in-out infinite;
}
.scn-item-bloody-napkin .stain {
  position: absolute; bottom: 35%; left: 40%; width: 40px; height: 30px;
  background: radial-gradient(circle, #763522 0%, #5a2415 50%, #3a1410 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px rgba(118,53,34,0.5);
  animation: bn-stain 3s ease-in-out infinite alternate;
}
.scn-item-bloody-napkin .droplet {
  position: absolute; width: 8px; height: 12px;
  background: linear-gradient(180deg, #763522 0%, #5a2415 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bn-drip 2s ease-in-out infinite;
}
.scn-item-bloody-napkin .drip-1 { bottom: 15%; left: 45%; animation-delay: 0s; }
.scn-item-bloody-napkin .drip-2 { bottom: 12%; left: 55%; animation-delay: 1s; }
.scn-item-bloody-napkin .shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50% 50% 0 0;
  animation: bn-shadow 8s ease-in-out infinite;
}

@keyframes bn-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes bn-hand { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } }
@keyframes bn-napkin { 0%,100% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.02); } }
@keyframes bn-stain { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.9; } }
@keyframes bn-drip { 0%,100% { transform: translateY(0) scaleY(1); opacity:0.8; } 50% { transform: translateY(5px) scaleY(1.3); opacity:1; } }
@keyframes bn-shadow { 0%,100% { opacity:0.4; } 50% { opacity:0.6; } }

.scn-field-wakefield-york-mock-crown {
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 40%, #4a4a5a 100%), radial-gradient(ellipse at 50% 0%, #1a1a2a 0%, transparent 60%);
}
.scn-field-wakefield-york-mock-crown .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #5a5a6a 50%, #6a6a7a 100%);
  animation: mc-sky 16s ease-in-out infinite alternate;
}
.scn-field-wakefield-york-mock-crown .molehill {
  position: absolute; bottom: 10%; left: 35%; right: 35%; height: 20%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 50%, #1a1a0a 100%);
  border-radius: 60% 60% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: mc-molehill 20s ease-in-out infinite;
}
.scn-field-wakefield-york-mock-crown .figure {
  position: absolute; bottom: 20%; width: 40px; height: 110px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-field-wakefield-york-mock-crown .kneeling {
  left: 42%; bottom: 18%;
  transform: scaleY(0.8);
  animation: mc-kneeling 5s ease-in-out infinite;
}
.scn-field-wakefield-york-mock-crown .standing {
  left: 55%; bottom: 25%;
  animation: mc-standing 7s ease-in-out infinite;
}
.scn-field-wakefield-york-mock-crown .crown {
  position: absolute; bottom: 80%; left: 43%; width: 28px; height: 16px;
  background: linear-gradient(135deg, #a0a080 0%, #c0c0a0 50%, #808060 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4), 0 0 12px rgba(200,200,180,0.3);
  clip-path: polygon(0% 100%, 15% 30%, 50% 0%, 85% 30%, 100% 100%);
  animation: mc-crown 3s ease-in-out infinite;
}
.scn-field-wakefield-york-mock-crown .arm {
  position: absolute; bottom: 50%; left: 57%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(-30deg);
  transform-origin: top center;
  animation: mc-arm 2s ease-in-out infinite;
}
.scn-field-wakefield-york-mock-crown .cloud {
  position: absolute; top: 12%; right: 10%; width: 75px; height: 14px;
  background: linear-gradient(180deg, rgba(150,150,160,0.5) 0%, rgba(150,150,160,0.05) 100%);
  border-radius: 50%; filter: blur(7px);
  animation: mc-cloud 45s linear infinite;
}
.scn-field-wakefield-york-mock-crown .sword {
  position: absolute; bottom: 35%; left: 60%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #8a8a9a 0%, #6a6a7a 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: mc-sword 6s ease-in-out infinite;
}

@keyframes mc-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes mc-molehill { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } }
@keyframes mc-kneeling { 0%,100% { transform: scaleY(0.8) translateY(0); } 50% { transform: scaleY(0.8) translateY(-2px); } }
@keyframes mc-standing { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes mc-crown { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(5deg); } }
@keyframes mc-arm { 0%,100% { transform: rotate(-30deg); } 50% { transform: rotate(-20deg); } }
@keyframes mc-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }
@keyframes mc-sword { 0%,100% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } }

.scn-field-wakefield-york-curse {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 100%), radial-gradient(ellipse at 50% 0%, #0a0a1a 0%, transparent 60%);
}
.scn-field-wakefield-york-curse .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #4a4a5a 50%, #5a5a6a 100%);
  animation: yc-sky 18s ease-in-out infinite alternate;
}
.scn-field-wakefield-york-curse .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.7);
  animation: yc-ground 12s ease-in-out infinite;
}
.scn-field-wakefield-york-curse .figure {
  position: absolute; bottom: 18%; left: 50%; width: 50px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: yc-figure 8s ease-in-out infinite;
}
.scn-field-wakefield-york-curse .arm {
  position: absolute; bottom: 60%; left: 52%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom center;
  transform: rotate(-40deg);
  animation: yc-arm 3s ease-in-out infinite;
}
.scn-field-wakefield-york-curse .shadow-wolf {
  position: absolute; bottom: 10%; left: 60%; width: 60px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50% 50% 40% 40%;
  filter: blur(10px);
  animation: yc-wolf 5s ease-in-out infinite alternate;
}
.scn-field-wakefield-york-curse .cloud {
  position: absolute; top: 15%; left: 5%; width: 100px; height: 18px;
  background: linear-gradient(180deg, rgba(100,100,110,0.4) 0%, rgba(100,100,110,0.05) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: yc-cloud 50s linear infinite;
}
.scn-field-wakefield-york-curse .dust {
  position: absolute; bottom: 5%; left: 30%; right: 30%; height: 10px;
  background: linear-gradient(90deg, transparent, rgba(80,80,60,0.3), transparent);
  border-radius: 50%;
  filter: blur(4px);
  animation: yc-dust 6s ease-in-out infinite;
}

@keyframes yc-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes yc-ground { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.04); } }
@keyframes yc-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } }
@keyframes yc-arm { 0%,100% { transform: rotate(-40deg); } 50% { transform: rotate(-30deg); } }
@keyframes yc-wolf { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.2); opacity:0.8; } 100% { transform: scaleX(0.9); opacity:0.4; } }
@keyframes yc-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }
@keyframes yc-dust { 0%,100% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.5); } }

.scn-before-york-ultimatum {
  background:
    linear-gradient(180deg, #7bb8e0 0%, #f5d580 40%, #d4a050 70%, #8a6a3a 100%),
    radial-gradient(ellipse at 50% 0%, #ffe090 0%, transparent 60%);
}
.scn-before-york-ultimatum .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #7bb8e0 0%, #b8d8f0 40%, transparent 100%); animation: bu-sky 12s ease-in-out infinite alternate; }
.scn-before-york-ultimatum .sun { position:absolute; top:12%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #fff8d0 0%, #ffd580 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(255,213,128,0.6); animation: bu-sun 8s ease-in-out infinite alternate; }
.scn-before-york-ultimatum .tent { position:absolute; bottom:30%; left:20%; width:120px; height:90px; background: linear-gradient(135deg, #b8a080 0%, #908060 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 -10px 20px rgba(0,0,0,0.4); transform: perspective(200px) rotateX(10deg); animation: bu-tent 5s ease-in-out infinite alternate; }
.scn-before-york-ultimatum .king-silhouette { position:absolute; bottom:28%; left:45%; width:20px; 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: bu-king 6s ease-in-out infinite; }
.scn-before-york-ultimatum .york-silhouette { position:absolute; bottom:28%; left:65%; width:22px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bu-york 6s ease-in-out infinite reverse; }
.scn-before-york-ultimatum .sword { position:absolute; bottom:45%; left:68%; width:4px; height:24px; background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%); transform-origin: bottom center; border-radius: 1px 1px 0 0; box-shadow: 0 0 4px rgba(255,255,200,0.5); animation: bu-sword 4s ease-in-out infinite alternate; }
.scn-before-york-ultimatum .banner-1 { position:absolute; bottom:30%; left:25%; width:8px; height:40px; background: #a08060; border-radius: 2px; transform-origin: bottom center; animation: bu-banner 7s ease-in-out infinite; }
.scn-before-york-ultimatum .banner-2 { position:absolute; bottom:30%; left:75%; width:8px; height:40px; background: #c0a070; border-radius: 2px; transform-origin: bottom center; animation: bu-banner 7s ease-in-out infinite 3.5s; }
.scn-before-york-ultimatum .dust { position:absolute; bottom:0%; left:0; right:0; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(200,180,150,0.5) 0%, transparent 70%); filter: blur(8px); animation: bu-dust 10s ease-in-out infinite alternate; }

@keyframes bu-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes bu-sun { 0% { transform: scale(0.9); box-shadow: 0 0 40px 20px rgba(255,213,128,0.4); } 50% { transform: scale(1.1); box-shadow: 0 0 80px 40px rgba(255,213,128,0.7); } 100% { transform: scale(1); box-shadow: 0 0 60px 30px rgba(255,213,128,0.5); } }
@keyframes bu-tent { 0% { transform: perspective(200px) rotateX(10deg) translateY(0); } 100% { transform: perspective(200px) rotateX(8deg) translateY(-3px); } }
@keyframes bu-king { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bu-york { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-3px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0); } }
@keyframes bu-sword { 0% { transform: rotate(-15deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(-15deg); } }
@keyframes bu-banner { 0% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(-3deg); } 75% { transform: rotate(4deg); } 100% { transform: rotate(0deg); } }
@keyframes bu-dust { 0% { opacity:0.3; transform: scaleX(1); } 100% { opacity:0.6; transform: scaleX(1.2); } }

.scn-before-york-queen-returns {
  background:
    linear-gradient(180deg, #b8d0e8 0%, #f0d8a0 30%, #d4b060 60%, #806040 100%),
    radial-gradient(ellipse at 80% 20%, #fff4d0 0%, transparent 50%);
}
.scn-before-york-queen-returns .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b8d0e8 0%, #e8f0ff 40%, transparent 100%); animation: bqr-sky 14s ease-in-out infinite alternate; }
.scn-before-york-queen-returns .sun { position:absolute; top:10%; right:20%; width:35px; height:35px; background: radial-gradient(circle, #fff8d0 0%, #ffd580 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 50px 25px rgba(255,213,128,0.5); animation: bqr-sun 10s ease-in-out infinite alternate; }
.scn-before-york-queen-returns .palace-wall { position:absolute; bottom:0; left:10%; width:30%; height:60%; background: linear-gradient(180deg, #c0b090 0%, #a09070 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); animation: bqr-wall 8s ease-in-out infinite alternate; }
.scn-before-york-queen-returns .queen-figure { position:absolute; bottom:25%; left:35%; width:18px; height:48px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bqr-queen 6s ease-in-out infinite; }
.scn-before-york-queen-returns .kneeling-figure { position:absolute; bottom:28%; left:55%; width:16px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bqr-kneel 7s ease-in-out infinite; }
.scn-before-york-queen-returns .crown { position:absolute; bottom:68%; left:36%; width:12px; height:6px; background: #f0d050; border-radius: 30% 30% 50% 50%; box-shadow: 0 0 8px 2px rgba(240,208,80,0.6); animation: bqr-crown 5s ease-in-out infinite alternate; }
.scn-before-york-queen-returns .shadow-1 { position:absolute; bottom:0; left:10%; width:40%; height:20%; background: rgba(30,20,10,0.3); border-radius: 50% 50% 0 0; filter: blur(12px); animation: bqr-shadow 9s ease-in-out infinite alternate; }
.scn-before-york-queen-returns .shadow-2 { position:absolute; bottom:0; right:10%; width:30%; height:15%; background: rgba(20,10,5,0.4); border-radius: 50% 50% 0 0; filter: blur(8px); animation: bqr-shadow 9s ease-in-out infinite alternate 4.5s; }

@keyframes bqr-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes bqr-sun { 0% { transform: scale(1); box-shadow: 0 0 40px 20px rgba(255,213,128,0.4); } 50% { transform: scale(1.15); box-shadow: 0 0 70px 35px rgba(255,213,128,0.7); } 100% { transform: scale(0.95); box-shadow: 0 0 50px 25px rgba(255,213,128,0.5); } }
@keyframes bqr-wall { 0% { transform: translateY(0); } 100% { transform: translateY(-4px); } }
@keyframes bqr-queen { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bqr-kneel { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 50% { transform: translateX(1px) rotate(-2deg) scaleY(0.95); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes bqr-crown { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes bqr-shadow { 0% { opacity:0.3; transform: scaleX(1); } 100% { opacity:0.6; transform: scaleX(1.1); } }

.scn-before-york-queen-blame {
  background:
    linear-gradient(180deg, #a8c4e0 0%, #e8d090 30%, #c8a050 60%, #705030 100%),
    radial-gradient(ellipse at 70% 30%, #ffe8b0 0%, transparent 50%);
}
.scn-before-york-queen-blame .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #a8c4e0 0%, #d0e0f0 40%, transparent 100%); animation: bqb-sky 15s ease-in-out infinite alternate; }
.scn-before-york-queen-blame .sun { position:absolute; top:8%; left:20%; width:30px; height:30px; background: radial-gradient(circle, #fff8d0 0%, #ffd580 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 45px 20px rgba(255,213,128,0.4); animation: bqb-sun 9s ease-in-out infinite alternate; }
.scn-before-york-queen-blame .platform { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #908060 0%, #705040 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.4); animation: bqb-platform 10s ease-in-out infinite alternate; }
.scn-before-york-queen-blame .york-pointing { position:absolute; bottom:30%; left:30%; width:20px; height:52px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bqb-york 5s ease-in-out infinite; }
.scn-before-york-queen-blame .queen-entourage { position:absolute; bottom:30%; left:55%; width:18px; height:48px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bqb-queen 6s ease-in-out infinite reverse; }
.scn-before-york-queen-blame .guard-1 { position:absolute; bottom:30%; left:65%; width:16px; height:45px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bqb-guard 8s ease-in-out infinite; }
.scn-before-york-queen-blame .guard-2 { position:absolute; bottom:30%; right:10%; width:16px; height:45px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bqb-guard 8s ease-in-out infinite 4s; }
.scn-before-york-queen-blame .spear { position:absolute; bottom:45%; left:62%; width:4px; height:30px; background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%); border-radius: 1px; transform: rotate(10deg); transform-origin: bottom center; animation: bqb-spear 6s ease-in-out infinite alternate; }

@keyframes bqb-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes bqb-sun { 0% { transform: scale(0.95); box-shadow: 0 0 30px 15px rgba(255,213,128,0.3); } 50% { transform: scale(1.1); box-shadow: 0 0 60px 30px rgba(255,213,128,0.6); } 100% { transform: scale(1); box-shadow: 0 0 45px 20px rgba(255,213,128,0.4); } }
@keyframes bqb-platform { 0% { transform: translateY(0); } 100% { transform: translateY(-3px); } }
@keyframes bqb-york { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes bqb-queen { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bqb-guard { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes bqb-spear { 0% { transform: rotate(8deg); } 100% { transform: rotate(12deg); } }

.scn-towton-warwick-exhausted {
  background:
    linear-gradient(180deg, #4a5a6a 0%, #5a6a7a 25%, #6a7a8a 50%, #4a5a6a 75%, #3a4a5a 100%),
    radial-gradient(ellipse at 50% 70%, #6a7a8a 0%, transparent 60%);
}
.scn-towton-warwick-exhausted .overcast-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a6a7a 0%, #7a8a9a 40%, transparent 100%); animation: twe-sky 20s ease-in-out infinite alternate; }
.scn-towton-warwick-exhausted .mist { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, rgba(180,200,210,0.2) 0%, transparent 70%); filter: blur(20px); animation: twe-mist 15s ease-in-out infinite alternate; }
.scn-towton-warwick-exhausted .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.5); animation: twe-ground 12s ease-in-out infinite alternate; }
.scn-towton-warwick-exhausted .warwick-prone { position:absolute; bottom:35%; left:40%; width:40px; height:18px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%; transform: rotate(-5deg); transform-origin: center; animation: twe-warwick 8s ease-in-out infinite alternate; }
.scn-towton-warwick-exhausted .broken-sword { position:absolute; bottom:40%; left:55%; width:4px; height:20px; background: linear-gradient(180deg, #808080 0%, #404040 100%); border-radius: 1px; transform: rotate(45deg); transform-origin: bottom center; animation: twe-sword 7s ease-in-out infinite; }
.scn-towton-warwick-exhausted .shield { position:absolute; bottom:38%; left:32%; width:30px; height:35px; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%; transform: rotate(-20deg); box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: twe-shield 9s ease-in-out infinite alternate; }
.scn-towton-warwick-exhausted .dead-soldier { position:absolute; bottom:30%; right:25%; width:35px; height:12px; background: #2a2a3a; border-radius: 30% 30% 10% 10% / 50% 50% 30% 30%; transform: rotate(10deg); animation: twe-dead 11s ease-in-out infinite alternate; }
.scn-towton-warwick-exhausted .blood-puddle { position:absolute; bottom:28%; left:30%; width:20px; height:8px; background: radial-gradient(ellipse, #5e1a1d 0%, transparent 70%); border-radius: 50%; filter: blur(2px); animation: twe-blood 13s ease-in-out infinite alternate; }

@keyframes twe-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes twe-mist { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.1); } 100% { opacity:0.3; transform: scale(0.95); } }
@keyframes twe-ground { 0% { transform: translateY(0); } 100% { transform: translateY(2px); } }
@keyframes twe-warwick { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes twe-sword { 0% { transform: rotate(45deg) translateY(0); } 50% { transform: rotate(50deg) translateY(-1px); } 100% { transform: rotate(45deg) translateY(0); } }
@keyframes twe-shield { 0% { transform: rotate(-20deg) translateX(0); } 100% { transform: rotate(-15deg) translateX(2px); } }
@keyframes twe-dead { 0% { opacity:0.7; transform: rotate(10deg) scaleX(1); } 100% { opacity:1; transform: rotate(8deg) scaleX(1.05); } }
@keyframes twe-blood { 0% { opacity:0.4; transform: scale(1); } 100% { opacity:0.7; transform: scale(1.2); } }

/* scene before-york-warwick-approaching */
.scn-before-york-warwick-approaching {
  background:
    linear-gradient(180deg, #f4d8a0 0%, #d4a860 40%, #b08040 70%),
    radial-gradient(ellipse at 50% 0%, #ffe0a0 0%, transparent 60%);
}
.scn-before-york-warwick-approaching .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #ffe6b0 0%, #f0c080 100%);
  animation: bywa-sky 12s ease-in-out infinite alternate;
}
.scn-before-york-warwick-approaching .sun {
  position: absolute; top: 8%; left: 45%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #ffdd88 0%, #ffcc66 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ffd080;
  animation: bywa-sunpulse 4s ease-in-out infinite alternate;
}
.scn-before-york-warwick-approaching .haze {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 60%, rgba(255,200,100,0.3) 0%, transparent 60%);
  filter: blur(20px);
  animation: bywa-haze 20s linear infinite;
}
.scn-before-york-warwick-approaching .army {
  position: absolute; bottom: 30%; left: 0; right: 0;
  height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  mask-image: repeating-linear-gradient(90deg, #000 0px, #000 6px, transparent 6px, transparent 12px);
  animation: bywa-march 6s ease-in-out infinite;
}
.scn-before-york-warwick-approaching .banners {
  position: absolute; bottom: 42%;
  width: 12px; height: 40px;
  background: linear-gradient(180deg, #a0461a 0%, #702235 100%);
  transform-origin: bottom center;
}
.scn-before-york-warwick-approaching .banner-a {
  left: 20%;
  animation: bywa-flag 3s ease-in-out infinite alternate;
}
.scn-before-york-warwick-approaching .banner-b {
  left: 70%;
  animation: bywa-flag 3.5s ease-in-out infinite alternate;
  animation-delay: 1s;
}
.scn-before-york-warwick-approaching .dust {
  position: absolute; bottom: 28%;
  width: 150px; height: 20px;
  background: radial-gradient(ellipse, rgba(180,140,80,0.6) 0%, transparent 70%);
  filter: blur(8px);
}
.scn-before-york-warwick-approaching .dust-a {
  left: 10%;
  animation: bywa-dust-drift 8s linear infinite;
}
.scn-before-york-warwick-approaching .dust-b {
  right: 20%;
  animation: bywa-dust-drift 10s linear infinite reverse;
  animation-delay: 3s;
}
.scn-before-york-warwick-approaching .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #806040 0%, #4a3018 100%);
  border-radius: 30% 20% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
}
@keyframes bywa-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes bywa-sunpulse { 0% { transform: scale(0.95); box-shadow: 0 0 40px 15px #ffd080 } 50% { transform: scale(1.05); box-shadow: 0 0 70px 25px #ffdd88 } 100% { transform: scale(0.95); box-shadow: 0 0 40px 15px #ffd080 } }
@keyframes bywa-haze { 0% { opacity: 0.6 } 50% { opacity: 0.4 } 100% { opacity: 0.6 } }
@keyframes bywa-march { 0% { transform: translateX(-5px) } 50% { transform: translateX(5px) } 100% { transform: translateX(-5px) } }
@keyframes bywa-flag { 0% { transform: rotate(-10deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.2) } 100% { transform: rotate(-10deg) scaleY(1) } }
@keyframes bywa-dust-drift { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(40px) translateY(-10px) } 100% { transform: translateX(80px) translateY(0) } }

/* scene before-york-edward-challenge */
.scn-before-york-edward-challenge {
  background:
    linear-gradient(180deg, #f0d090 0%, #d0a050 50%, #a07030 100%),
    radial-gradient(ellipse at 50% 0%, #ffdd88 0%, transparent 60%);
}
.scn-before-york-edward-challenge .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffdcb0 0%, #e8b870 100%);
  animation: byec-sky 10s ease-in-out infinite alternate;
}
.scn-before-york-edward-challenge .sun {
  position: absolute; top: 10%; left: 60%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe080 0%, #ffcc40 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px #ffcc60;
  animation: byec-sun 5s ease-in-out infinite alternate;
}
.scn-before-york-edward-challenge .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #907040 0%, #504020 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 30px 40px rgba(0,0,0,0.5);
}
.scn-before-york-edward-challenge .figure-edward {
  position: absolute; bottom: 35%; left: 50%;
  width: 40px; height: 100px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 45% 45% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  transform: translateX(-50%);
  animation: byec-figure 4s ease-in-out infinite;
}
.scn-before-york-edward-challenge .sword {
  position: absolute; bottom: 60%; left: 50%;
  width: 4px; height: 60px;
  background: linear-gradient(180deg, #c0b090 0%, #807060 100%);
  transform-origin: bottom center;
  transform: translateX(-50%) rotate(-20deg);
  border-radius: 2px;
  box-shadow: 0 0 8px 2px #a09080;
  animation: byec-sword 5s ease-in-out infinite alternate;
}
.scn-before-york-edward-challenge .banner-edward {
  position: absolute; bottom: 55%; left: 40%;
  width: 10px; height: 50px;
  background: linear-gradient(180deg, #a0461a 0%, #702235 100%);
  transform-origin: bottom center;
  animation: byec-banner 3.5s ease-in-out infinite alternate;
}
.scn-before-york-edward-challenge .cape {
  position: absolute; bottom: 35%; left: 50%;
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0c 100%);
  border-radius: 50%;
  transform-origin: top center;
  transform: translateX(-50%) rotate(10deg);
  animation: byec-cape 6s ease-in-out infinite;
}
.scn-before-york-edward-challenge .dust-edward {
  position: absolute; bottom: 28%; left: 30%;
  width: 120px; height: 15px;
  background: radial-gradient(ellipse, rgba(160,120,60,0.5) 0%, transparent 70%);
  filter: blur(6px);
  animation: byec-dust 7s linear infinite;
}
@keyframes byec-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes byec-sun { 0% { transform: scale(0.9) translateY(0) } 50% { transform: scale(1.1) translateY(3px) } 100% { transform: scale(0.9) translateY(0) } }
@keyframes byec-figure { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(2deg) } 50% { transform: translateX(-50%) rotate(0deg) } 75% { transform: translateX(-50%) rotate(-2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes byec-sword { 0% { transform: translateX(-50%) rotate(-20deg) } 50% { transform: translateX(-50%) rotate(10deg) } 100% { transform: translateX(-50%) rotate(-20deg) } }
@keyframes byec-banner { 0% { transform: rotate(-12deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-12deg) } }
@keyframes byec-cape { 0% { transform: translateX(-50%) rotate(10deg) scaleX(1) } 50% { transform: translateX(-50%) rotate(20deg) scaleX(1.1) } 100% { transform: translateX(-50%) rotate(10deg) scaleX(1) } }
@keyframes byec-dust { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(50px) translateY(-5px) } 100% { transform: translateX(100px) translateY(0) } }

/* scene before-york-clifford-rutland */
.scn-before-york-clifford-rutland {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%),
    radial-gradient(ellipse at 60% 10%, #c0a060 0%, transparent 50%);
}
.scn-before-york-clifford-rutland .sky-dark {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  animation: bcr-sky 15s ease-in-out infinite alternate;
}
.scn-before-york-clifford-rutland .sun-harsh {
  position: absolute; top: 12%; right: 20%;
  width: 70px; height: 70px;
  background: radial-gradient(circle, #ffe080 0%, #d0a040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px #c09040;
  animation: bcr-sun 6s ease-in-out infinite alternate;
}
.scn-before-york-clifford-rutland .ground-stony {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #504030 0%, #302010 100%);
  border-radius: 20% 40% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.8);
}
.scn-before-york-clifford-rutland .figure-clifford {
  position: absolute; bottom: 25%; left: 35%;
  width: 50px; height: 120px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: bcr-clifford 4s ease-in-out infinite;
}
.scn-before-york-clifford-rutland .figure-rutland {
  position: absolute; bottom: 18%; left: 55%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  transform-origin: bottom center;
  transform: rotate(-30deg);
  animation: bcr-rutland 4s ease-in-out infinite;
}
.scn-before-york-clifford-rutland .sword-bloody {
  position: absolute; bottom: 45%; left: 35%;
  width: 5px; height: 70px;
  background: linear-gradient(180deg, #a09080 0%, #806050 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  transform: rotate(-40deg);
  box-shadow: 0 0 6px 2px #702235; /* desaturated red blood */
  animation: bcr-sword 3s ease-in-out infinite alternate;
}
.scn-before-york-clifford-rutland .rock {
  position: absolute; bottom: 20%; right: 20%;
  width: 80px; height: 40px;
  background: linear-gradient(180deg, #605040 0%, #302010 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: bcr-rock 8s ease-in-out infinite;
}
@keyframes bcr-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes bcr-sun { 0% { transform: scale(0.95); box-shadow: 0 0 60px 20px #c09040 } 50% { transform: scale(1.1); box-shadow: 0 0 100px 30px #d0a050 } 100% { transform: scale(0.95); box-shadow: 0 0 60px 20px #c09040 } }
@keyframes bcr-clifford { 0% { transform: rotate(2deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(2deg) } }
@keyframes bcr-rutland { 0% { transform: rotate(-30deg) translateY(0) } 50% { transform: rotate(-25deg) translateY(-5px) } 100% { transform: rotate(-30deg) translateY(0) } }
@keyframes bcr-sword { 0% { transform: rotate(-40deg) } 50% { transform: rotate(-30deg) } 100% { transform: rotate(-40deg) } }
@keyframes bcr-rock { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }

/* scene before-york-richard-threat */
.scn-before-york-richard-threat {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%),
    radial-gradient(ellipse at 40% 10%, #c0a060 0%, transparent 50%);
}
.scn-before-york-richard-threat .sky-dark {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  animation: brt-sky 14s ease-in-out infinite alternate;
}
.scn-before-york-richard-threat .sun-harsh {
  position: absolute; top: 10%; left: 30%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe080 0%, #d0a040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 70px 25px #c09040;
  animation: brt-sun 5s ease-in-out infinite alternate;
}
.scn-before-york-richard-threat .ground-threat {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #504030 0%, #302010 100%);
  border-radius: 30% 50% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.7);
}
.scn-before-york-richard-threat .figure-richard {
  position: absolute; bottom: 30%; left: 40%;
  width: 35px; height: 90px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: brt-richard 5s ease-in-out infinite;
}
.scn-before-york-richard-threat .figure-clifford-react {
  position: absolute; bottom: 30%; right: 30%;
  width: 45px; height: 110px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: brt-clifford 5s ease-in-out infinite alternate;
}
.scn-before-york-richard-threat .sword-richard {
  position: absolute; bottom: 55%; left: 40%;
  width: 4px; height: 50px;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  transform: rotate(15deg);
  box-shadow: 0 0 8px 2px #908070;
  animation: brt-sword 3.5s ease-in-out infinite alternate;
}
.scn-before-york-richard-threat .cape-richard {
  position: absolute; bottom: 30%; left: 36%;
  width: 50px; height: 70px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0c 100%);
  border-radius: 50%;
  transform-origin: top center;
  transform: rotate(-5deg);
  animation: brt-cape 6s ease-in-out infinite;
}
.scn-before-york-richard-threat .banner-threat {
  position: absolute; bottom: 60%; right: 20%;
  width: 8px; height: 40px;
  background: linear-gradient(180deg, #a0461a 0%, #702235 100%);
  transform-origin: bottom center;
  animation: brt-banner 4s ease-in-out infinite alternate;
}
@keyframes brt-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes brt-sun { 0% { transform: scale(0.95); box-shadow: 0 0 50px 15px #c09040 } 50% { transform: scale(1.1); box-shadow: 0 0 80px 25px #d0a050 } 100% { transform: scale(0.95); box-shadow: 0 0 50px 15px #c09040 } }
@keyframes brt-richard { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-4px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes brt-clifford { 0% { transform: translateX(0) } 50% { transform: translateX(-8px) } 100% { transform: translateX(0) } }
@keyframes brt-sword { 0% { transform: rotate(15deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(15deg) } }
@keyframes brt-cape { 0% { transform: rotate(-5deg) scaleX(0.95) } 50% { transform: rotate(5deg) scaleX(1.05) } 100% { transform: rotate(-5deg) scaleX(0.95) } }
@keyframes brt-banner { 0% { transform: rotate(-8deg) } 50% { transform: rotate(6deg) } 100% { transform: rotate(-8deg) } }

/* towton-mock-clifford */
.scn-towton-mock-clifford {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #3a2a3a 100%), radial-gradient(ellipse at 50% 20%, #3a3a4a 0%, transparent 70%);
}
.scn-towton-mock-clifford .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a3a 0%, transparent 100%); animation: twt-sky 12s ease-in-out infinite alternate; }
.scn-towton-mock-clifford .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-towton-mock-clifford .figure-standing { position:absolute; bottom:30%; left:30%; width:24px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: twt-stand 4s ease-in-out infinite; }
.scn-towton-mock-clifford .figure-kneeling { position:absolute; bottom:25%; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: twt-kneel 5s ease-in-out infinite; }
.scn-towton-mock-clifford .sword { position:absolute; bottom:55%; left:32%; width:3px; height:30px; background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%); border-radius: 2px; transform: rotate(15deg); box-shadow: 0 0 6px #8a8a9a; animation: twt-sword 2s ease-in-out infinite alternate; }
.scn-towton-mock-clifford .cloud-a { position:absolute; top:15%; left:10%; width:70px; height:15px; background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: twt-drift-a 40s linear infinite; }
.scn-towton-mock-clifford .cloud-b { position:absolute; top:20%; right:5%; width:50px; height:10px; background: linear-gradient(180deg, rgba(255,255,255,.2) 0%, transparent 100%); border-radius:50%; filter: blur(6px); animation: twt-drift-b 55s linear infinite reverse; }
@keyframes twt-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes twt-stand { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(1deg) } 75% { transform: translateY(1px) rotate(-1deg) } }
@keyframes twt-kneel { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(1px) scaleY(.95) } }
@keyframes twt-sword { 0% { transform: rotate(10deg) scaleY(1) } 100% { transform: rotate(20deg) scaleY(1.1) } }
@keyframes twt-drift-a { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }
@keyframes twt-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* item-cliffords-head */
.scn-item-cliffords-head {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, transparent 70%);
}
.scn-item-cliffords-head .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a2a3a 0%, transparent 100%); animation: clf-sky 15s ease-in-out infinite alternate; }
.scn-item-cliffords-head .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 20% 80% 0 0 / 60% 70% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.6); }
.scn-item-cliffords-head .pole { position:absolute; bottom:35%; left:50%; width:6px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; transform: translateX(-50%); }
.scn-item-cliffords-head .head { position:absolute; bottom:60%; left:50%; width:20px; height:24px; background: radial-gradient(circle at 50% 40%, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); box-shadow: 0 0 10px rgba(0,0,0,.5); animation: clf-head 3s ease-in-out infinite alternate; }
.scn-item-cliffords-head .figure { position:absolute; bottom:30%; left:35%; width:22px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: clf-fig 5s ease-in-out infinite; }
.scn-item-cliffords-head .cloud-c { position:absolute; top:12%; left:0; width:60px; height:12px; background: linear-gradient(180deg, rgba(255,255,255,.2) 0%, transparent 100%); border-radius:50%; filter: blur(6px); animation: clf-drift-c 45s linear infinite; }
.scn-item-cliffords-head .cloud-d { position:absolute; top:18%; right:0; width:40px; height:8px; background: linear-gradient(180deg, rgba(255,255,255,.15) 0%, transparent 100%); border-radius:50%; filter: blur(4px); animation: clf-drift-d 60s linear infinite reverse; }
@keyframes clf-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.5 } }
@keyframes clf-head { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes clf-fig { 0%,100% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-1px) rotate(2deg) } 70% { transform: translateY(1px) rotate(-2deg) } }
@keyframes clf-drift-c { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes clf-drift-d { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* london-crowning-preparation */
.scn-london-crowning-preparation {
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 40%, #2a1a1a 100%), radial-gradient(ellipse at 50% 50%, #f0d4a0 0%, transparent 80%);
}
.scn-london-crowning-preparation .wall-back { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.3); }
.scn-london-crowning-preparation .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; }
.scn-london-crowning-preparation .throne { position:absolute; bottom:25%; left:50%; width:60px; height:80px; transform: translateX(-50%); background: linear-gradient(135deg, #8a7a4a 0%, #6a5a3a 50%, #4a3a2a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.5); animation: ldn-throne 6s ease-in-out infinite; }
.scn-london-crowning-preparation .crown { position:absolute; bottom:75%; left:50%; width:30px; height:15px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #f0c040 0%, #c08020 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 20px #f0c040, 0 0 40px rgba(240,192,64,.5); animation: ldn-crown 3s ease-in-out infinite alternate; }
.scn-london-crowning-preparation .figure-warwick { position:absolute; bottom:25%; left:35%; 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: ldn-warwick 4s ease-in-out infinite; }
.scn-london-crowning-preparation .figure-edward { position:absolute; bottom:20%; left:60%; width:22px; height:55px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ldn-edward 5s ease-in-out infinite; }
.scn-london-crowning-preparation .light-rays { position:absolute; top:20%; left:45%; width:80px; height:80px; background: radial-gradient(ellipse at 50% 50%, rgba(255,240,200,.4) 0%, transparent 70%); animation: ldn-rays 8s ease-in-out infinite alternate; }
@keyframes ldn-throne { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes ldn-crown { 0% { opacity:.7; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.05) } 100% { opacity:.8; transform: translateX(-50%) scale(.95) } }
@keyframes ldn-warwick { 0%,100% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(2deg) } 70% { transform: translateY(1px) rotate(-1deg) } }
@keyframes ldn-edward { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(1px) scaleY(1.03) } }
@keyframes ldn-rays { 0% { opacity:.3; transform: scale(1) } 100% { opacity:.6; transform: scale(1.2) } }

/* forest-henry-disguised */
.scn-forest-henry-disguised {
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 40%, #1a1a0a 100%), radial-gradient(ellipse at 50% 30%, #2a3a2a 0%, transparent 70%);
}
.scn-forest-henry-disguised .trees-back { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; }
.scn-forest-henry-disguised .bushes { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 10% 90% 0 0 / 30% 70% 0 0; }
.scn-forest-henry-disguised .keeper-left { position:absolute; bottom:30%; left:30%; width:22px; height:50px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fst-keeper-l 4s ease-in-out infinite; }
.scn-forest-henry-disguised .keeper-right { position:absolute; bottom:28%; right:30%; width:20px; height:48px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fst-keeper-r 5s ease-in-out infinite; }
.scn-forest-henry-disguised .crossbow-left { position:absolute; bottom:45%; left:28%; width:30px; height:4px; background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; transform: rotate(-10deg); animation: fst-cross-l 2s ease-in-out infinite alternate; }
.scn-forest-henry-disguised .crossbow-right { position:absolute; bottom:43%; right:28%; width:28px; height:4px; background: linear-gradient(270deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; transform: rotate(10deg); animation: fst-cross-r 2.5s ease-in-out infinite alternate; }
.scn-forest-henry-disguised .deer { position:absolute; bottom:38%; left:55%; width:16px; height:28px; background: radial-gradient(ellipse at 50% 30%, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: left center; animation: fst-deer 6s ease-in-out infinite; }
.scn-forest-henry-disguised .fog { position:absolute; top:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(255,255,255,.05) 0%, transparent 100%); filter: blur(15px); animation: fst-fog 20s ease-in-out infinite alternate; }
@keyframes fst-keeper-l { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(2deg) } 75% { transform: translateY(1px) rotate(-1deg) } }
@keyframes fst-keeper-r { 0%,100% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(-2deg) } 70% { transform: translateY(1px) rotate(1deg) } }
@keyframes fst-cross-l { 0% { transform: rotate(-15deg) scaleX(1) } 100% { transform: rotate(-5deg) scaleX(1.1) } }
@keyframes fst-cross-r { 0% { transform: rotate(5deg) scaleX(1.1) } 100% { transform: rotate(15deg) scaleX(1) } }
@keyframes fst-deer { 0%,100% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-10px) rotate(-5deg) } 70% { transform: translateX(5px) rotate(3deg) } }
@keyframes fst-fog { 0% { opacity:0; transform: scaleY(1) } 50% { opacity:0.5; transform: scaleY(1.2) } 100% { opacity:0; transform: scaleY(0.8) } }

.scn-before-york-clifford-urging {
  background: linear-gradient(180deg, #4a7fb5 0%, #6a9fd5 30%, #8bbadb 60%), radial-gradient(ellipse at 70% 20%, #ffe680 0%, transparent 50%);
}
.scn-before-york-clifford-urging .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a8fc5 0%, transparent 100%);
  animation: urg-sky 8s ease-in-out infinite alternate;
}
.scn-before-york-clifford-urging .sun {
  position: absolute; top: 8%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe680 0%, #ffcc40 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,230,128,0.6);
  animation: urg-sun 6s ease-in-out infinite;
}
.scn-before-york-clifford-urging .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #6b5b4f 0%, #8b7a6a 40%, #a58e7a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-before-york-clifford-urging .throne {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #8b6f47 0%, #6a5030 50%, #4a3520 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: urg-throne 10s ease-in-out infinite;
}
.scn-before-york-clifford-urging .king {
  position: absolute; bottom: 40%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-30px);
  background: linear-gradient(180deg, #d4a060 0%, #b0803c 50%, #8a5c28 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: urg-king 4s ease-in-out infinite alternate;
}
.scn-before-york-clifford-urging .advisor {
  position: absolute; bottom: 38%; left: 50%; width: 35px; height: 65px;
  transform: translateX(-85px);
  background: linear-gradient(180deg, #3a5a7a 0%, #2a4a6a 50%, #1a3050 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: urg-adv 3s ease-in-out infinite;
}
.scn-before-york-clifford-urging .crown {
  position: absolute; bottom: 74%; left: 50%; width: 28px; height: 16px;
  transform: translateX(-30px);
  background: linear-gradient(135deg, #ffd700 0%, #d4a000 50%, #b8860b 100%);
  clip-path: polygon(0% 100%, 20% 30%, 50% 0%, 80% 30%, 100% 100%);
  animation: urg-crown 3s ease-in-out infinite alternate;
}
.scn-before-york-clifford-urging .banner {
  position: absolute; bottom: 32%; right: 20%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #c8553d 0%, #a0402e 50%, #702218 100%);
  transform-origin: bottom; border-radius: 2px;
  animation: urg-banner 5s ease-in-out infinite;
}
@keyframes urg-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes urg-sun { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(0.95) } }
@keyframes urg-throne { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes urg-king { 0% { transform: translateX(-30px) rotate(0deg) } 50% { transform: translateX(-30px) rotate(2deg) } 100% { transform: translateX(-30px) rotate(-2deg) } }
@keyframes urg-adv { 0% { transform: translateX(-85px) rotate(0deg) } 25% { transform: translateX(-80px) rotate(3deg) } 75% { transform: translateX(-90px) rotate(-3deg) } 100% { transform: translateX(-85px) rotate(0deg) } }
@keyframes urg-crown { 0% { transform: translateX(-30px) rotate(-5deg) } 50% { transform: translateX(-30px) rotate(5deg) } 100% { transform: translateX(-30px) rotate(0deg) } }
@keyframes urg-banner { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }

.scn-before-york-clifford-argument {
  background: linear-gradient(180deg, #4a7fb5 0%, #7aafd5 40%, #aad0e0 70%), radial-gradient(ellipse at 30% 20%, #fff4c0 0%, transparent 60%);
}
.scn-before-york-clifford-argument .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5a8fc5 0%, transparent 100%);
  animation: arg-sky 12s ease-in-out infinite alternate;
}
.scn-before-york-clifford-argument .sun {
  position: absolute; top: 10%; left: 25%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe680 0%, #ffcc40 30%, transparent 60%);
  border-radius: 50%; box-shadow: 0 0 40px 15px rgba(255,230,128,0.5);
  animation: arg-sun 8s ease-in-out infinite;
}
.scn-before-york-clifford-argument .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0;
  animation: arg-hills 15s ease-in-out infinite alternate;
}
.scn-before-york-clifford-argument .tree {
  position: absolute; bottom: 40%; left: 35%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #5a7a3a 0%, #3a5a1a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: arg-tree 10s ease-in-out infinite;
}
.scn-before-york-clifford-argument .nest {
  position: absolute; bottom: 82%; left: 40%; width: 30px; height: 14px;
  background: radial-gradient(ellipse, #8b6f47 0%, #6b4f2f 60%, #4a3020 100%);
  border-radius: 50%;
  animation: arg-nest 5s ease-in-out infinite alternate;
}
.scn-before-york-clifford-argument .child-bird {
  position: absolute; bottom: 85%; left: 42%; width: 10px; height: 10px;
  background: radial-gradient(circle, #c8553d 0%, #a0402e 100%);
  border-radius: 50%;
  animation: arg-child 3s ease-in-out infinite;
}
.scn-before-york-clifford-argument .parent-bird {
  position: absolute; bottom: 78%; left: 30%; width: 18px; height: 22px;
  background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: arg-parent 4s ease-in-out infinite;
}
.scn-before-york-clifford-argument .shadow {
  position: absolute; bottom: 35%; left: 30%; width: 60px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: arg-shadow 6s ease-in-out infinite alternate;
}
@keyframes arg-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes arg-sun { 0% { transform: scale(0.9) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes arg-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes arg-tree { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes arg-nest { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes arg-child { 0% { transform: scale(1) } 50% { transform: scale(1.2) } 100% { transform: scale(0.9) } }
@keyframes arg-parent { 0% { transform: translateX(0) } 50% { transform: translateX(8px) } 100% { transform: translateX(0) } }
@keyframes arg-shadow { 0% { opacity: 0.3 } 50% { opacity: 0.5 } 100% { opacity: 0.3 } }

.scn-before-york-henry-counter {
  background: linear-gradient(180deg, #87CEEB 0%, #b0dff0 40%, #d0e8f0 70%), radial-gradient(ellipse at 80% 10%, #fff4d0 0%, transparent 50%);
}
.scn-before-york-henry-counter .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #97deeb 0%, transparent 100%);
  animation: hen-sky 20s ease-in-out infinite alternate;
}
.scn-before-york-henry-counter .sun {
  position: absolute; top: 6%; right: 15%; width: 55px; height: 55px;
  background: radial-gradient(circle, #fff4d0 0%, #ffe080 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 50px 20px rgba(255,240,200,0.6);
  animation: hen-sun 12s ease-in-out infinite;
}
.scn-before-york-henry-counter .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #7a9a6a 0%, #9aba8a 40%, #b8d8a8 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-before-york-henry-counter .seat {
  position: absolute; bottom: 28%; left: 40%; width: 100px; height: 60px;
  background: linear-gradient(135deg, #c0a070 0%, #a08050 50%, #806030 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 15px rgba(0,0,0,0.3);
  animation: hen-seat 15s ease-in-out infinite;
}
.scn-before-york-henry-counter .king {
  position: absolute; bottom: 38%; left: 45%; width: 35px; height: 65px;
  transform: translateX(-10px);
  background: linear-gradient(180deg, #d4b080 0%, #b0905a 50%, #907040 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: hen-king 8s ease-in-out infinite alternate;
}
.scn-before-york-henry-counter .scroll {
  position: absolute; bottom: 42%; left: 48%; width: 40px; height: 16px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 10px; box-shadow: 1px 1px 3px rgba(0,0,0,0.2);
  transform-origin: left;
  animation: hen-scroll 6s ease-in-out infinite;
}
.scn-before-york-henry-counter .lily {
  position: absolute; bottom: 30%; left: 25%; width: 20px; height: 25px;
  background: radial-gradient(circle, #f0f4ff 0%, #c8d8f0 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  animation: hen-lily 10s ease-in-out infinite;
}
@keyframes hen-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes hen-sun { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.98) } }
@keyframes hen-seat { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hen-king { 0% { transform: translateX(-10px) rotate(0deg) } 50% { transform: translateX(-10px) rotate(1deg) } 100% { transform: translateX(-10px) rotate(-1deg) } }
@keyframes hen-scroll { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes hen-lily { 0% { transform: scale(1) } 50% { transform: scale(1.05) translateY(-2px) } 100% { transform: scale(1) } }

.scn-before-york-knighting {
  background: linear-gradient(180deg, #5a8fc5 0%, #7aafd5 30%, #9acfe5 60%), radial-gradient(ellipse at 50% 30%, #ffe8a0 0%, transparent 60%);
}
.scn-before-york-knighting .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #6a9fd5 0%, transparent 100%);
  animation: kni-sky 10s ease-in-out infinite alternate;
}
.scn-before-york-knighting .sun {
  position: absolute; top: 5%; left: 50%; width: 70px; height: 70px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffe8a0 0%, #ffd060 30%, transparent 60%);
  border-radius: 50%; box-shadow: 0 0 80px 30px rgba(255,232,160,0.7);
  animation: kni-sun 7s ease-in-out infinite;
}
.scn-before-york-knighting .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #5a6a3a 0%, #7a8a5a 40%, #9aaa7a 100%);
  border-radius: 10% 90% 0 0 / 20% 80% 0 0;
}
.scn-before-york-knighting .platform {
  position: absolute; bottom: 28%; left: 50%; width: 160px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(0deg, #6b5b4f 0%, #8b7a6a 100%);
  border-radius: 5px; box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: kni-platform 8s ease-in-out infinite;
}
.scn-before-york-knighting .king {
  position: absolute; bottom: 45%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-40px);
  background: linear-gradient(180deg, #d4a060 0%, #b0803c 50%, #8a5c28 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: kni-king 5s ease-in-out infinite alternate;
}
.scn-before-york-knighting .knight {
  position: absolute; bottom: 42%; left: 50%; width: 38px; height: 60px;
  transform: translateX(10px);
  background: linear-gradient(180deg, #8aaac0 0%, #6a8aa0 50%, #4a6a80 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: kni-knight 4s ease-in-out infinite;
}
.scn-before-york-knighting .sword {
  position: absolute; bottom: 55%; left: 45%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0b090 100%);
  transform-origin: bottom; border-radius: 2px;
  animation: kni-sword 3s ease-in-out infinite;
}
.scn-before-york-knighting .helm {
  position: absolute; bottom: 68%; left: 52%; width: 24px; height: 18px;
  background: linear-gradient(135deg, #c8d8e0 0%, #a8b8c0 50%, #8898a0 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: kni-helm 6s ease-in-out infinite alternate;
}
.scn-before-york-knighting .banner {
  position: absolute; bottom: 30%; right: 20%; width: 45px; height: 80px;
  background: linear-gradient(180deg, #c8553d 0%, #a0402e 50%, #702218 100%);
  transform-origin: bottom; border-radius: 2px;
  animation: kni-banner 4s ease-in-out infinite;
}
@keyframes kni-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes kni-sun { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.08) } 100% { transform: translateX(-50%) scale(0.95) } }
@keyframes kni-platform { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } 100% { transform: translateX(-50%) } }
@keyframes kni-king { 0% { transform: translateX(-40px) rotate(0deg) } 50% { transform: translateX(-40px) rotate(2deg) } 100% { transform: translateX(-40px) rotate(-2deg) } }
@keyframes kni-knight { 0% { transform: translateX(10px) rotate(0deg) } 50% { transform: translateX(10px) rotate(-1deg) } 100% { transform: translateX(10px) rotate(1deg) } }
@keyframes kni-sword { 0% { transform: rotate(0deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(0deg) } }
@keyframes kni-helm { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes kni-banner { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-3deg) } }

.scn-sandal-castle-queen-approaches {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #1a0e05 40%, #0d0802 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-sandal-castle-queen-approaches .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: sqa-floor 12s ease-in-out infinite;
}
.scn-sandal-castle-queen-approaches .wall {
  position: absolute; inset: 0 0 35% 0;
  background:
    linear-gradient(90deg, #1a0e05 0%, #2a1a0a 15%, #1a0e05 85%, #0d0802 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 60%);
  animation: sqa-wall 18s ease-in-out infinite alternate;
}
.scn-sandal-castle-queen-approaches .door {
  position: absolute; bottom: 35%; left: 50%; width: 22%; height: 40%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0d0802 0%, #1a0e05 100%);
  border-radius: 4% 4% 0 0 / 8% 8% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.8), 0 0 0 2px #4a3a2a;
  animation: sqa-door 9s ease-in-out infinite alternate;
}
.scn-sandal-castle-queen-approaches .queen {
  position: absolute; bottom: 40%; left: 30%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sqa-queen 6s ease-in-out infinite;
}
.scn-sandal-castle-queen-approaches .torch-left {
  position: absolute; bottom: 45%; left: 15%; width: 3%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20%;
}
.scn-sandal-castle-queen-approaches .torch-left::after {
  content: ''; position: absolute; top: -40%; left: -50%; width: 200%; height: 80%;
  background: radial-gradient(circle, #ff8a40 0%, #c8553d 40%, transparent 70%);
  border-radius: 50%;
  animation: sqa-torch 1.5s ease-in-out infinite alternate;
}
.scn-sandal-castle-queen-approaches .torch-right {
  position: absolute; bottom: 45%; right: 15%; width: 3%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20%;
}
.scn-sandal-castle-queen-approaches .torch-right::after {
  content: ''; position: absolute; top: -40%; left: -50%; width: 200%; height: 80%;
  background: radial-gradient(circle, #ff8a40 0%, #c8553d 40%, transparent 70%);
  border-radius: 50%;
  animation: sqa-torch 1.8s ease-in-out infinite alternate-reverse;
}
.scn-sandal-castle-queen-approaches .crown-glow {
  position: absolute; bottom: 65%; left: 34%; width: 8%; height: 8%;
  background: radial-gradient(circle, #e0a040 0%, #c08030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(192,128,48,0.6);
  animation: sqa-crown 4s ease-in-out infinite;
}
@keyframes sqa-floor {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02) translateY(-2px); }
  100% { opacity: 0.85; transform: scaleY(0.98); }
}
@keyframes sqa-wall {
  0% { background-position: 0% 0%; }
  50% { background-position: 2% 0%; }
  100% { background-position: -2% 0%; }
}
@keyframes sqa-door {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.03) scaleX(0.98); }
  100% { transform: translateX(-50%) scaleY(0.97); }
}
@keyframes sqa-queen {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(5px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(10px) translateY(0) rotate(0deg); }
  75% { transform: translateX(5px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes sqa-torch {
  0% { opacity: 0.7; transform: scale(0.9); }
  30% { opacity: 1; transform: scale(1.1); }
  60% { opacity: 0.8; transform: scale(1); }
  100% { opacity: 0.9; transform: scale(0.95); }
}
@keyframes sqa-crown {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.3); }
  100% { opacity: 0.6; transform: scale(0.9); }
}

.scn-sandal-castle-montague-departs {
  background:
    linear-gradient(180deg, #1a0e05 0%, #0d0802 40%, #0a0601 100%),
    radial-gradient(ellipse at 50% 70%, #2a1a0a 0%, transparent 60%);
}
.scn-sandal-castle-montague-departs .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a0e05 0%, #0d0802 100%);
  border-radius: 15% 15% 0 0 / 8% 8% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.5);
  animation: smd-floor 14s ease-in-out infinite;
}
.scn-sandal-castle-montague-departs .wall {
  position: absolute; inset: 0 0 35% 0;
  background:
    linear-gradient(90deg, #0d0802 0%, #1a0e05 20%, #0d0802 80%, #0a0601 100%);
  animation: smd-wall 20s ease-in-out infinite alternate;
}
.scn-sandal-castle-montague-departs .doorway {
  position: absolute; bottom: 35%; left: 50%; width: 20%; height: 45%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0601 0%, #1a0e05 100%);
  border-radius: 0 0 4% 4% / 0 0 8% 8%;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.9), 0 0 0 2px #4a3a2a;
  animation: smd-door 10s ease-in-out infinite alternate;
}
.scn-sandal-castle-montague-departs .figure-leaving {
  position: absolute; bottom: 38%; left: 45%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: smd-figure 7s ease-in-out infinite;
}
.scn-sandal-castle-montague-departs .candle {
  position: absolute; bottom: 50%; left: 30%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 20%;
}
.scn-sandal-castle-montague-departs .candle::after {
  content: ''; position: absolute; top: -60%; left: -50%; width: 200%; height: 80%;
  background: radial-gradient(circle, #ffb060 0%, #c8553d 40%, transparent 70%);
  border-radius: 50%;
  animation: smd-candle 2s ease-in-out infinite alternate;
}
.scn-sandal-castle-montague-departs .arch {
  position: absolute; bottom: 45%; left: 25%; width: 50%; height: 30%;
  border: 3px solid #3a2a1a;
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  background: transparent;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: smd-arch 15s ease-in-out infinite alternate;
}
@keyframes smd-floor {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.01) translateY(-1px); }
  100% { opacity: 0.9; transform: scaleY(0.99); }
}
@keyframes smd-wall {
  0% { background-position: 0% 0%; }
  50% { background-position: 3% 0%; }
  100% { background-position: -3% 0%; }
}
@keyframes smd-door {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02) scaleX(0.97); }
  100% { transform: translateX(-50%) scaleY(0.98); }
}
@keyframes smd-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-4px) translateY(-1px) rotate(-1deg); }
  50% { transform: translateX(-8px) translateY(0) rotate(0deg); }
  75% { transform: translateX(-4px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes smd-candle {
  0% { opacity: 0.7; transform: scale(0.8); }
  30% { opacity: 1; transform: scale(1.2); }
  60% { opacity: 0.8; transform: scale(1); }
  100% { opacity: 0.9; transform: scale(0.9); }
}
@keyframes smd-arch {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}

.scn-sandal-castle-ready-for-battle {
  background:
    linear-gradient(180deg, #1a1a0a 0%, #0a0a05 40%, #050502 100%),
    radial-gradient(ellipse at 50% 50%, #2a2a1a 0%, transparent 70%);
}
.scn-sandal-castle-ready-for-battle .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a05 100%);
  border-radius: 10% 10% 0 0 / 5% 5% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
  animation: srb-floor 10s ease-in-out infinite;
}
.scn-sandal-castle-ready-for-battle .wall {
  position: absolute; inset: 0 0 30% 0;
  background:
    linear-gradient(90deg, #0a0a05 0%, #1a1a0a 30%, #0a0a05 70%, #050502 100%);
  animation: srb-wall 16s ease-in-out infinite alternate;
}
.scn-sandal-castle-ready-for-battle .banner {
  position: absolute; bottom: 55%; left: 50%; width: 15%; height: 25%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a0461a 0%, #c8553d 50%, #a0461a 100%);
  border-radius: 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: srb-banner 3s ease-in-out infinite;
}
.scn-sandal-castle-ready-for-battle .soldier-left {
  position: absolute; bottom: 30%; left: 20%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: srb-soldier 5s ease-in-out infinite;
}
.scn-sandal-castle-ready-for-battle .soldier-right {
  position: absolute; bottom: 30%; right: 20%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: srb-soldier 5.5s ease-in-out infinite -1s;
}
.scn-sandal-castle-ready-for-battle .drum {
  position: absolute; bottom: 30%; left: 45%; width: 10%; height: 15%;
  background: linear-gradient(180deg, #5e3a1a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: srb-drum 4s ease-in-out infinite;
}
.scn-sandal-castle-ready-for-battle .sword-glow {
  position: absolute; bottom: 45%; left: 35%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #707080 0%, #404050 100%);
  border-radius: 10%;
  box-shadow: 0 0 12px 4px rgba(200,200,220,0.4);
  animation: srb-sword 2s ease-in-out infinite alternate;
}
@keyframes srb-floor {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02) translateY(-1px); }
  100% { opacity: 0.85; transform: scaleY(0.98); }
}
@keyframes srb-wall {
  0% { background-position: 0% 0%; }
  50% { background-position: 4% 0%; }
  100% { background-position: -4% 0%; }
}
@keyframes srb-banner {
  0%,100% { transform: translateX(-50%) rotate(-2deg); }
  25% { transform: translateX(-50%) rotate(3deg) scaleX(1.05); }
  50% { transform: translateX(-50%) rotate(-1deg); }
  75% { transform: translateX(-50%) rotate(2deg) scaleX(0.95); }
}
@keyframes srb-soldier {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes srb-drum {
  0%,100% { transform: scale(1); }
  25% { transform: scale(1.05) rotate(-3deg); }
  50% { transform: scale(0.98); }
  75% { transform: scale(1.03) rotate(3deg); }
}
@keyframes srb-sword {
  0% { opacity: 0.4; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.1) scaleX(1.2); }
  100% { opacity: 0.5; transform: scaleY(0.9); }
}

.scn-rutland-murder {
  background:
    linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 30%, #1a1a2a 60%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 30%, #4a4a5a 0%, transparent 60%);
}
.scn-rutland-murder .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  animation: rtm-sky 20s ease-in-out infinite alternate;
}
.scn-rutland-murder .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: rtm-ground 12s ease-in-out infinite;
}
.scn-rutland-murder .clifford {
  position: absolute; bottom: 32%; left: 55%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rtm-clifford 6s ease-in-out infinite;
}
.scn-rutland-murder .rutland {
  position: absolute; bottom: 35%; left: 30%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0e0e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rtm-rutland 4s ease-in-out infinite;
}
.scn-rutland-murder .tutor {
  position: absolute; bottom: 36%; left: 40%; width: 9%; height: 28%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: rtm-tutor 5s ease-in-out infinite -1s;
}
.scn-rutland-murder .rock {
  position: absolute; bottom: 10%; left: 10%; width: 25%; height: 20%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 60% 40% 30% 50% / 50% 30% 60% 40%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
  animation: rtm-rock 30s ease-in-out infinite;
}
.scn-rutland-murder .cloud {
  position: absolute; top: 15%; left: 0; width: 100%; height: 20%;
  background: radial-gradient(ellipse at 20% 50%, rgba(200,200,220,0.3) 0%, transparent 50%),
              radial-gradient(ellipse at 80% 50%, rgba(200,200,220,0.2) 0%, transparent 50%);
  filter: blur(8px);
  animation: rtm-cloud 40s linear infinite;
}
@keyframes rtm-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes rtm-ground {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.01) translateY(-1px); }
  100% { opacity: 0.85; transform: scaleY(0.98); }
}
@keyframes rtm-clifford {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(3px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(0) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-2px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes rtm-rutland {
  0%,100% { transform: translateX(0) translateY(0) scale(1); }
  25% { transform: translateX(-2px) translateY(-1px) scale(1.02); }
  50% { transform: translateX(0) translateY(0) scale(0.98); }
  75% { transform: translateX(1px) translateY(-1px) scale(1.01); }
}
@keyframes rtm-tutor {
  0%,100% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(2px) translateY(-2px) rotate(-3deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(-2px) translateY(-1px) rotate(2deg); }
}
@keyframes rtm-rock {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes rtm-cloud {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 0%; }
}

.scn-france-warwick-soldiers {
  background:
    linear-gradient(180deg, #4a3c28 0%, #3a2e1a 40%, #2a1e0a 100%),
    radial-gradient(ellipse at 50% 60%, #6a5a3a 0%, transparent 70%);
}
.scn-france-warwick-soldiers .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #5a4a32 0%, #3a2a12 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.4);
  animation: fws-wall 12s ease-in-out infinite alternate;
}
.scn-france-warwick-soldiers .table {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 6%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: fws-table 6s ease-in-out infinite;
}
.scn-france-warwick-soldiers .soldier-left,
.scn-france-warwick-soldiers .soldier-right {
  position: absolute; bottom: 18%; width: 12%; height: 40%;
  background: radial-gradient(ellipse at 50% 30%, #3a2a1a 20%, #0a0a0a 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: fws-soldier 4s ease-in-out infinite alternate;
}
.scn-france-warwick-soldiers .soldier-left { left: 10%; transform-origin: bottom center; }
.scn-france-warwick-soldiers .soldier-right { right: 10%; transform-origin: bottom center; animation-delay: -2s; }
.scn-france-warwick-soldiers .figure-warwick {
  position: absolute; bottom: 18%; left: 44%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  animation: fws-warwick 8s ease-in-out infinite;
}
.scn-france-warwick-soldiers .banner-left,
.scn-france-warwick-soldiers .banner-right {
  position: absolute; top: 10%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #a0461a 0%, #7a2e0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: fws-banner 10s ease-in-out infinite alternate;
}
.scn-france-warwick-soldiers .banner-left { left: 5%; transform-origin: top left; }
.scn-france-warwick-soldiers .banner-right { right: 5%; transform-origin: top right; animation-delay: -5s; }
.scn-france-warwick-soldiers .spear-1,
.scn-france-warwick-soldiers .spear-2 {
  position: absolute; bottom: 10%; width: 1.5%; height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: fws-spear 7s ease-in-out infinite;
}
.scn-france-warwick-soldiers .spear-1 { left: 15%; transform-origin: bottom center; }
.scn-france-warwick-soldiers .spear-2 { right: 15%; transform-origin: bottom center; animation-delay: -3.5s; }

@keyframes fws-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes fws-table { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px) scale(1.01); } }
@keyframes fws-soldier { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(1px); } }
@keyframes fws-warwick { 0%, 100% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(3px) rotate(1deg); } 66% { transform: translateX(-3px) rotate(-1deg); } }
@keyframes fws-banner { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes fws-spear { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }

.scn-france-warwick-departs {
  background:
    linear-gradient(180deg, #4a3c28 0%, #3a2e1a 40%, #2a1e0a 100%),
    radial-gradient(ellipse at 50% 50%, #5a4a32 0%, transparent 70%);
}
.scn-france-warwick-departs .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #5a4a32 0%, #3a2a12 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.3);
  animation: fwd-wall 15s ease-in-out infinite alternate;
}
.scn-france-warwick-departs .archway {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 70%;
  background: radial-gradient(ellipse at 50% 20%, #6a5a3a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: fwd-arch 20s ease-in-out infinite;
}
.scn-france-warwick-departs .figure-warwick-leaving {
  position: absolute; bottom: 12%; left: 42%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: fwd-leave 8s ease-in-out infinite;
}
.scn-france-warwick-departs .figure-watcher {
  position: absolute; bottom: 10%; width: 10%; height: 40%;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 20%, #1a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: fwd-watcher 6s ease-in-out infinite alternate;
}
.scn-france-warwick-departs .watcher-1 { left: 20%; }
.scn-france-warwick-departs .watcher-2 { right: 20%; animation-delay: -3s; }
.scn-france-warwick-departs .lantern {
  position: absolute; bottom: 50%; left: 46%; width: 6px; height: 10px;
  background: radial-gradient(circle, #ffd680 0%, #c08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px rgba(255,214,128,0.7);
  animation: fwd-lantern 3s ease-in-out infinite alternate;
}
.scn-france-warwick-departs .drape-left,
.scn-france-warwick-departs .drape-right {
  position: absolute; top: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0a 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: fwd-drape 12s ease-in-out infinite alternate;
}
.scn-france-warwick-departs .drape-left { left: 0; transform-origin: top left; }
.scn-france-warwick-departs .drape-right { right: 0; transform-origin: top right; animation-delay: -6s; }

@keyframes fwd-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes fwd-arch { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes fwd-leave { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(2deg); } 50% { transform: translateX(20px) rotate(0deg); } 75% { transform: translateX(30px) rotate(-2deg); } 100% { transform: translateX(40px) rotate(0deg); } }
@keyframes fwd-watcher { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(2px); } }
@keyframes fwd-lantern { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(1px) rotate(-2deg); } }
@keyframes fwd-drape { 0% { transform: rotate(0deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(-3deg); } }

.scn-london-palace-after-marriage {
  background:
    linear-gradient(180deg, #6a5a3a 0%, #4a3a22 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 40%, #8a7a5a 0%, transparent 70%);
}
.scn-london-palace-after-marriage .curtain-curtain-left,
.scn-london-palace-after-marriage .curtain-curtain-right {
  position: absolute; top: 0; width: 18%; height: 100%;
  background: linear-gradient(180deg, #b87878 0%, #7a4a4a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 8px 24px rgba(0,0,0,0.4);
  animation: lpm-curtain 15s ease-in-out infinite alternate;
}
.scn-london-palace-after-marriage .curtain-curtain-left { left: 0; transform-origin: top left; }
.scn-london-palace-after-marriage .curtain-curtain-right { right: 0; transform-origin: top right; animation-delay: -7.5s; }
.scn-london-palace-after-marriage .throne {
  position: absolute; bottom: 15%; left: 40%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a22 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.5);
  animation: lpm-throne 10s ease-in-out infinite;
}
.scn-london-palace-after-marriage .figure-king {
  position: absolute; bottom: 12%; left: 42%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: lpm-king 8s ease-in-out infinite;
}
.scn-london-palace-after-marriage .figure-queen {
  position: absolute; bottom: 10%; left: 50%; width: 10%; height: 38%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: lpm-queen 9s ease-in-out infinite alternate;
}
.scn-london-palace-after-marriage .courtier-1,
.scn-london-palace-after-marriage .courtier-2 {
  position: absolute; bottom: 10%; width: 10%; height: 40%;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 20%, #1a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: lpm-courtier 6s ease-in-out infinite alternate;
}
.scn-london-palace-after-marriage .courtier-1 { left: 20%; }
.scn-london-palace-after-marriage .courtier-2 { right: 20%; animation-delay: -3s; }
.scn-london-palace-after-marriage .crown {
  position: absolute; top: 5%; left: 46%; width: 8%; height: 6%;
  background: radial-gradient(ellipse at 50% 50%, #ffd680 0%, #c08040 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: 0 0 20px 4px rgba(255,214,128,0.6);
  animation: lpm-crown 4s ease-in-out infinite alternate;
}

@keyframes lpm-curtain { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes lpm-throne { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes lpm-king { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(2px) rotate(1deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lpm-queen { 0% { transform: translateX(0) rotate(0deg) scale(1); } 50% { transform: translateX(5px) rotate(2deg) scale(1.02); } 100% { transform: translateX(-5px) rotate(-2deg) scale(0.98); } }
@keyframes lpm-courtier { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(2px); } }
@keyframes lpm-crown { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(2px) rotate(-2deg); } }

.scn-london-palace-edward-defends {
  background:
    linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 40%, #3a2a12 100%),
    radial-gradient(ellipse at 50% 30%, #a09070 0%, transparent 70%);
}
.scn-london-palace-edward-defends .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #6a5a3a 0%, #4a3a22 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.2);
  animation: lpe-wall 20s ease-in-out infinite alternate;
}
.scn-london-palace-edward-defends .window {
  position: absolute; top: 8%; left: 35%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #e0d0b0 0%, #c0b090 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: inset 0 0 40px rgba(255,255,200,0.3), 0 0 50px rgba(255,255,200,0.1);
  animation: lpe-window 12s ease-in-out infinite;
}
.scn-london-palace-edward-defends .throne {
  position: absolute; bottom: 15%; left: 40%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.3);
  animation: lpe-throne 15s ease-in-out infinite alternate;
}
.scn-london-palace-edward-defends .figure-edward {
  position: absolute; bottom: 12%; left: 42%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: lpe-edward 10s ease-in-out infinite;
}
.scn-london-palace-edward-defends .courtier-clarence,
.scn-london-palace-edward-defends .courtier-somerset,
.scn-london-palace-edward-defends .courtier-montague {
  position: absolute; bottom: 10%; width: 10%; height: 38%;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 20%, #1a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: lpe-courtier 8s ease-in-out infinite alternate;
}
.scn-london-palace-edward-defends .courtier-clarence { left: 18%; }
.scn-london-palace-edward-defends .courtier-somerset { left: 30%; animation-delay: -2.7s; }
.scn-london-palace-edward-defends .courtier-montague { right: 18%; animation-delay: -5.3s; }
.scn-london-palace-edward-defends .sunbeam {
  position: absolute; top: 8%; left: 38%; width: 24%; height: 60%;
  background: linear-gradient(180deg, rgba(255,255,200,0.15) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: lpe-sunbeam 25s ease-in-out infinite alternate;
}

@keyframes lpe-wall { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes lpe-window { 0%, 100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-3px); } }
@keyframes lpe-throne { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(1px) rotate(-0.5deg); } }
@keyframes lpe-edward { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(2px) rotate(1deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lpe-courtier { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(2px); } }
@keyframes lpe-sunbeam { 0% { opacity: 0.4; transform: translateX(0); } 50% { opacity: 0.8; transform: translateX(5px); } 100% { opacity: 0.5; transform: translateX(-5px); } }

/* Scene: mortimers-cross-warwick-report */
.scn-mortimers-cross-warwick-report {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2040 40%, #6a3a2a 70%, #c86040 100%), radial-gradient(ellipse at 50% 100%, #6a3a2a 0%, transparent 60%);
}
.scn-mortimers-cross-warwick-report .sky {
  position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #1a1a3e 0%, #3a2a4e 50%, #6a3a2a 100%); animation: mwr-sky 10s ease-in-out infinite alternate;
}
.scn-mortimers-cross-warwick-report .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #2c2040 0%, #0a0a1a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: mwr-hills 18s ease-in-out infinite alternate;
}
.scn-mortimers-cross-warwick-report .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); animation: mwr-ground 8s ease-in-out infinite;
}
.scn-mortimers-cross-warwick-report .horse {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 30px; background: linear-gradient(135deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mwr-horse 4s ease-in-out infinite;
}
.scn-mortimers-cross-warwick-report .rider {
  position: absolute; bottom: 45%; left: 32%; width: 16px; height: 24px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mwr-rider 4s ease-in-out infinite;
}
.scn-mortimers-cross-warwick-report .banner {
  position: absolute; bottom: 40%; left: 45%; width: 14px; height: 50px; background: linear-gradient(180deg, #5e2a1a 0%, #3a1a0a 100%); border-radius: 2px; box-shadow: 1px 0 2px rgba(0,0,0,0.4); animation: mwr-banner 6s ease-in-out infinite;
}
.scn-mortimers-cross-warwick-report .campfire {
  position: absolute; bottom: 10%; left: 60%; width: 24px; height: 24px; background: radial-gradient(circle, #e8a040 0%, #c86040 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 12px rgba(200,96,64,0.5), 0 0 60px 20px rgba(200,96,64,0.2); animation: mwr-campfire 3s ease-in-out infinite alternate;
}
@keyframes mwr-sky { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes mwr-hills { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes mwr-ground { 0%,100%{opacity:0.9} 50%{opacity:1} }
@keyframes mwr-horse { 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(0deg)} }
@keyframes mwr-rider { 0%{transform:translateX(0) translateY(0) rotate(0deg)} 25%{transform:translateX(4px) translateY(-2px) rotate(2deg)} 50%{transform:translateX(8px) translateY(0) rotate(0deg)} 75%{transform:translateX(4px) translateY(-2px) rotate(-2deg)} 100%{transform:translateX(0) translateY(0) rotate(0deg)} }
@keyframes mwr-banner { 0%,100%{transform:rotate(-2deg)} 50%{transform:rotate(2deg)} }
@keyframes mwr-campfire { 0%{box-shadow:0 0 20px 8px rgba(200,96,64,0.4); opacity:0.8} 50%{box-shadow:0 0 40px 15px rgba(200,96,64,0.7); opacity:1} 100%{box-shadow:0 0 25px 10px rgba(200,96,64,0.5); opacity:0.9} }

/* Scene: mortimers-cross-battle-report */
.scn-mortimers-cross-battle-report {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2040 50%, #5a3a2a 80%, #c86040 100%), radial-gradient(ellipse at 30% 100%, #5a3a2a 0%, transparent 70%);
}
.scn-mortimers-cross-battle-report .tent-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1a3e 0%, #3a2a4e 40%, #5a3a2a 80%, #c86040 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: mbr-tent 15s ease-in-out infinite alternate;
}
.scn-mortimers-cross-battle-report .king {
  position: absolute; bottom: 30%; left: 35%; width: 20px; height: 40px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: -2px 0 4px rgba(0,0,0,0.5); animation: mbr-king 5s ease-in-out infinite;
}
.scn-mortimers-cross-battle-report .queen {
  position: absolute; bottom: 28%; left: 55%; width: 22px; height: 44px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 2px 0 4px rgba(0,0,0,0.5); animation: mbr-queen 5s ease-in-out infinite 0.5s;
}
.scn-mortimers-cross-battle-report .table {
  position: absolute; bottom: 28%; left: 30%; right: 30%; height: 8px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 2px; animation: mbr-table 8s ease-in-out infinite;
}
.scn-mortimers-cross-battle-report .candle {
  position: absolute; bottom: 38%; left: 48%; width: 6px; height: 10px; background: linear-gradient(180deg, #e8a040 0%, #c86040 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 -4px 8px 2px rgba(200,96,64,0.6); animation: mbr-candle 2s ease-in-out infinite alternate;
}
.scn-mortimers-cross-battle-report .shadow {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%); border-radius: 50%; animation: mbr-shadow 10s ease-in-out infinite;
}
@keyframes mbr-tent { 0%{opacity:0.8; transform:scaleY(1)} 50%{opacity:1; transform:scaleY(1.02)} 100%{opacity:0.9; transform:scaleY(1)} }
@keyframes mbr-king { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-2px) rotate(1deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes mbr-queen { 0%{transform:translateY(0) rotate(1deg)} 50%{transform:translateY(-1px) rotate(-1deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes mbr-table { 0%,100%{opacity:0.9} 50%{opacity:1} }
@keyframes mbr-candle { 0%{box-shadow:0 -4px 8px 2px rgba(200,96,64,0.4); opacity:0.8} 50%{box-shadow:0 -6px 12px 4px rgba(232,160,64,0.7); opacity:1} 100%{box-shadow:0 -4px 8px 2px rgba(200,96,64,0.5); opacity:0.9} }
@keyframes mbr-shadow { 0%{opacity:0.3} 50%{opacity:0.6} 100%{opacity:0.4} }

/* Scene: mortimers-cross-plans */
.scn-mortimers-cross-plans {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2040 50%, #5a3a2a 80%, #c86040 100%), radial-gradient(ellipse at 60% 100%, #5a3a2a 0%, transparent 60%);
}
.scn-mortimers-cross-plans .tent-flap {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2c2040 0%, #1a1a3e 100%); clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%); animation: mpl-flap 20s ease-in-out infinite alternate;
}
.scn-mortimers-cross-plans .table-plan {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 10px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 2px; box-shadow: 0 -2px 4px rgba(0,0,0,0.4); animation: mpl-table 8s ease-in-out infinite;
}
.scn-mortimers-cross-plans .map {
  position: absolute; bottom: 45%; left: 25%; right: 25%; height: 4px; background: linear-gradient(90deg, #6a5a3a 0%, #8a7a5a 50%, #6a5a3a 100%); transform: rotate(10deg); border-radius: 1px; animation: mpl-map 12s ease-in-out infinite;
}
.scn-mortimers-cross-plans .figure-warwick {
  position: absolute; bottom: 30%; left: 25%; width: 20px; height: 40px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mpl-warwick 5s ease-in-out infinite;
}
.scn-mortimers-cross-plans .figure-george {
  position: absolute; bottom: 30%; right: 25%; width: 20px; height: 40px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mpl-george 5s ease-in-out infinite 0.7s;
}
.scn-mortimers-cross-plans .candle-plan {
  position: absolute; bottom: 45%; left: 48%; width: 6px; height: 12px; background: linear-gradient(180deg, #e8a040 0%, #c86040 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 -4px 8px 3px rgba(200,96,64,0.6); animation: mpl-candle 3s ease-in-out infinite alternate;
}
.scn-mortimers-cross-plans .glow-plan {
  position: absolute; bottom: 40%; left: 45%; right: 45%; height: 20px; background: radial-gradient(ellipse, rgba(232,160,64,0.3) 0%, transparent 70%); border-radius: 50%; animation: mpl-glow 4s ease-in-out infinite alternate;
}
@keyframes mpl-flap { 0%{opacity:0.7; transform:scaleX(1)} 50%{opacity:1; transform:scaleX(1.03)} 100%{opacity:0.8; transform:scaleX(1)} }
@keyframes mpl-table { 0%,100%{opacity:0.8} 50%{opacity:1} }
@keyframes mpl-map { 0%{transform:rotate(8deg) scaleX(1)} 50%{transform:rotate(10deg) scaleX(1.02)} 100%{transform:rotate(8deg) scaleX(1)} }
@keyframes mpl-warwick { 0%{transform:translateY(0) rotate(-2deg)} 25%{transform:translateY(-2px) rotate(1deg)} 50%{transform:translateY(0) rotate(0deg)} 75%{transform:translateY(-2px) rotate(-1deg)} 100%{transform:translateY(0) rotate(2deg)} }
@keyframes mpl-george { 0%{transform:translateY(0) rotate(2deg)} 25%{transform:translateY(-2px) rotate(-1deg)} 50%{transform:translateY(0) rotate(0deg)} 75%{transform:translateY(-2px) rotate(1deg)} 100%{transform:translateY(0) rotate(-2deg)} }
@keyframes mpl-candle { 0%{box-shadow:0 -4px 8px 3px rgba(232,160,64,0.4); opacity:0.8} 50%{box-shadow:0 -6px 12px 5px rgba(232,160,64,0.7); opacity:1} 100%{box-shadow:0 -4px 8px 3px rgba(232,160,64,0.5); opacity:0.9} }
@keyframes mpl-glow { 0%{opacity:0.3; transform:scaleY(1)} 50%{opacity:0.6; transform:scaleY(1.2)} 100%{opacity:0.4; transform:scaleY(1)} }

/* Scene: mortimers-cross-richard-apology */
.scn-mortimers-cross-richard-apology {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2040 40%, #5a3a2a 70%, #c86040 100%), radial-gradient(ellipse at 40% 100%, #5a3a2a 0%, transparent 60%);
}
.scn-mortimers-cross-richard-apology .arch {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2c2040 0%, #1a1a3e 50%, #0a0a1a 100%); clip-path: polygon(20% 0, 80% 0, 70% 100%, 30% 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; animation: mra-arch 20s ease-in-out infinite alternate;
}
.scn-mortimers-cross-richard-apology .sky-apology {
  position: absolute; top: 0; left: 20%; right: 20%; height: 40%; background: linear-gradient(180deg, #1a1a3e 0%, #3a2a4e 50%, #6a3a2a 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); animation: mra-sky 12s ease-in-out infinite alternate;
}
.scn-mortimers-cross-richard-apology .ground-apology {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 60%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); animation: mra-ground 10s ease-in-out infinite;
}
.scn-mortimers-cross-richard-apology .richard {
  position: absolute; bottom: 25%; left: 35%; width: 18px; height: 30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mra-richard 6s ease-in-out infinite;
}
.scn-mortimers-cross-richard-apology .warwick {
  position: absolute; bottom: 30%; left: 55%; width: 22px; height: 44px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mra-warwick 6s ease-in-out infinite 1s;
}
.scn-mortimers-cross-richard-apology .light-shaft {
  position: absolute; top: 0; left: 40%; right: 40%; height: 100%; background: linear-gradient(180deg, rgba(200,96,64,0.3) 0%, transparent 60%); clip-path: polygon(40% 0, 60% 0, 50% 100%, 50% 100%); animation: mra-light 8s ease-in-out infinite alternate;
}
@keyframes mra-arch { 0%{opacity:0.7; transform:scaleY(1)} 50%{opacity:1; transform:scaleY(1.02)} 100%{opacity:0.8; transform:scaleY(1)} }
@keyframes mra-sky { 0%{opacity:0.6} 50%{opacity:0.9} 100%{opacity:0.7} }
@keyframes mra-ground { 0%,100%{opacity:0.8} 50%{opacity:1} }
@keyframes mra-richard { 0%{transform:translateY(0) rotate(0deg)} 30%{transform:translateY(-3px) rotate(-3deg)} 60%{transform:translateY(0) rotate(0deg)} 100%{transform:translateY(-1px) rotate(2deg)} }
@keyframes mra-warwick { 0%{transform:translateY(0) rotate(1deg)} 30%{transform:translateY(-1px) rotate(-1deg)} 60%{transform:translateY(0) rotate(0deg)} 100%{transform:translateY(-1px) rotate(-2deg)} }
@keyframes mra-light { 0%{opacity:0.2; transform:scaleX(1)} 50%{opacity:0.5; transform:scaleX(1.1)} 100%{opacity:0.3; transform:scaleX(1)} }

.scn-forest-keepers-take-henry {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e0e 40%, #1a1208 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 80%);
}
.scn-forest-keepers-take-henry .cabin-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  animation: fk-wall 12s ease-in-out infinite alternate;
}
.scn-forest-keepers-take-henry .cabin-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e0e 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.6);
  animation: fk-floor 8s ease-in-out infinite alternate;
}
.scn-forest-keepers-take-henry .window-frame {
  position: absolute; top: 18%; left: 60%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 0 4px #3a2a1a;
  animation: fk-frame 9s ease-in-out infinite;
}
.scn-forest-keepers-take-henry .window-glow {
  position: absolute; top: 20%; left: 62%; width: 52px; height: 70px;
  background: radial-gradient(circle, #b0a090 0%, #8a7a6a 60%, transparent 100%);
  border-radius: 10%;
  filter: blur(2px);
  animation: fk-glow 5s ease-in-out infinite alternate;
}
.scn-forest-keepers-take-henry .table {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: fk-table 10s ease-in-out infinite;
}
.scn-forest-keepers-take-henry .figure-keeper {
  position: absolute; bottom: 32%; left: 26%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1e0e 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fk-keeper 6s ease-in-out infinite;
}
.scn-forest-keepers-take-henry .figure-henry {
  position: absolute; bottom: 32%; left: 50%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: fk-henry 7s ease-in-out infinite;
}
.scn-forest-keepers-take-henry .candle {
  position: absolute; bottom: 38%; left: 40%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: fk-candle 4s ease-in-out infinite alternate;
}
.scn-forest-keepers-take-henry .candle-glow {
  position: absolute; bottom: 36%; left: 39%; width: 30px; height: 30px;
  background: radial-gradient(circle, #e0d0b0 0%, rgba(200,180,140,0.3) 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: fk-candle-glow 3s ease-in-out infinite alternate;
}
@keyframes fk-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes fk-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fk-frame { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) } }
@keyframes fk-glow { 0% { opacity: 0.6; box-shadow: 0 0 12px 4px rgba(200,180,140,0.2) } 50% { opacity: 1; box-shadow: 0 0 24px 8px rgba(200,180,140,0.4) } 100% { opacity: 0.7; box-shadow: 0 0 16px 6px rgba(200,180,140,0.3) } }
@keyframes fk-table { 0%,100% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-1px) scaleX(1.01) } }
@keyframes fk-keeper { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(6px) translateY(0) rotate(-1deg) } 75% { transform: translateX(9px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(12px) translateY(0) rotate(0) } }
@keyframes fk-henry { 0% { transform: translateX(0) translateY(0) }
  33% { transform: translateX(-4px) translateY(-2px) }
  66% { transform: translateX(2px) translateY(-1px) }
  100% { transform: translateX(0) translateY(0) } }
@keyframes fk-candle { 0% { height: 18px; opacity: 0.8 } 50% { height: 22px; opacity: 1 } 100% { height: 19px; opacity: 0.9 } }
@keyframes fk-candle-glow { 0% { transform: scale(0.8); opacity: 0.5 } 50% { transform: scale(1.2); opacity: 1 } 100% { transform: scale(0.9); opacity: 0.7 } }

.scn-london-palace-edward-wooing {
  background: linear-gradient(135deg, #f0e8d0 0%, #d0c0a0 50%, #b0a080 100%);
  background: linear-gradient(135deg, #f0e8d0 0%, #d0c0a0 50%, #b0a080 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
}
.scn-london-palace-edward-wooing .palace-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b89a 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  animation: lw-wall 15s ease-in-out infinite alternate;
}
.scn-london-palace-edward-wooing .palace-arch-left {
  position: absolute; top: 10%; left: 5%; width: 120px; height: 180px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
  animation: lw-arch 12s ease-in-out infinite alternate;
}
.scn-london-palace-edward-wooing .palace-arch-right {
  position: absolute; top: 10%; right: 5%; width: 120px; height: 180px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
  animation: lw-arch 12s ease-in-out infinite alternate-reverse;
}
.scn-london-palace-edward-wooing .throne {
  position: absolute; bottom: 22%; left: 50%; width: 50px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8b050 0%, #a08830 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: lw-throne 8s ease-in-out infinite;
}
.scn-london-palace-edward-wooing .light-beam {
  position: absolute; top: 0; left: 30%; right: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(255,250,230,0.3) 0%, transparent 100%);
  clip-path: polygon(40% 0%, 60% 0%, 55% 100%, 45% 100%);
  filter: blur(4px);
  animation: lw-beam 6s ease-in-out infinite alternate;
}
.scn-london-palace-edward-wooing .figure-edward {
  position: absolute; bottom: 26%; left: 50%; width: 20px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lw-edward 5s ease-in-out infinite;
}
.scn-london-palace-edward-wooing .figure-ladygrey {
  position: absolute; bottom: 26%; left: 38%; width: 18px; height: 46px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e0e 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  animation: lw-ladygrey 7s ease-in-out infinite;
}
.scn-london-palace-edward-wooing .figure-gloucester {
  position: absolute; bottom: 26%; left: 60%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lw-gloucester 6s ease-in-out infinite;
}
.scn-london-palace-edward-wooing .figure-clarence {
  position: absolute; bottom: 26%; left: 68%; width: 19px; height: 47px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 50% 50% 42% 42% / 58% 58% 42% 42%;
  animation: lw-clarence 7s ease-in-out infinite;
}
@keyframes lw-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes lw-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes lw-throne { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes lw-beam { 0% { opacity: 0.4; transform: rotate(-2deg) } 50% { opacity: 0.7; transform: rotate(0deg) } 100% { opacity: 0.5; transform: rotate(2deg) } }
@keyframes lw-edward { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 25% { transform: translateX(-50%) translateY(-2px) rotate(0deg) } 50% { transform: translateX(-50%) translateY(0) rotate(1deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(0deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg) } }
@keyframes lw-ladygrey { 0% { transform: translateX(0) translateY(0) } 33% { transform: translateX(2px) translateY(-2px) } 66% { transform: translateX(-1px) translateY(0) } 100% { transform: translateX(0) translateY(0) } }
@keyframes lw-gloucester { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes lw-clarence { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) } 100% { transform: translateX(0) } }

.scn-london-palace-gloucester-aside {
  background: linear-gradient(145deg, #e8dcc0 0%, #c8b89a 50%, #a89878 100%), radial-gradient(ellipse at 30% 70%, #fff8e0 0%, transparent 80%);
}
.scn-london-palace-gloucester-aside .palace-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(200,180,140,0.2) 0%, transparent 100%);
  animation: lg-bg 10s ease-in-out infinite alternate;
}
.scn-london-palace-gloucester-aside .curtain-left {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(90deg, #a08060 0%, #c8a880 100%);
  border-radius: 0 30% 30% 0;
  filter: drop-shadow(4px 0 8px rgba(0,0,0,0.3));
  animation: lg-curtain 8s ease-in-out infinite;
}
.scn-london-palace-gloucester-aside .curtain-right {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(270deg, #a08060 0%, #c8a880 100%);
  border-radius: 30% 0 0 30%;
  filter: drop-shadow(-4px 0 8px rgba(0,0,0,0.3));
  animation: lg-curtain 8s ease-in-out infinite reverse;
}
.scn-london-palace-gloucester-aside .figure-gloucester-aside {
  position: absolute; bottom: 22%; left: 30%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1208 100%);
  border-radius: 50% 50% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom;
  animation: lg-gloucester-aside 3s ease-in-out infinite;
}
.scn-london-palace-gloucester-aside .figure-clarence-aside {
  position: absolute; bottom: 22%; left: 45%; width: 22px; height: 53px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 50% 50% 38% 38% / 62% 62% 38% 38%;
  transform-origin: bottom;
  animation: lg-clarence-aside 3.5s ease-in-out infinite;
}
.scn-london-palace-gloucester-aside .aside-whisper-left {
  position: absolute; bottom: 40%; left: 35%; width: 10px; height: 10px;
  background: radial-gradient(circle, #f0e8d0 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: lg-whisper 2s ease-in-out infinite;
}
.scn-london-palace-gloucester-aside .aside-whisper-right {
  position: absolute; bottom: 38%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, #f0e8d0 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: lg-whisper 2.5s ease-in-out infinite alternate;
}
.scn-london-palace-gloucester-aside .comet-star {
  position: absolute; top: 15%; left: 70%; width: 6px; height: 6px;
  background: #ffd880;
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,216,128,0.5);
  animation: lg-comet 4s ease-in-out infinite;
}
@keyframes lg-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes lg-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes lg-gloucester-aside { 0% { transform: rotate(0deg) } 25% { transform: rotate(-8deg) } 50% { transform: rotate(3deg) } 75% { transform: rotate(-5deg) } 100% { transform: rotate(0deg) } }
@keyframes lg-clarence-aside { 0% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(10px) rotate(10deg) } 66% { transform: translateX(-5px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lg-whisper { 0% { opacity: 0; transform: scale(0.5) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: 0; transform: scale(0.5) } }
@keyframes lg-comet { 0% { transform: translate(0,0) scale(1); opacity: 0.8 } 50% { transform: translate(-20px, 10px) scale(1.5); opacity: 1 } 100% { transform: translate(0,0) scale(1); opacity: 0.6 } }

.scn-london-palace-edward-negotiates {
  background: linear-gradient(180deg, #e8dcc0 0%, #d0c0a0 40%, #b0a080 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 70%);
}
.scn-london-palace-edward-negotiates .negotiation-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(200,180,140,0.3) 0%, transparent 100%);
  animation: ln-bg 12s ease-in-out infinite alternate;
}
.scn-london-palace-edward-negotiates .table-negotiation {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 30px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: ln-table 10s ease-in-out infinite;
}
.scn-london-palace-edward-negotiates .document-scroll {
  position: absolute; bottom: 40%; left: 40%; width: 80px; height: 6px;
  background: linear-gradient(90deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 50%;
  transform: rotate(-10deg);
  filter: blur(1px);
  animation: ln-scroll 5s ease-in-out infinite alternate;
}
.scn-london-palace-edward-negotiates .hand-edward {
  position: absolute; bottom: 40%; left: 35%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(20deg);
  animation: ln-hand-left 4s ease-in-out infinite;
}
.scn-london-palace-edward-negotiates .hand-ladygrey {
  position: absolute; bottom: 40%; left: 55%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-15deg);
  animation: ln-hand-right 4.5s ease-in-out infinite;
}
.scn-london-palace-edward-negotiates .inkwell {
  position: absolute; bottom: 38%; left: 50%; width: 16px; height: 24px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e0e 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ln-inkwell 6s ease-in-out infinite;
}
.scn-london-palace-edward-negotiates .seal-stamp {
  position: absolute; bottom: 38%; left: 60%; width: 12px; height: 12px;
  background: #c8a060;
  border-radius: 50%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.2);
  animation: ln-seal 7s ease-in-out infinite;
}
@keyframes ln-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ln-table { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.02) translateY(-2px) } }
@keyframes ln-scroll { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(5px) } 100% { transform: rotate(-12deg) translateX(-3px) } }
@keyframes ln-hand-left { 0% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-5px) } 100% { transform: rotate(20deg) translateY(0) } }
@keyframes ln-hand-right { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-4px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes ln-inkwell { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) translateY(-2px) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes ln-seal { 0% { transform: rotate(0deg) } 50% { transform: rotate(10deg) scale(1.1) } 100% { transform: rotate(0deg) } }

/* london-palace-queen-fright */
.scn-london-palace-queen-fright {
  background: 
    linear-gradient(180deg, #4a3a2e 0%, #7a5a3e 30%, #9a7a5a 60%, #4a3a2e 100%),
    radial-gradient(ellipse at 50% 20%, #d0b080 0%, transparent 60%);
}
.scn-london-palace-queen-fright .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-bottom: 2px solid #2a1a0a;
}
.scn-london-palace-queen-fright .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-london-palace-queen-fright .window {
  position: absolute; top: 15%; left: 18%; width: 80px; height: 110px;
  background: linear-gradient(180deg, #a0c0e0 0%, #7090b0 100%);
  border: 4px solid #4a3a2a;
  border-radius: 6% 6% 4% 4%;
  box-shadow: inset 0 0 30px rgba(160,192,224,.5), 0 0 40px rgba(160,192,224,.3);
  animation: lpqf-window 12s ease-in-out infinite alternate;
}
.scn-london-palace-queen-fright .queen {
  position: absolute; bottom: 28%; left: 58%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lpqf-queen 4s ease-in-out infinite;
}
.scn-london-palace-queen-fright .candle {
  position: absolute; bottom: 36%; left: 72%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #ffe0a0 0%, #d0a050 50%, #8a5a2a 100%);
  border-radius: 20%;
  box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 12px rgba(255,208,128,.4);
  animation: lpqf-candle 2s ease-in-out infinite alternate;
}
.scn-london-palace-queen-fright .shadow {
  position: absolute; bottom: 28%; left: 38%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.7) 0%, transparent 70%);
  opacity: 0.6;
  animation: lpqf-shadow 6s ease-in-out infinite;
}
@keyframes lpqf-window {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .6; }
}
@keyframes lpqf-queen {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-1deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  75% { transform: translateY(-3px) rotate(-1deg); }
}
@keyframes lpqf-candle {
  0% { height: 28px; box-shadow: 0 0 16px 4px #ffd080; }
  50% { height: 32px; box-shadow: 0 0 24px 8px #ffe0a0; }
  100% { height: 26px; box-shadow: 0 0 12px 3px #d0a050; }
}
@keyframes lpqf-shadow {
  0%,100% { transform: scale(1); opacity: 0.5; }
  50% { transform: scale(1.1); opacity: 0.8; }
}

/* london-palace-queen-flees */
.scn-london-palace-queen-flees {
  background: 
    linear-gradient(180deg, #3a2a1e 0%, #6a4a3a 40%, #8a6a4a 70%, #3a2a1e 100%),
    radial-gradient(ellipse at 50% 30%, #c0a070 0%, transparent 50%);
}
.scn-london-palace-queen-flees .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-bottom: 2px solid #1a0a00;
}
.scn-london-palace-queen-flees .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0a0a 100%);
}
.scn-london-palace-queen-flees .door {
  position: absolute; bottom: 25%; right: 20%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border: 3px solid #1a0a00;
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: lpqf2-door 8s ease-in-out infinite alternate;
}
.scn-london-palace-queen-flees .queen {
  position: absolute; bottom: 20%; left: 30%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lpqf2-queen 3s ease-in-out infinite;
}
.scn-london-palace-queen-flees .arm {
  position: absolute; bottom: 55%; left: 25%; width: 8px; height: 20px;
  background: #2a1a0a;
  border-radius: 20%;
  transform-origin: bottom center;
  animation: lpqf2-arm 2s ease-in-out infinite;
}
.scn-london-palace-queen-flees .furniture {
  position: absolute; bottom: 30%; left: 55%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8%;
  transform: rotate(-20deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: lpqf2-furniture 4s ease-in-out infinite;
}
@keyframes lpqf2-door {
  0% { transform: translateX(0); width: 60px; }
  50% { transform: translateX(-40px); width: 20px; }
  100% { transform: translateX(0); width: 60px; }
}
@keyframes lpqf2-queen {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-8px) rotate(-2deg); }
  50% { transform: translateX(-16px) rotate(-1deg); }
  75% { transform: translateX(-24px) rotate(-3deg); }
}
@keyframes lpqf2-arm {
  0%,100% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(30deg) scaleY(1.2); }
}
@keyframes lpqf2-furniture {
  0%,100% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-35deg) translateY(-5px); }
}

/* middleham-park-rescue */
.scn-middleham-park-rescue {
  background: 
    linear-gradient(180deg, #0a0a2a 0%, #1a1a4a 40%, #2a2a5a 70%, #0a0a2a 100%),
    radial-gradient(ellipse at 50% 10%, #4a6a9a 0%, transparent 60%);
}
.scn-middleham-park-rescue .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a1a4a 0%, #2a2a5a 100%);
  animation: mpr-sky 20s ease-in-out infinite alternate;
}
.scn-middleham-park-rescue .moon {
  position: absolute; top: 10%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e0e8f0 0%, #b0c0d0 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #c0d0e0, 0 0 120px 40px rgba(192,208,224,.3);
  animation: mpr-moon 12s ease-in-out infinite alternate;
}
.scn-middleham-park-rescue .trees-back {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  filter: blur(2px);
  animation: mpr-trees 18s ease-in-out infinite alternate;
}
.scn-middleham-park-rescue .trees-fore {
  position: absolute; bottom: 30%; left: -5%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 90% 10% 0 0 / 70% 50% 0 0;
  clip-path: polygon(0% 100%, 10% 60%, 20% 80%, 35% 50%, 50% 70%, 65% 40%, 80% 65%, 95% 50%, 100% 100%);
  animation: mpr-trees 18s ease-in-out infinite alternate 2s;
}
.scn-middleham-park-rescue .figure-gloucester {
  position: absolute; bottom: 35%; left: 15%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: mpr-figure-gloucester 3s ease-in-out infinite;
}
.scn-middleham-park-rescue .figure-hastings {
  position: absolute; bottom: 33%; right: 25%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #000 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: mpr-figure-hastings 3.5s ease-in-out infinite 0.5s;
}
.scn-middleham-park-rescue .figure-stanley {
  position: absolute; bottom: 34%; right: 40%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: mpr-figure-stanley 2.8s ease-in-out infinite 0.8s;
}
.scn-middleham-park-rescue .bush {
  position: absolute; bottom: 30%; left: 60%; width: 50px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #0a0a1a 0%, transparent 70%);
  border-radius: 50%;
  animation: mpr-bush 10s ease-in-out infinite;
}
@keyframes mpr-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes mpr-moon {
  0% { transform: translateX(0) scale(1); opacity: .9; box-shadow: 0 0 50px 15px #c0d0e0; }
  50% { transform: translateX(5px) scale(1.03); opacity: 1; box-shadow: 0 0 70px 25px #d0e0f0; }
  100% { transform: translateX(-3px) scale(.97); opacity: .85; box-shadow: 0 0 40px 10px #a0b0c0; }
}
@keyframes mpr-trees {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes mpr-figure-gloucester {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(2deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
}
@keyframes mpr-figure-hastings {
  0%,100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-1px) rotate(-2deg); }
  60% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes mpr-figure-stanley {
  0%,100% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-1px) rotate(3deg); }
  80% { transform: translateY(-2px) rotate(-2deg); }
}
@keyframes mpr-bush {
  0%,100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}

/* london-tower-henry-freed */
.scn-london-tower-henry-freed {
  background: 
    linear-gradient(180deg, #6a5a4a 0%, #9a8a7a 40%, #baaa9a 70%, #6a5a4a 100%),
    radial-gradient(ellipse at 50% 50%, #d0c0b0 0%, transparent 60%);
}
.scn-london-tower-henry-freed .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-bottom: 4px solid #4a3a2a;
}
.scn-london-tower-henry-freed .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
}
.scn-london-tower-henry-freed .throne {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 6% 6%;
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
  animation: lthf-throne 14s ease-in-out infinite;
}
.scn-london-tower-henry-freed .king {
  position: absolute; bottom: 30%; left: 50%; width: 28px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lthf-king 6s ease-in-out infinite;
}
.scn-london-tower-henry-freed .guard-left {
  position: absolute; bottom: 20%; left: 20%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: lthf-guard 8s ease-in-out infinite;
}
.scn-london-tower-henry-freed .guard-right {
  position: absolute; bottom: 20%; right: 20%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: lthf-guard 8s ease-in-out infinite 2s;
}
.scn-london-tower-henry-freed .torch {
  position: absolute; bottom: 48%; left: 70%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #ffe0a0 0%, #c08040 60%, #8a5a2a 100%);
  border-radius: 20%;
  box-shadow: 0 0 30px 10px #ffc060, 0 0 60px 20px rgba(255,192,96,.3);
  animation: lthf-torch 3s ease-in-out infinite alternate;
}
.scn-london-tower-henry-freed .light-rays {
  position: absolute; top: 5%; left: 10%; right: 10%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,240,200,.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: lthf-rays 10s ease-in-out infinite alternate;
}
@keyframes lthf-throne {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes lthf-king {
  0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); }
  75% { transform: translateX(-50%) translateY(-3px) rotate(1deg); }
}
@keyframes lthf-guard {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes lthf-torch {
  0% { height: 38px; box-shadow: 0 0 20px 6px #ffc060; }
  50% { height: 44px; box-shadow: 0 0 40px 14px #ffe0a0; }
  100% { height: 36px; box-shadow: 0 0 25px 8px #d09040; }
}
@keyframes lthf-rays {
  0% { transform: scale(1); opacity: .6; }
  50% { transform: scale(1.05); opacity: .9; }
  100% { transform: scale(.95); opacity: .5; }
}

/* scene 1: london-palace-warwicks-message (dark mood, bright interior) */
.scn-london-palace-warwicks-message {
  background: linear-gradient(180deg, #3a2a1a 0%, #6a4a2a 40%, #8a6a3a 100%),
              radial-gradient(ellipse at 50% 60%, #b08040 0%, transparent 80%);
}
.scn-london-palace-warwicks-message .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a3a 50%, #4a3a2a 100%); 
  animation: lpw-wall 20s ease-in-out infinite alternate;
}
.scn-london-palace-warwicks-message .window-arch {
  position: absolute; top: 12%; left: 30%; width: 120px; height: 160px; 
  background: radial-gradient(ellipse at 50% 40%, #8a7a5a 0%, #3a2a1a 70%); 
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%; 
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6); 
  animation: lpw-arch 12s ease-in-out infinite;
}
.scn-london-palace-warwicks-message .dais {
  position: absolute; bottom: 20%; left: 20%; width: 200px; height: 30px; 
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%); 
  border-radius: 10% 10% 0 0; transform: perspective(300px) rotateX(20deg); 
  box-shadow: 0 -10px 20px rgba(0,0,0,0.5); 
  animation: lpw-dais 15s ease-in-out infinite alternate;
}
.scn-london-palace-warwicks-message .queen-figure {
  position: absolute; bottom: 24%; left: 28%; width: 40px; height: 90px; 
  background: linear-gradient(180deg, #c87040 0%, #8a5030 50%, #4a2a1a 100%); 
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; 
  transform-origin: bottom center; 
  animation: lpw-queen 7s ease-in-out infinite;
}
.scn-london-palace-warwicks-message .armor-hint {
  position: absolute; bottom: 30%; left: 31%; width: 16px; height: 30px; 
  background: radial-gradient(ellipse at 50% 20%, #b0a090 0%, #706050 100%); 
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; 
  filter: blur(1px); 
  animation: lpw-armor 4s ease-in-out infinite alternate;
}
.scn-london-palace-warwicks-message .candle-glow {
  position: absolute; bottom: 18%; left: 48%; width: 12px; height: 20px; 
  background: linear-gradient(180deg, #ffd080 0%, #ffa050 100%); 
  border-radius: 50% 50% 10% 10%; 
  box-shadow: 0 0 30px 15px rgba(255,160,80,0.6), 0 0 60px 30px rgba(255,160,80,0.3); 
  animation: lpw-candle 3s ease-in-out infinite alternate;
}
.scn-london-palace-warwicks-message .scroll {
  position: absolute; bottom: 22%; left: 38%; width: 30px; height: 8px; 
  background: linear-gradient(90deg, #d0c0a0 0%, #b0a080 50%, #d0c0a0 100%); 
  border-radius: 10px; transform: rotate(10deg); 
  animation: lpw-scroll 6s ease-in-out infinite;
}
@keyframes lpw-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lpw-arch { 0% { filter: brightness(0.8); } 50% { filter: brightness(1); } 100% { filter: brightness(0.85); } }
@keyframes lpw-dais { 0% { transform: perspective(300px) rotateX(18deg) translateY(0); } 50% { transform: perspective(300px) rotateX(22deg) translateY(-2px); } 100% { transform: perspective(300px) rotateX(20deg) translateY(0); } }
@keyframes lpw-queen { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes lpw-armor { 0% { opacity: 0.5; filter: blur(2px); } 50% { opacity: 0.8; filter: blur(1px); } 100% { opacity: 0.6; filter: blur(1.5px); } }
@keyframes lpw-candle { 0% { transform: scaleY(1) scaleX(1); filter: brightness(0.8); } 50% { transform: scaleY(1.1) scaleX(1.05); filter: brightness(1.2); } 100% { transform: scaleY(0.95) scaleX(1); filter: brightness(0.9); } }
@keyframes lpw-scroll { 0% { transform: rotate(8deg) translateX(0); } 50% { transform: rotate(14deg) translateX(4px); } 100% { transform: rotate(10deg) translateX(0); } }

/* scene 2: london-palace-clarence-defects (tense, bright interior) */
.scn-london-palace-clarence-defects {
  background: linear-gradient(180deg, #5a4a3a 0%, #7a6a5a 40%, #9a8a7a 100%),
              radial-gradient(ellipse at 50% 30%, #c0b0a0 0%, transparent 80%);
}
.scn-london-palace-clarence-defects .hall-bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 50%, #6a5a4a 100%); 
  animation: lpc-hall 18s ease-in-out infinite alternate;
}
.scn-london-palace-clarence-defects .doorway {
  position: absolute; top: 10%; right: 25%; width: 100px; height: 180px; 
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 100%); 
  border-radius: 10% 10% 0 0 / 30% 30% 0 0; 
  box-shadow: inset 0 0 40px rgba(0,0,0,0.7); 
  animation: lpc-door 14s ease-in-out infinite;
}
.scn-london-palace-clarence-defects .clarence-figure {
  position: absolute; bottom: 25%; right: 30%; width: 38px; height: 80px; 
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 50%, #2a1a0a 100%); 
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; 
  transform-origin: bottom center; 
  animation: lpc-clarence 5s ease-in-out infinite;
}
.scn-london-palace-clarence-defects .somerset-figure {
  position: absolute; bottom: 25%; right: 48%; width: 36px; height: 78px; 
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 50%, #3a2a1a 100%); 
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; 
  transform-origin: bottom center; 
  animation: lpc-somerset 6s ease-in-out infinite reverse;
}
.scn-london-palace-clarence-defects .step-shadow {
  position: absolute; bottom: 20%; left: 45%; width: 80px; height: 15px; 
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.3) 50%, transparent 100%); 
  border-radius: 50%; filter: blur(4px); 
  animation: lpc-step 8s ease-in-out infinite alternate;
}
.scn-london-palace-clarence-defects .torch-glow {
  position: absolute; top: 20%; left: 60%; width: 20px; height: 30px; 
  background: radial-gradient(ellipse at 50% 30%, #ffcc80 0%, #ff8840 50%, #803000 100%); 
  border-radius: 50% 50% 20% 20%; 
  box-shadow: 0 0 40px 20px rgba(255,136,64,0.5), 0 0 80px 40px rgba(255,136,64,0.2); 
  animation: lpc-torch 3s ease-in-out infinite alternate;
}
@keyframes lpc-hall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lpc-door { 0% { box-shadow: inset 0 0 30px rgba(0,0,0,0.5); } 50% { box-shadow: inset 0 0 50px rgba(0,0,0,0.8); } 100% { box-shadow: inset 0 0 40px rgba(0,0,0,0.6); } }
@keyframes lpc-clarence { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(10px) translateY(-4px) rotate(2deg); } 50% { transform: translateX(20px) translateY(0) rotate(-1deg); } 75% { transform: translateX(28px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(36px) translateY(0) rotate(0); } }
@keyframes lpc-somerset { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(-6px) translateY(-2px); } 50% { transform: translateX(0) translateY(0); } 75% { transform: translateX(4px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes lpc-step { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.2); } 100% { opacity: 0.4; transform: scaleX(0.9); } }
@keyframes lpc-torch { 0% { transform: scale(0.9); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.85; } }

/* scene 3: london-palace-test-loyalty (tense, bright interior) */
.scn-london-palace-test-loyalty {
  background: linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 50%, #8a7a6a 100%),
              radial-gradient(ellipse at 60% 50%, #c0b0a0 0%, transparent 70%);
}
.scn-london-palace-test-loyalty .throne-bg {
  position: absolute; bottom: 20%; left: 20%; width: 120px; height: 180px; 
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); 
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%; 
  box-shadow: 8px 8px 20px rgba(0,0,0,0.5); 
  animation: lpt-throne 16s ease-in-out infinite alternate;
}
.scn-london-palace-test-loyalty .king-figure {
  position: absolute; bottom: 24%; left: 23%; width: 40px; height: 85px; 
  background: linear-gradient(180deg, #c87040 0%, #8a5030 50%, #4a2a1a 100%); 
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; 
  transform-origin: bottom center; 
  animation: lpt-king 6s ease-in-out infinite;
}
.scn-london-palace-test-loyalty .hastings-figure {
  position: absolute; bottom: 25%; left: 48%; width: 34px; height: 76px; 
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 50%, #3a2a1a 100%); 
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; 
  transform-origin: bottom center; 
  animation: lpt-hast 5s ease-in-out infinite reverse;
}
.scn-london-palace-test-loyalty .montague-figure {
  position: absolute; bottom: 25%; left: 62%; width: 34px; height: 76px; 
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 50%, #3a2a1a 100%); 
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; 
  transform-origin: bottom center; 
  animation: lpt-mont 5.5s ease-in-out infinite;
}
.scn-london-palace-test-loyalty .light-beam {
  position: absolute; top: 0; left: 35%; width: 100px; height: 100%; 
  background: linear-gradient(180deg, rgba(255,220,160,0.15) 0%, rgba(255,220,160,0.05) 50%, transparent 100%); 
  filter: blur(10px); 
  animation: lpt-beam 10s ease-in-out infinite alternate;
}
.scn-london-palace-test-loyalty .floor-tile {
  position: absolute; bottom: 18%; left: 20%; width: 200px; height: 20px; 
  background: repeating-linear-gradient(90deg, #6a5a4a 0px, #6a5a4a 20px, #8a7a6a 20px, #8a7a6a 40px); 
  transform: perspective(200px) rotateX(10deg); 
  animation: lpt-floor 12s ease-in-out infinite alternate;
}
@keyframes lpt-throne { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes lpt-king { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(1deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes lpt-hast { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(-4px) translateY(-2px); } 50% { transform: translateX(0) translateY(0); } 75% { transform: translateX(3px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes lpt-mont { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(-3px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes lpt-beam { 0% { opacity: 0.3; filter: blur(15px); } 50% { opacity: 0.6; filter: blur(8px); } 100% { opacity: 0.4; filter: blur(12px); } }
@keyframes lpt-floor { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }

/* scene 4: warwickshire-plain-warwick (tense, dim interior – tent/plain) */
.scn-warwickshire-plain-warwick {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 70%, #6a4a2a 0%, transparent 80%);
}
.scn-warwickshire-plain-warwick .tent-sky {
  position: absolute; inset: 0 0 40% 0; 
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); 
  animation: wbp-sky 20s ease-in-out infinite alternate;
}
.scn-warwickshire-plain-warwick .tent-wall {
  position: absolute; bottom: 10%; left: 10%; width: 300px; height: 80px; 
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%); 
  border-radius: 30% 30% 0 0 / 80% 80% 0 0; 
  box-shadow: 0 -10px 20px rgba(0,0,0,0.7); 
  animation: wbp-wall 15s ease-in-out infinite;
}
.scn-warwickshire-plain-warwick .warwick-figure {
  position: absolute; bottom: 18%; left: 30%; width: 42px; height: 90px; 
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 50%, #2a1a0a 100%); 
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; 
  transform-origin: bottom center; 
  animation: wbp-warwick 7s ease-in-out infinite;
}
.scn-warwickshire-plain-warwick .soldier-line {
  position: absolute; bottom: 14%; left: 40%; width: 120px; height: 50px; 
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 30%, #3a2a1a 60%, #4a3a2a 100%); 
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%; 
  filter: blur(2px); 
  animation: wbp-sold 10s ease-in-out infinite alternate;
}
.scn-warwickshire-plain-warwick .banner-pole {
  position: absolute; top: 5%; left: 45%; width: 4px; height: 150px; 
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); 
  animation: wbp-pole 8s ease-in-out infinite;
}
.scn-warwickshire-plain-warwick .fire-pit {
  position: absolute; bottom: 8%; left: 50%; width: 40px; height: 20px; 
  background: radial-gradient(ellipse at 50% 50%, #ff8840 0%, #803000 60%, transparent 100%); 
  border-radius: 50%; 
  box-shadow: 0 0 30px 15px rgba(255,136,64,0.4), 0 0 60px 30px rgba(255,136,64,0.2); 
  animation: wbp-fire 3s ease-in-out infinite alternate;
}
.scn-warwickshire-plain-warwick .ground-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; 
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%); 
  animation: wbp-ground 12s ease-in-out infinite alternate;
}
@keyframes wbp-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes wbp-wall { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.98); } }
@keyframes wbp-warwick { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-4px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes wbp-sold { 0% { opacity: 0.5; filter: blur(3px); transform: scaleX(1); } 50% { opacity: 0.8; filter: blur(1px); transform: scaleX(1.1); } 100% { opacity: 0.6; filter: blur(2px); transform: scaleX(0.95); } }
@keyframes wbp-pole { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-0.5deg); } }
@keyframes wbp-fire { 0% { transform: scale(0.9); opacity: 0.7; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(1); opacity: 0.8; } }
@keyframes wbp-ground { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.4; } }

/* mortimers-cross-suns */
.scn-mortimers-cross-suns {
  background: linear-gradient(180deg, #fbd1a0 0%, #e8a06a 40%, #c07040 70%, #8a5030 100%),
              radial-gradient(ellipse at 50% 80%, #f0c080 0%, transparent 60%);
}
.scn-mortimers-cross-suns .sky-mcs {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fce8c0 0%, #f8b880 40%, #c88050 100%);
  animation: mcs-sky 12s ease-in-out infinite alternate;
}
.scn-mortimers-cross-suns .ground-mcs {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #6a4a28 0%, #3a2a14 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-mortimers-cross-suns .sun-mcs {
  position: absolute; top: 12%; left: 38%; width: 60px; height: 60px;
  background: radial-gradient(circle at 50% 50%, #ffe680 0%, #f0a030 60%, #c06020 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(240,160,48,.6), 0 0 80px 40px rgba(240,160,48,.3);
  animation: mcs-sun 10s ease-in-out infinite alternate;
}
.scn-mortimers-cross-suns .fig-edward-mcs {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mcs-march 4s ease-in-out infinite;
}
.scn-mortimers-cross-suns .fig-richard-mcs {
  position: absolute; bottom: 20%; left: 50%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1805 0%, #0f0d02 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mcs-march 4s ease-in-out infinite 0.5s;
}
.scn-mortimers-cross-suns .banner-a {
  position: absolute; bottom: 38%; left: 28%; width: 4px; height: 60px;
  background: #4a3018;
  border-radius: 2px;
}
.scn-mortimers-cross-suns .banner-b {
  position: absolute; bottom: 38%; left: 52%; width: 4px; height: 60px;
  background: #4a3018;
  border-radius: 2px;
}
.scn-mortimers-cross-suns .banner-a::before {
  content: '';
  position: absolute; top: -10px; left: -8px; width: 28px; height: 18px;
  background: linear-gradient(180deg, #b87878 0%, #8a5050 100%);
  border-radius: 0 40% 40% 0;
  transform-origin: left center;
  animation: mcs-flag 2s ease-in-out infinite;
}
.scn-mortimers-cross-suns .banner-b::before {
  content: '';
  position: absolute; top: -10px; left: -8px; width: 28px; height: 18px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 0 40% 40% 0;
  transform-origin: left center;
  animation: mcs-flag 2.4s ease-in-out infinite -0.6s;
}
@keyframes mcs-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes mcs-sun { 0% { transform: scale(.9) translateY(0); } 50% { transform: scale(1.1) translateY(-4px); } 100% { transform: scale(1) translateY(2px); } }
@keyframes mcs-march { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(1deg) scaleY(1.02); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(24px) rotate(1deg) scaleY(0.98); } 100% { transform: translateX(32px) rotate(0); } }
@keyframes mcs-flag { 0% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(10deg) scaleX(1.1); } 100% { transform: rotate(-10deg) scaleX(1); } }

/* mortimers-cross-richard-speech */
.scn-mortimers-cross-richard-speech {
  background: linear-gradient(180deg, #fbd1a0 0%, #da9050 40%, #a06030 70%, #6a3818 100%),
              radial-gradient(ellipse at 50% 90%, #d08040 0%, transparent 70%);
}
.scn-mortimers-cross-richard-speech .sky-mcr {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffe0b0 0%, #f0b060 50%, #c07040 100%);
  animation: mcr-sky 14s ease-in-out infinite alternate;
}
.scn-mortimers-cross-richard-speech .ground-mcr {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a5a30 0%, #4a2a10 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
}
.scn-mortimers-cross-richard-speech .sun-mcr {
  position: absolute; top: 10%; left: 45%; width: 50px; height: 50px;
  background: radial-gradient(circle at 50% 50%, #ffe680 0%, #f0a030 60%, #c06020 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(240,160,48,.5);
  animation: mcr-sun 12s ease-in-out infinite alternate;
}
.scn-mortimers-cross-richard-speech .richard-mcr {
  position: absolute; bottom: 18%; left: 35%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mcr-fight 2s ease-in-out infinite;
}
.scn-mortimers-cross-richard-speech .lion-mcr {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 25px;
  background: radial-gradient(circle at 40% 40%, #d08030 0%, #a05820 50%, #683010 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mcr-lunge 1.6s ease-in-out infinite;
}
.scn-mortimers-cross-richard-speech .spear-1 {
  position: absolute; bottom: 32%; left: 25%; width: 3px; height: 70px;
  background: #5a3a1a;
  border-radius: 1px;
  transform-origin: bottom center;
  animation: mcr-spear 3s ease-in-out infinite;
}
.scn-mortimers-cross-richard-speech .spear-2 {
  position: absolute; bottom: 32%; left: 65%; width: 3px; height: 70px;
  background: #5a3a1a;
  border-radius: 1px;
  transform-origin: bottom center;
  animation: mcr-spear 3.4s ease-in-out infinite -0.8s;
}
@keyframes mcr-sky { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .75; } }
@keyframes mcr-sun { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-3px); } 100% { transform: scale(.95) translateY(1px); } }
@keyframes mcr-fight { 0% { transform: translateX(0) rotate(-3deg) scaleY(1); } 25% { transform: translateX(10px) rotate(3deg) scaleY(1.03); } 50% { transform: translateX(20px) rotate(-2deg) scaleY(0.98); } 75% { transform: translateX(10px) rotate(2deg) scaleY(1.02); } 100% { transform: translateX(0) rotate(0) scaleY(1); } }
@keyframes mcr-lunge { 0% { transform: rotate(-10deg) scaleX(1) translateX(-5px); } 25% { transform: rotate(20deg) scaleX(1.1) translateX(10px); } 50% { transform: rotate(0deg) scaleX(0.9) translateX(5px); } 75% { transform: rotate(-15deg) scaleX(1.05) translateX(-10px); } 100% { transform: rotate(-10deg) scaleX(1) translateX(-5px); } }
@keyframes mcr-spear { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(5deg) translateX(6px); } 100% { transform: rotate(-5deg) translateX(0); } }

/* mortimers-cross-three-suns */
.scn-mortimers-cross-three-suns {
  background: linear-gradient(180deg, #fce0b0 0%, #e8a060 40%, #c07040 70%, #8a5030 100%),
              radial-gradient(ellipse at 50% 60%, #f0c080 0%, transparent 60%);
}
.scn-mortimers-cross-three-suns .sky-mct {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffe8c0 0%, #f8b870 50%, #d08050 100%);
  animation: mct-sky 15s ease-in-out infinite alternate;
}
.scn-mortimers-cross-three-suns .cloud-a {
  position: absolute; top: 15%; left: 10%; width: 90px; height: 20px;
  background: rgba(255,255,255,.4);
  border-radius: 50%;
  filter: blur(8px);
  animation: mct-drift 40s linear infinite;
}
.scn-mortimers-cross-three-suns .cloud-b {
  position: absolute; top: 25%; right: 15%; width: 70px; height: 16px;
  background: rgba(255,255,255,.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: mct-drift 55s linear infinite reverse;
}
.scn-mortimers-cross-three-suns .sun-1 {
  position: absolute; top: 8%; left: 20%; width: 45px; height: 45px;
  background: radial-gradient(circle at 50% 50%, #ffe680 0%, #f0a030 60%, #c06020 100%);
  border-radius: 50%;
  box-shadow: 0 0 25px 12px rgba(240,160,48,.5), 0 0 50px 25px rgba(240,160,48,.2);
  animation: mct-pulse 4s ease-in-out infinite;
}
.scn-mortimers-cross-three-suns .sun-2 {
  position: absolute; top: 5%; left: 46%; width: 50px; height: 50px;
  background: radial-gradient(circle at 50% 50%, #ffe680 0%, #f0a030 60%, #c06020 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(240,160,48,.5), 0 0 60px 30px rgba(240,160,48,.2);
  animation: mct-pulse 5s ease-in-out infinite -1.2s;
}
.scn-mortimers-cross-three-suns .sun-3 {
  position: absolute; top: 10%; left: 70%; width: 42px; height: 42px;
  background: radial-gradient(circle at 50% 50%, #ffe680 0%, #f0a030 60%, #c06020 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(240,160,48,.5), 0 0 40px 20px rgba(240,160,48,.2);
  animation: mct-pulse 3.6s ease-in-out infinite -2s;
}
.scn-mortimers-cross-three-suns .figure-mct {
  position: absolute; bottom: 15%; left: 48%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mct-gaze 6s ease-in-out infinite;
}
@keyframes mct-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes mct-drift { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }
@keyframes mct-pulse { 0% { transform: scale(1) rotate(0deg); opacity: .9; } 50% { transform: scale(1.1) rotate(10deg); opacity: 1; } 100% { transform: scale(.95) rotate(-5deg); opacity: .85; } }
@keyframes mct-gaze { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(0) rotate(5deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-5deg); } }

/* mortimers-cross-richard-jest */
.scn-mortimers-cross-richard-jest {
  background: linear-gradient(180deg, #ffe8b0 0%, #e8b060 40%, #c08040 70%, #906030 100%),
              radial-gradient(ellipse at 50% 80%, #f0c080 0%, transparent 60%);
}
.scn-mortimers-cross-richard-jest .sky-mcj {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fff0c0 0%, #f8c080 50%, #d09050 100%);
  animation: mcj-sky 10s ease-in-out infinite alternate;
}
.scn-mortimers-cross-richard-jest .ground-mcj {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #7a5a30 0%, #4a2a10 100%);
  border-radius: 30% 70% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 6px 16px rgba(0,0,0,.5);
}
.scn-mortimers-cross-richard-jest .richard-mcj {
  position: absolute; bottom: 18%; left: 38%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mcj-jester 1.8s ease-in-out infinite;
}
.scn-mortimers-cross-richard-jest .messenger-mcj {
  position: absolute; bottom: 18%; left: 60%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2810 0%, #1a1408 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mcj-enter 3s ease-in-out infinite -1s;
}
.scn-mortimers-cross-richard-jest .daughter-a {
  position: absolute; bottom: 20%; left: 20%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #5a3820 0%, #3a2010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mcj-bob 2.4s ease-in-out infinite;
}
.scn-mortimers-cross-richard-jest .daughter-b {
  position: absolute; bottom: 20%; left: 28%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #5a3820 0%, #3a2010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mcj-bob 2.8s ease-in-out infinite -0.6s;
}
.scn-mortimers-cross-richard-jest .daughter-c {
  position: absolute; bottom: 20%; left: 36%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #5a3820 0%, #3a2010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mcj-bob 3.2s ease-in-out infinite -1.2s;
}
.scn-mortimers-cross-richard-jest .banner-mcj {
  position: absolute; bottom: 35%; left: 55%; width: 3px; height: 50px;
  background: #5a3a1a;
}
.scn-mortimers-cross-richard-jest .banner-mcj::before {
  content: '';
  position: absolute; top: -8px; left: -6px; width: 24px; height: 16px;
  background: linear-gradient(180deg, #b87878 0%, #8a5050 100%);
  border-radius: 0 40% 40% 0;
  transform-origin: left center;
  animation: mcj-flap 1.2s ease-in-out infinite;
}
@keyframes mcj-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes mcj-jester { 0% { transform: translateX(0) rotate(-8deg) scaleY(1); } 25% { transform: translateX(6px) rotate(5deg) scaleY(1.05); } 50% { transform: translateX(-4px) rotate(-10deg) scaleY(0.95); } 75% { transform: translateX(8px) rotate(3deg) scaleY(1.02); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes mcj-enter { 0% { transform: translateX(30px) scaleX(0.8); opacity: .3; } 25% { transform: translateX(5px) scaleX(1); opacity: 1; } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(5px) rotate(-2deg); } 100% { transform: translateX(30px) scaleX(0.8); opacity: .3; } }
@keyframes mcj-bob { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-5px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes mcj-flap { 0% { transform: rotate(-15deg) scaleX(1); } 50% { transform: rotate(15deg) scaleX(1.2); } 100% { transform: rotate(-15deg) scaleX(1); } }

.scn-london-tower-richmond-sent-away {
  background: linear-gradient(135deg, #f5e6c8 0%, #d4b896 40%, #b89a7a 100%), radial-gradient(ellipse at 30% 20%, #fdf4e3 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-london-tower-richmond-sent-away .room-back {
  position: absolute; inset: 0; background: linear-gradient(180deg, #c9a884 0%, #8b6f50 100%);
}
.scn-london-tower-richmond-sent-away .window-left {
  position: absolute; top: 10%; left: 15%; width: 30%; height: 35%;
  background: linear-gradient(180deg, #ffe8d0 0%, #d4b896 100%); border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 30px rgba(255,232,208,0.4); animation: lt-window 6s ease-in-out infinite alternate;
}
.scn-london-tower-richmond-sent-away .window-right {
  position: absolute; top: 10%; right: 15%; width: 30%; height: 35%;
  background: linear-gradient(180deg, #ffe8d0 0%, #d4b896 100%); border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 30px rgba(255,232,208,0.4); animation: lt-window 6s ease-in-out infinite alternate-reverse;
}
.scn-london-tower-richmond-sent-away .table {
  position: absolute; bottom: 28%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #6b4f3a 0%, #4a3426 100%); border-radius: 6px;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.3); animation: lt-table 8s ease-in-out infinite;
}
.scn-london-tower-richmond-sent-away .figure-somerset {
  position: absolute; bottom: 22%; left: 30%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a120e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: lt-figure 4s ease-in-out infinite;
}
.scn-london-tower-richmond-sent-away .figure-richmond {
  position: absolute; bottom: 22%; right: 26%; width: 13%; height: 30%;
  background: linear-gradient(180deg, #3a2a22 0%, #1e1612 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: lt-figure 4.5s ease-in-out infinite reverse;
}
.scn-london-tower-richmond-sent-away .shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 80%);
  animation: lt-shadow 9s ease-in-out infinite alternate;
}
.scn-london-tower-richmond-sent-away .candle {
  position: absolute; bottom: 36%; left: 48%; width: 2%; height: 6%;
  background: linear-gradient(180deg, #f0d090 0%, #c8a060 100%);
  border-radius: 2px; box-shadow: 0 0 20px 6px #f0d090, 0 0 40px 12px rgba(240,208,144,0.3);
  animation: lt-candle 2s ease-in-out infinite alternate;
}
@keyframes lt-window {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.85; transform: scaleY(0.95); }
}
@keyframes lt-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes lt-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lt-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}
@keyframes lt-candle {
  0% { opacity: 0.8; box-shadow: 0 0 15px 4px #f0d090; }
  50% { opacity: 1; box-shadow: 0 0 30px 8px #f0d090, 0 0 50px 14px rgba(240,208,144,0.3); }
  100% { opacity: 0.9; box-shadow: 0 0 20px 6px #f0d090; }
}

.scn-before-york-edward-returns {
  background: linear-gradient(180deg, #fde8c0 0%, #e6c088 30%, #c89a5e 60%, #8a6a3a 100%), radial-gradient(ellipse at 50% 0%, #fff4e0 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-before-york-edward-returns .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b8d0e0 0%, #f0d8b0 100%);
  animation: bye-sky 15s ease-in-out infinite alternate;
}
.scn-before-york-edward-returns .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a8a4a 0%, #4a6a2a 100%);
  border-radius: 30% 30% 0 0 / 100% 100% 0 0;
}
.scn-before-york-edward-returns .castle-wall {
  position: absolute; bottom: 35%; left: 10%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #9a8a6a 0%, #6a5a3a 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 6px 20px rgba(0,0,0,0.3);
  animation: bye-castle 12s ease-in-out infinite alternate;
}
.scn-before-york-edward-returns .banner-af {
  position: absolute; bottom: 62%; left: 22%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #a0461a 0%, #5e1a1d 100%);
  border-radius: 0 0 50% 50%; transform-origin: top center;
  animation: bye-banner 4s ease-in-out infinite;
}
.scn-before-york-edward-returns .banner-ab {
  position: absolute; bottom: 62%; left: 42%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #702243 0%, #3a101f 100%);
  border-radius: 0 0 50% 50%; transform-origin: top center;
  animation: bye-banner 5s ease-in-out infinite reverse;
}
.scn-before-york-edward-returns .king {
  position: absolute; bottom: 15%; left: 35%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #d4b060 0%, #a08640 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 30px rgba(0,0,0,0.4);
  transform-origin: bottom center; animation: bye-king 4s ease-in-out infinite;
}
.scn-before-york-edward-returns .soldiers {
  position: absolute; bottom: 12%; left: 50%; width: 30%; height: 35%;
  background: repeating-linear-gradient(90deg, #4a3a2a 0%, #4a3a2a 8%, transparent 8%, transparent 12%);
  border-radius: 30% 30% 20% 20%; mask-image: radial-gradient(ellipse 80% 100% at 50% 100%, black 60%, transparent 80%);
  animation: bye-soldiers 8s ease-in-out infinite alternate;
}
.scn-before-york-edward-returns .sunburst {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(circle, #fff8e0 0%, transparent 70%);
  opacity: 0.3; animation: bye-sun 20s linear infinite;
}
@keyframes bye-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes bye-castle {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes bye-banner {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(10deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-10deg); }
  100% { transform: rotate(0deg); }
}
@keyframes bye-king {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(4px) rotate(2deg); }
  60% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bye-soldiers {
  0% { opacity: 0.7; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.02); }
  100% { opacity: 0.8; transform: scaleX(0.98); }
}
@keyframes bye-sun {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.scn-before-york-mayor-resists {
  background: linear-gradient(180deg, #e8c888 0%, #b89050 50%, #7a5a30 100%), radial-gradient(ellipse at 50% 100%, #f0d8a0 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-before-york-mayor-resists .wall-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b0c0d0 0%, #e0d0b0 100%);
  animation: bym-sky 12s ease-in-out infinite alternate;
}
.scn-before-york-mayor-resists .wall-stone {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 70%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 8% 8% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-before-york-mayor-resists .battlement {
  position: absolute; bottom: 65%; left: 10%; right: 10%; height: 10%;
  background: repeating-linear-gradient(90deg, #6a5a4a 0%, #6a5a4a 8%, transparent 8%, transparent 12%);
  border-radius: 2px 2px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
  animation: bym-battlement 5s ease-in-out infinite alternate;
}
.scn-before-york-mayor-resists .figure-mayor {
  position: absolute; bottom: 52%; left: 30%; width: 14%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: bym-figure 4s ease-in-out infinite;
}
.scn-before-york-mayor-resists .figure-brother {
  position: absolute; bottom: 54%; left: 46%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e0e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: bym-figure 5s ease-in-out infinite reverse;
}
.scn-before-york-mayor-resists .flag {
  position: absolute; bottom: 58%; left: 64%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #b85a3a 0%, #7a2a14 100%);
  border-radius: 0 0 50% 50%; transform-origin: top center;
  animation: bym-flag 3s ease-in-out infinite;
}
.scn-before-york-mayor-resists .spear {
  position: absolute; bottom: 75%; left: 64%; width: 2%; height: 10%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e0e 100%);
  border-radius: 2px; transform: rotate(15deg);
  animation: bym-spear 6s ease-in-out infinite alternate;
}
@keyframes bym-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes bym-battlement {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes bym-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(3deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bym-flag {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(15deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-15deg); }
  100% { transform: rotate(0deg); }
}
@keyframes bym-spear {
  0% { transform: rotate(15deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(15deg); }
}

.scn-item-keys {
  background: linear-gradient(180deg, #f0e0c0 0%, #c8b090 60%, #8a7050 100%), radial-gradient(ellipse at 50% 30%, #fff4e0 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-item-keys .gate-bg {
  position: absolute; inset: 10% 10% 10% 10%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 20px; box-shadow: 0 10px 40px rgba(0,0,0,0.6);
}
.scn-item-keys .gate-post {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 5%;
  background: linear-gradient(90deg, #5a4a2a 0%, #8a6a3a 50%, #5a4a2a 100%);
  border-radius: 10px; animation: byi-post 6s ease-in-out infinite alternate;
}
.scn-item-keys .key-shank {
  position: absolute; top: 40%; left: 35%; width: 20%; height: 4%;
  background: linear-gradient(90deg, #c8a060 0%, #a08040 100%);
  border-radius: 4px; transform-origin: 100% center;
  animation: byi-shank 4s ease-in-out infinite alternate;
}
.scn-item-keys .key-bow {
  position: absolute; top: 28%; left: 30%; width: 12%; height: 12%;
  background: radial-gradient(circle, #d4b060 0%, #a08040 100%);
  border-radius: 50%; box-shadow: 0 0 20px #d4b060;
  animation: byi-bow 3s ease-in-out infinite alternate;
}
.scn-item-keys .hand-upper {
  position: absolute; top: 48%; left: 20%; width: 18%; height: 20%;
  background: linear-gradient(180deg, #e0c090 0%, #b89060 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: byi-hand 5s ease-in-out infinite;
}
.scn-item-keys .hand-lower {
  position: absolute; top: 50%; left: 50%; width: 16%; height: 18%;
  background: linear-gradient(180deg, #d4b080 0%, #a08050 100%);
  border-radius: 30% 30% 40% 40% / 30% 30% 40% 40%;
  transform-origin: top center; animation: byi-hand2 5s ease-in-out infinite reverse;
}
.scn-item-keys .chain {
  position: absolute; top: 36%; left: 38%; width: 2%; height: 15%;
  background: repeating-linear-gradient(180deg, #b09060 0%, #b09060 4px, transparent 4px, transparent 8px);
  border-radius: 2px; animation: byi-chain 7s ease-in-out infinite alternate;
}
@keyframes byi-post {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
@keyframes byi-shank {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes byi-bow {
  0% { transform: scale(1); }
  50% { transform: scale(1.1); box-shadow: 0 0 30px #d4b060; }
  100% { transform: scale(0.95); }
}
@keyframes byi-hand {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(5deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-4px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes byi-hand2 {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(-4deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(3px) rotate(4deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes byi-chain {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: 0.8; transform: scaleY(0.9); }
}

.scn-parliament-house-york-claim {
  background: linear-gradient(180deg, #f5d6a8 0%, #e8c07a 40%, #c89850 70%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 20%, #fff4d6 0%, transparent 60%);
}
.scn-parliament-house-york-claim .hall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, rgba(58,42,26,0.3) 100%);
}
.scn-parliament-house-york-claim .pillar-left {
  position: absolute; left: 8%; top: 10%; width: 5%; height: 80%;
  background: linear-gradient(90deg, #a08050 0%, #c8a060 20%, #e8c080 50%, #c8a060 80%, #a08050 100%);
  border-radius: 4% / 2%; box-shadow: 4px 0 8px rgba(0,0,0,0.3);
}
.scn-parliament-house-york-claim .pillar-right {
  position: absolute; right: 8%; top: 10%; width: 5%; height: 80%;
  background: linear-gradient(90deg, #a08050 0%, #c8a060 20%, #e8c080 50%, #c8a060 80%, #a08050 100%);
  border-radius: 4% / 2%; box-shadow: -4px 0 8px rgba(0,0,0,0.3);
}
.scn-parliament-house-york-claim .throne {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 20%; height: 40%; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.4);
  clip-path: polygon(0% 100%, 10% 0%, 90% 0%, 100% 100%);
  animation: yc-throne 12s ease-in-out infinite;
}
@keyframes yc-throne { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(0.98); } }
.scn-parliament-house-york-claim .york-silhouette {
  position: absolute; left: 35%; bottom: 12%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: yc-york 3s ease-in-out infinite alternate;
}
@keyframes yc-york {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(2px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(4px) translateY(0) rotate(2deg); }
}
.scn-parliament-house-york-claim .soldier-silhouette {
  position: absolute; right: 30%; bottom: 10%; width: 7%; height: 28%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 35% 35% 30% 30% / 55% 55% 35% 35%;
  animation: yc-soldier 5s ease-in-out infinite;
}
@keyframes yc-soldier { 0%,100% { transform: scale(1); } 50% { transform: scale(0.97); } }

.scn-parliament-house-blood-reckoning {
  background: linear-gradient(180deg, #e8c07a 0%, #c89850 50%, #8a6830 100%),
              radial-gradient(ellipse at 50% 40%, #fff4d6 0%, transparent 50%);
}
.scn-parliament-house-blood-reckoning .hall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, rgba(58,42,26,0.2) 100%);
}
.scn-parliament-house-blood-reckoning .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b09870 0%, #8a7050 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-parliament-house-blood-reckoning .body {
  position: absolute; left: 30%; bottom: 8%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-15deg); animation: br-body 4s ease-in-out infinite;
}
@keyframes br-body { 0%,100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-14deg) translateY(-1px); } }
.scn-parliament-house-blood-reckoning .sword {
  position: absolute; left: 42%; bottom: 28%; width: 2%; height: 30%;
  background: linear-gradient(180deg, #c8a060 0%, #a08050 50%, #6a5030 100%);
  border-radius: 10% / 5%; transform: rotate(25deg); box-shadow: 2px 0 4px rgba(0,0,0,0.3);
  animation: br-sword 2s ease-in-out infinite alternate;
}
@keyframes br-sword { 0% { transform: rotate(25deg) scale(1); } 50% { transform: rotate(30deg) scale(1.02); } 100% { transform: rotate(25deg) scale(1); } }
.scn-parliament-house-blood-reckoning .blood-pool {
  position: absolute; left: 28%; bottom: 5%; width: 18%; height: 6%;
  background: radial-gradient(ellipse at 50% 50%, #a0461a 0%, #5e1a1d 60%, transparent 80%);
  border-radius: 50%; filter: blur(2px); animation: br-blood 6s ease-in-out infinite;
}
@keyframes br-blood { 0%,100% { opacity: 0.9; } 50% { opacity: 1; } }
.scn-parliament-house-blood-reckoning .attacker-silhouette {
  position: absolute; right: 20%; bottom: 10%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: br-attacker 3s ease-in-out infinite alternate;
}
@keyframes br-attacker { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
.scn-parliament-house-blood-reckoning .shadow-overlay {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 60%, transparent 0%, rgba(0,0,0,0.15) 100%);
  animation: br-shadow 8s ease-in-out infinite;
}
@keyframes br-shadow { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }

.scn-item-somerset-head {
  background: linear-gradient(180deg, #c89850 0%, #a08040 40%, #6a5020 80%, #3a2a10 100%),
              radial-gradient(ellipse at 30% 20%, #ffe0a0 0%, transparent 60%);
}
.scn-item-somerset-head .bg-interior {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, rgba(58,42,26,0.4) 100%);
}
.scn-item-somerset-head .pole {
  position: absolute; left: 50%; bottom: 0; width: 1%; height: 70%; transform: translateX(-50%);
  background: linear-gradient(180deg, #806040 0%, #a08060 100%);
  border-radius: 20% / 2%; box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: sh-pole 20s linear infinite;
}
@keyframes sh-pole { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(0.5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
.scn-item-somerset-head .head {
  position: absolute; left: 50%; bottom: 62%; width: 8%; height: 10%; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #c8a060 0%, #8a6830 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px rgba(192,128,64,0.5);
  animation: sh-head 3s ease-in-out infinite alternate;
}
@keyframes sh-head { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
.scn-item-somerset-head .holder-silhouette {
  position: absolute; left: 43%; bottom: 5%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: sh-holder 5s ease-in-out infinite;
}
@keyframes sh-holder { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
.scn-item-somerset-head .spotlight {
  position: absolute; left: 50%; bottom: 60%; width: 30%; height: 30%; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, rgba(255,224,160,0.4) 0%, transparent 70%);
  animation: sh-spotlight 8s ease-in-out infinite alternate;
}
@keyframes sh-spotlight { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
.scn-item-somerset-head .shadow-accent {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 45% 50%, transparent 0%, rgba(0,0,0,0.2) 100%);
  animation: sh-shadow 10s ease-in-out infinite;
}
@keyframes sh-shadow { 0%,100% { opacity: 0.6; } 50% { opacity: 1; } }

.scn-parliament-house-throne-claim {
  background: linear-gradient(180deg, #f5d6a8 0%, #e8c07a 30%, #c89850 70%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 40%, #ffe0b0 0%, transparent 50%);
}
.scn-parliament-house-throne-claim .hall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, rgba(58,42,26,0.3) 100%);
}
.scn-parliament-house-throne-claim .throne {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 25%; height: 50%; background: linear-gradient(180deg, #6a5030 0%, #4a3820 50%, #3a2a1a 100%);
  border-radius: 15% 15% 0 0; box-shadow: 0 -8px 16px rgba(0,0,0,0.5);
  clip-path: polygon(0% 100%, 15% 0%, 85% 0%, 100% 100%);
  animation: tc-throne 10s ease-in-out infinite;
}
@keyframes tc-throne { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(0.97); } }
.scn-parliament-house-throne-claim .york-silhouette {
  position: absolute; left: 30%; bottom: 10%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: tc-york 4s ease-in-out infinite alternate;
}
@keyframes tc-york {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(10px) translateY(-2px) rotate(3deg); }
  100% { transform: translateX(20px) translateY(0) rotate(1deg); }
}
.scn-parliament-house-throne-claim .warwick-silhouette {
  position: absolute; right: 25%; bottom: 12%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 35% 35% 30% 30% / 55% 55% 35% 35%;
  animation: tc-warwick 6s ease-in-out infinite;
}
@keyframes tc-warwick { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02); } }
.scn-parliament-house-throne-claim .soldier-left {
  position: absolute; left: 10%; bottom: 8%; width: 6%; height: 28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: tc-soldier-l 8s ease-in-out infinite;
}
@keyframes tc-soldier-l { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
.scn-parliament-house-throne-claim .soldier-right {
  position: absolute; right: 10%; bottom: 8%; width: 6%; height: 28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: tc-soldier-r 8s ease-in-out infinite reverse;
}
@keyframes tc-soldier-r { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
.scn-parliament-house-throne-claim .crown {
  position: absolute; top: 12%; left: 50%; transform: translateX(-50%);
  width: 12%; height: 6%; background: linear-gradient(180deg, #f0c060 0%, #c89850 100%);
  clip-path: polygon(0% 100%, 10% 0%, 30% 100%, 50% 0%, 70% 100%, 90% 0%, 100% 100%);
  box-shadow: 0 0 16px rgba(240,192,96,0.6);
  animation: tc-crown 3s ease-in-out infinite alternate;
}
@keyframes tc-crown { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }

.scn-london-palace-widow-resists {
  background: 
    linear-gradient(180deg, #4a3a2a 0%, #2c1e14 40%, #1a1208 100%),
    radial-gradient(ellipse at 30% 50%, #8a6a4a 0%, transparent 60%);
}
.scn-london-palace-widow-resists .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2c2418 0%, #3a2c1e 50%, #1e1610 100%);
  animation: lpw-wall 12s ease-in-out infinite alternate;
}
.scn-london-palace-widow-resists .floor-tile {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #4a3a2a 0px, #5c4a32 4px, #4a3a2a 8px);
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.6);
  animation: lpw-floor 8s linear infinite;
}
.scn-london-palace-widow-resists .window-arch {
  position: absolute; bottom: 35%; left: 35%; width: 30%; height: 45%;
  background: #2c2418;
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
}
.scn-london-palace-widow-resists .window-light {
  position: absolute; bottom: 36%; left: 36%; width: 28%; height: 42%;
  background: radial-gradient(ellipse, #f0d8a0 0%, #c8a870 70%, transparent 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  mix-blend-mode: screen;
  animation: lpw-lightglow 2.5s ease-in-out infinite alternate;
}
.scn-london-palace-widow-resists .figure-widow {
  position: absolute; bottom: 18%; left: 15%; width: 18px; height: 60px;
  background: linear-gradient(180deg, #2c1e14 0%, #1a1208 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: lpw-widow 4s ease-in-out infinite;
}
.scn-london-palace-widow-resists .figure-widow::after {
  content: '';
  position: absolute; top: -10px; left: 2px; width: 14px; height: 18px;
  background: #2c1e14;
  border-radius: 50% 50% 40% 40%;
  transform: rotate(-15deg);
}
.scn-london-palace-widow-resists .figure-king {
  position: absolute; bottom: 20%; right: 20%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1208 0%, #0a0804 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  box-shadow: 4px 0 12px rgba(0,0,0,0.6);
  animation: lpw-king 6s ease-in-out infinite;
}
.scn-london-palace-widow-resists .shadow-stripe {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 8px;
  background: linear-gradient(90deg, transparent 0%, #000 40%, #000 60%, transparent 100%);
  opacity: 0.3;
  animation: lpw-stripe 5s ease-in-out infinite alternate;
}

@keyframes lpw-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lpw-floor { 0% { background-position: 0 0; } 100% { background-position: 40px 0; } }
@keyframes lpw-lightglow { 0% { opacity: 0.6; box-shadow: 0 0 30px 10px #c8a870; } 50% { opacity: 1; box-shadow: 0 0 60px 20px #f0d8a0; } 100% { opacity: 0.7; box-shadow: 0 0 40px 15px #c8a870; } }
@keyframes lpw-widow { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-6px) rotate(-4deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(4px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes lpw-king { 0% { transform: scale(1); } 50% { transform: scale(1.04) translateY(-2px); } 100% { transform: scale(1); } }
@keyframes lpw-stripe { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }

.scn-london-palace-edward-clarifies {
  background: 
    linear-gradient(180deg, #6a5240 0%, #4a3628 50%, #2c1e14 100%),
    radial-gradient(circle at 70% 40%, #d4b080 0%, transparent 70%);
}
.scn-london-palace-edward-clarifies .bg-chamber {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #5a4634 0%, #3a2a1e 100%);
  animation: lpe-chamber 15s ease-in-out infinite alternate;
}
.scn-london-palace-edward-clarifies .table-round {
  position: absolute; bottom: 12%; left: 50%; width: 80px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #8a6a4a 0%, #5a4a3a 100%);
  border-radius: 50%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-london-palace-edward-clarifies .figure-clarence {
  position: absolute; bottom: 18%; left: 22%; width: 20px; height: 56px;
  background: linear-gradient(180deg, #4a3628 0%, #2c1e14 100%);
  border-radius: 30% 30% 25% 25% / 65% 65% 25% 25%;
  transform-origin: bottom center;
  animation: lpe-clarence 5s ease-in-out infinite;
}
.scn-london-palace-edward-clarifies .figure-edward {
  position: absolute; bottom: 18%; right: 22%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #c8a870 0%, #8a6a4a 100%);
  border-radius: 30% 30% 25% 25% / 65% 65% 25% 25%;
  transform-origin: bottom center;
  box-shadow: 0 0 16px 4px rgba(200,168,112,0.3);
  animation: lpe-edward 5s ease-in-out infinite reverse;
}
.scn-london-palace-edward-clarifies .warm-light-ray {
  position: absolute; top: 0; left: 60%; width: 30%; height: 100%;
  background: linear-gradient(180deg, rgba(232,200,160,0.3) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: lpe-ray 8s ease-in-out infinite alternate;
}
.scn-london-palace-edward-clarifies .wall-hanging {
  position: absolute; top: 10%; left: 10%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a4a3a 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: lpe-hanging 10s ease-in-out infinite;
}

@keyframes lpe-chamber { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lpe-clarence { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(4px) rotate(1deg); } 60% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes lpe-edward { 0% { transform: translateX(0) rotate(2deg); } 30% { transform: translateX(-4px) rotate(-1deg); } 60% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes lpe-ray { 0% { opacity: 0.2; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes lpe-hanging { 0% { transform: rotate(0); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(0); } }

.scn-london-palace-edward-proposes {
  background: 
    linear-gradient(180deg, #5c4a34 0%, #3a2a1c 40%, #1e1610 100%),
    radial-gradient(ellipse at 50% 20%, #d4b080 0%, transparent 60%);
}
.scn-london-palace-edward-proposes .bg-hall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #4a3a2a 0%, #5c4a34 50%, #3a2a1c 100%);
}
.scn-london-palace-edward-proposes .floor-marble {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: repeating-conic-gradient(#6a5a4a 0% 25%, #5a4a3a 0% 50%) 0 0 / 40px 40px;
  opacity: 0.6;
  animation: lep-floor 10s linear infinite;
}
.scn-london-palace-edward-proposes .window-ogive {
  position: absolute; top: 5%; left: 38%; width: 24%; height: 40%;
  background: #3a2a1c;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
}
.scn-london-palace-edward-proposes .figure-widow {
  position: absolute; bottom: 22%; left: 30%; width: 18px; height: 55px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1c 100%);
  border-radius: 35% 35% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: lep-widow 4s ease-in-out infinite;
}
.scn-london-palace-edward-proposes .figure-edward {
  position: absolute; bottom: 20%; left: 52%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #c8a870 0%, #8a6a4a 100%);
  border-radius: 30% 30% 25% 25% / 65% 65% 25% 25%;
  transform-origin: bottom center;
  box-shadow: 2px 0 10px rgba(200,168,112,0.3);
  animation: lep-edward 5s ease-in-out infinite reverse;
}
.scn-london-palace-edward-proposes .figure-clarence {
  position: absolute; bottom: 24%; right: 18%; width: 16px; height: 48px;
  background: linear-gradient(180deg, #3a2a1c 0%, #1e1610 100%);
  border-radius: 25% 25% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: lep-clarence 3.5s ease-in-out infinite alternate;
}
.scn-london-palace-edward-proposes .candle-glow {
  position: absolute; bottom: 40%; left: 46%; width: 8px; height: 8px;
  background: radial-gradient(circle, #f0d8a0 0%, #c8a870 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #c8a870, 0 0 60px 20px rgba(200,168,112,0.3);
  animation: lep-candle 3s ease-in-out infinite alternate;
}

@keyframes lep-floor { 0% { background-position: 0 0; } 100% { background-position: 40px 40px; } }
@keyframes lep-widow { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-4px) rotate(-3deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes lep-edward { 0% { transform: translateX(0) rotate(2deg); } 30% { transform: translateX(-6px) rotate(-2deg); } 60% { transform: translateX(0) rotate(0); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes lep-clarence { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(10px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes lep-candle { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.8; transform: scale(0.9); } }

.scn-london-palace-marriage-agreed {
  background: 
    linear-gradient(180deg, #7a6a5a 0%, #5c4a3a 50%, #3a2a1c 100%),
    radial-gradient(ellipse at 50% 60%, #e0c8a0 0%, transparent 70%);
}
.scn-london-palace-marriage-agreed .bg-peace {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  animation: lpm-bg 20s ease-in-out infinite alternate;
}
.scn-london-palace-marriage-agreed .window-arched {
  position: absolute; bottom: 35%; left: 40%; width: 20%; height: 35%;
  background: #3a2a1c;
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-london-palace-marriage-agreed .soft-glow {
  position: absolute; bottom: 36%; left: 41%; width: 18%; height: 32%;
  background: radial-gradient(ellipse, #f0e0c0 0%, #d4c0a0 60%, transparent 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  mix-blend-mode: screen;
  animation: lpm-glow 6s ease-in-out infinite alternate;
}
.scn-london-palace-marriage-agreed .figure-bride {
  position: absolute; bottom: 18%; left: 38%; width: 18px; height: 52px;
  background: linear-gradient(180deg, #e0c8a0 0%, #c8a880 100%);
  border-radius: 30% 30% 25% 25% / 65% 65% 25% 25%;
  transform-origin: bottom center;
  animation: lpm-bride 7s ease-in-out infinite;
}
.scn-london-palace-marriage-agreed .figure-groom {
  position: absolute; bottom: 18%; right: 38%; width: 20px; height: 56px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 30% 30% 25% 25% / 65% 65% 25% 25%;
  transform-origin: bottom center;
  animation: lpm-groom 7s ease-in-out infinite reverse;
}
.scn-london-palace-marriage-agreed .drapes {
  position: absolute; top: 0; left: 0; width: 20%; height: 80%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 0 0 60% 0 / 0 0 40% 0;
  animation: lpm-drapes 12s ease-in-out infinite alternate;
}
.scn-london-palace-marriage-agreed .drapes::after {
  content: '';
  position: absolute; top: 0; right: 0; width: 80%; height: 100%;
  background: inherit;
  border-radius: 0 0 0 60% / 0 0 0 40%;
  left: auto;
  animation: lpm-drapes 12s ease-in-out infinite alternate-reverse;
}

@keyframes lpm-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lpm-glow { 0% { opacity: 0.4; box-shadow: 0 0 20px 5px #d4c0a0; } 50% { opacity: 0.8; box-shadow: 0 0 50px 15px #f0e0c0; } 100% { opacity: 0.5; box-shadow: 0 0 30px 8px #d4c0a0; } }
@keyframes lpm-bride { 0% { transform: translateX(0) rotate(-1deg); } 30% { transform: translateX(4px) rotate(0); } 60% { transform: translateX(0) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes lpm-groom { 0% { transform: translateX(0) rotate(1deg); } 30% { transform: translateX(-4px) rotate(0); } 60% { transform: translateX(0) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes lpm-drapes { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(0.95); } }

/* Scene 1: parliament-house-margaret-condemnation */
.scn-parliament-house-margaret-condemnation {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #4a3a2a 60%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 60%, #6a5a4a 0%, transparent 70%);
}
.scn-parliament-house-margaret-condemnation .wall-bg {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 20%, #4a3a2a 40%, #5a4a3a 60%, #3a2a1a 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,.6);
  animation: p1-wall 12s ease-in-out infinite alternate;
}
@keyframes p1-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
.scn-parliament-house-margaret-condemnation .floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 10px 25px rgba(0,0,0,.5);
}
.scn-parliament-house-margaret-condemnation .column-left {
  position:absolute; bottom:15%; left:20%; width:12px; height:65%;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 30%, #5a4a3a 100%);
  border-radius: 4px;
  box-shadow: 2px 0 12px rgba(0,0,0,.4);
  animation: p1-column 15s ease-in-out infinite;
}
.scn-parliament-house-margaret-condemnation .column-right {
  position:absolute; bottom:15%; right:20%; width:12px; height:65%;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 30%, #5a4a3a 100%);
  border-radius: 4px;
  box-shadow: -2px 0 12px rgba(0,0,0,.4);
  animation: p1-column 15s ease-in-out infinite reverse;
}
@keyframes p1-column { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
.scn-parliament-house-margaret-condemnation .throne {
  position:absolute; bottom:28%; left:50%; width:70px; height:60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20% / 40% 40% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,.7);
}
.scn-parliament-house-margaret-condemnation .crown {
  position:absolute; bottom:75%; left:50%; width:20px; height:14px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a040 0%, #a08030 60%, #705a20 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 12px 3px rgba(200,160,64,.6);
  animation: p1-crown 4s ease-in-out infinite alternate;
}
@keyframes p1-crown { 0% { transform: translateX(-50%) rotate(-2deg) scale(1) } 50% { transform: translateX(-50%) rotate(2deg) scale(1.05) } 100% { transform: translateX(-50%) rotate(-2deg) scale(1) } }
.scn-parliament-house-margaret-condemnation .fig-margaret {
  position:absolute; bottom:25%; left:35%; width:22px; height:50px;
  background: linear-gradient(180deg, #5a1a1a 0%, #3a0a0a 100%); /* desaturated red/burgundy */
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: p1-margaret 3s ease-in-out infinite;
}
@keyframes p1-margaret { 0% { transform: translate(0,0) rotate(-3deg) scaleX(1) } 25% { transform: translate(4px,-2px) rotate(2deg) scaleX(1.05) } 50% { transform: translate(8px,0) rotate(-1deg) scaleX(1) } 75% { transform: translate(4px,1px) rotate(3deg) scaleX(.95) } 100% { transform: translate(0,0) rotate(-3deg) scaleX(1) } }
.scn-parliament-house-margaret-condemnation .fig-henry {
  position:absolute; bottom:25%; right:30%; width:20px; height:45px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: p1-henry 2.5s ease-in-out infinite;
}
@keyframes p1-henry { 0% { transform: translate(0,0) scaleY(1) } 40% { transform: translate(-3px,-1px) scaleY(.96) } 80% { transform: translate(2px,0) scaleY(1.02) } 100% { transform: translate(0,0) scaleY(1) } }
.scn-parliament-house-margaret-condemnation .window-light {
  position:absolute; bottom:50%; left:45%; width:30px; height:50px;
  background: radial-gradient(ellipse at 50% 30%, #ffe080 0%, transparent 70%);
  opacity:.3;
  animation: p1-light 5s ease-in-out infinite alternate;
}
@keyframes p1-light { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.5; transform: scale(1.1) } 100% { opacity:.25; transform: scale(.95) } }

/* Scene 2: parliament-house-margaret-divorce */
.scn-parliament-house-margaret-divorce {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 70%, #2a2a3a 100%),
    radial-gradient(ellipse at 50% 70%, #4a4a5a 0%, transparent 60%);
}
.scn-parliament-house-margaret-divorce .wall-bg {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 30%, #2a2a3a 70%, #1a1a2a 100%);
  box-shadow: inset 0 -15px 30px rgba(0,0,0,.5);
  animation: p2-wall 14s ease-in-out infinite alternate;
}
@keyframes p2-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
.scn-parliament-house-margaret-divorce .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-parliament-house-margaret-divorce .table {
  position:absolute; bottom:22%; left:50%; width:80px; height:12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
}
.scn-parliament-house-margaret-divorce .paper {
  position:absolute; bottom:26%; left:50%; width:30px; height:20px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: p2-paper 6s ease-in-out infinite alternate;
}
@keyframes p2-paper { 0% { transform: translateX(-50%) rotate(0deg) scaleX(1) } 50% { transform: translateX(-50%) rotate(2deg) scaleX(1.1) } 100% { transform: translateX(-50%) rotate(-2deg) scaleX(1) } }
.scn-parliament-house-margaret-divorce .inkwell {
  position:absolute; bottom:28%; left:42%; width:8px; height:10px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 0 6px 2px rgba(0,0,0,.4);
}
.scn-parliament-house-margaret-divorce .candle {
  position:absolute; bottom:26%; left:58%; width:6px; height:14px;
  background: linear-gradient(180deg, #a08060 0%, #705a40 100%);
  border-radius: 2px;
  animation: p2-candle 3s ease-in-out infinite alternate;
}
.scn-parliament-house-margaret-divorce .candle::before {
  content:''; position:absolute; top:-6px; left:50%; transform:translateX(-50%);
  width:4px; height:6px;
  background: radial-gradient(circle, #ffc060 0%, #ff8020 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #ffa040;
}
@keyframes p2-candle { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }
.scn-parliament-house-margaret-divorce .fig-margaret {
  position:absolute; bottom:20%; left:30%; width:20px; height:48px;
  background: linear-gradient(180deg, #5a1a1a 0%, #3a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: p2-margaret 4s ease-in-out infinite;
}
@keyframes p2-margaret { 0% { transform: translate(0,0) rotate(-5deg) } 50% { transform: translate(6px,-2px) rotate(3deg) } 100% { transform: translate(12px,0) rotate(-2deg) } }
.scn-parliament-house-margaret-divorce .fig-henry {
  position:absolute; bottom:20%; right:30%; width:18px; height:45px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: p2-henry 3.5s ease-in-out infinite;
}
@keyframes p2-henry { 0% { transform: translate(0,0) rotate(2deg) scaleY(1) } 40% { transform: translate(-4px,1px) rotate(-3deg) scaleY(.97) } 80% { transform: translate(2px,-1px) rotate(1deg) scaleY(1.03) } 100% { transform: translate(0,0) rotate(2deg) scaleY(1) } }

/* Scene 3: parliament-house-henry-lament */
.scn-parliament-house-henry-lament {
  background: 
    linear-gradient(180deg, #2a2a1a 0%, #3a3a2a 30%, #4a4a3a 60%, #3a3a2a 100%),
    radial-gradient(ellipse at 50% 50%, #5a5a4a 0%, transparent 80%);
}
.scn-parliament-house-henry-lament .wall-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(90deg, #3a3a2a 0%, #4a4a3a 50%, #3a3a2a 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,.4);
  animation: p3-wall 20s ease-in-out infinite alternate;
}
@keyframes p3-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
.scn-parliament-house-henry-lament .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  box-shadow: inset 0 5px 15px rgba(0,0,0,.5);
}
.scn-parliament-house-henry-lament .chair {
  position:absolute; bottom:15%; left:50%; width:45px; height:50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 6px 15px rgba(0,0,0,.4);
}
.scn-parliament-house-henry-lament .fig-henry {
  position:absolute; bottom:30%; left:50%; width:22px; height:45px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: p3-henry 5s ease-in-out infinite;
}
@keyframes p3-henry { 0% { transform: translateX(-50%) rotate(0deg) scaleY(1) } 30% { transform: translateX(-50%) rotate(-2deg) scaleY(.97) } 60% { transform: translateX(-50%) rotate(1deg) scaleY(1.02) } 100% { transform: translateX(-50%) rotate(0deg) scaleY(1) } }
.scn-parliament-house-henry-lament .window {
  position:absolute; bottom:45%; left:20%; width:40px; height:60px;
  background: radial-gradient(ellipse at 50% 40%, #ffe0a0 0%, transparent 80%);
  opacity:.15;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,224,160,.2);
  animation: p3-window 8s ease-in-out infinite alternate;
}
@keyframes p3-window { 0% { opacity:.1; transform: scaleY(1) } 50% { opacity:.3; transform: scaleY(1.05) } 100% { opacity:.15; transform: scaleY(1) } }
.scn-parliament-house-henry-lament .scroll {
  position:absolute; bottom:18%; left:38%; width:30px; height:6px;
  background: linear-gradient(90deg, #c0b090 0%, #a09070 100%);
  border-radius: 4px;
  box-shadow: 0 1px 4px rgba(0,0,0,.3);
  animation: p3-scroll 6s ease-in-out infinite alternate;
}
@keyframes p3-scroll { 0% { transform: translate(0,0) rotate(0deg) scaleX(1) } 50% { transform: translate(2px,-1px) rotate(5deg) scaleX(1.1) } 100% { transform: translate(0,0) rotate(0deg) scaleX(1) } }
.scn-parliament-house-henry-lament .crown {
  position:absolute; bottom:40%; left:60%; width:16px; height:12px;
  background: linear-gradient(180deg, #c8a040 0%, #a08030 60%, #705a20 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 8px 2px rgba(200,160,64,.4);
  animation: p3-crown 7s ease-in-out infinite;
}
@keyframes p3-crown { 0% { transform: translate(0,0) rotate(-3deg) } 33% { transform: translate(2px,-1px) rotate(2deg) } 66% { transform: translate(-1px,1px) rotate(-1deg) } 100% { transform: translate(0,0) rotate(-3deg) } }

/* Scene 4: parliament-house-exeter-reconciliation */
.scn-parliament-house-exeter-reconciliation {
  background: 
    linear-gradient(180deg, #1a2a1a 0%, #2a3a2a 30%, #3a4a3a 60%, #2a3a2a 100%),
    radial-gradient(ellipse at 50% 40%, #4a5a4a 0%, transparent 70%);
}
.scn-parliament-house-exeter-reconciliation .wall-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(90deg, #2a3a2a 0%, #3a4a3a 50%, #2a3a2a 100%);
  box-shadow: inset 0 -10px 25px rgba(0,0,0,.4);
  animation: p4-wall 18s ease-in-out infinite alternate;
}
@keyframes p4-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
.scn-parliament-house-exeter-reconciliation .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  box-shadow: inset 0 5px 15px rgba(0,0,0,.5);
}
.scn-parliament-house-exeter-reconciliation .table {
  position:absolute; bottom:20%; left:50%; width:90px; height:10px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-parliament-house-exeter-reconciliation .document {
  position:absolute; bottom:24%; left:50%; width:35px; height:22px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: p4-doc 5s ease-in-out infinite alternate;
}
@keyframes p4-doc { 0% { transform: translateX(-50%) rotate(0deg) scale(1) } 50% { transform: translateX(-50%) rotate(1deg) scale(1.03) } 100% { transform: translateX(-50%) rotate(-1deg) scale(1) } }
.scn-parliament-house-exeter-reconciliation .fig-exeter {
  position:absolute; bottom:22%; left:28%; width:22px; height:48px;
  background: linear-gradient(180deg, #5a5a3a 0%, #3a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: p4-exeter 4s ease-in-out infinite;
}
@keyframes p4-exeter { 0% { transform: translate(0,0) rotate(0deg) } 30% { transform: translate(3px,-1px) rotate(2deg) } 60% { transform: translate(-2px,0) rotate(-1deg) } 100% { transform: translate(0,0) rotate(0deg) } }
.scn-parliament-house-exeter-reconciliation .fig-henry {
  position:absolute; bottom:22%; left:45%; width:20px; height:44px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: p4-henry 4.5s ease-in-out infinite;
}
@keyframes p4-henry { 0% { transform: translate(0,0) rotate(0deg) } 40% { transform: translate(-2px,1px) rotate(-3deg) } 80% { transform: translate(3px,-1px) rotate(2deg) } 100% { transform: translate(0,0) rotate(0deg) } }
.scn-parliament-house-exeter-reconciliation .fig-margaret {
  position:absolute; bottom:22%; right:28%; width:21px; height:47px;
  background: linear-gradient(180deg, #5a1a1a 0%, #3a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: p4-margaret 3.8s ease-in-out infinite;
}
@keyframes p4-margaret { 0% { transform: translate(0,0) rotate(1deg) } 50% { transform: translate(-4px,0) rotate(-2deg) } 100% { transform: translate(0,0) rotate(1deg) } }
.scn-parliament-house-exeter-reconciliation .light-beam {
  position:absolute; top:10%; left:35%; width:30%; height:60%;
  background: linear-gradient(180deg, rgba(255,240,200,.15) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
  animation: p4-beam 10s ease-in-out infinite alternate;
}
@keyframes p4-beam { 0% { opacity:.2; transform: rotate(-2deg) } 50% { opacity:.4; transform: rotate(0deg) } 100% { opacity:.25; transform: rotate(2deg) } }

/* ---------- rutland-pleads ---------- */
.scn-rutland-pleads {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a28 40%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 70%);
}
.scn-rutland-pleads .sky  { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #3a3a5a 0%, #1a1a30 100%); animation: rp-sky 15s ease-in-out infinite alternate; }
.scn-rutland-pleads .ground { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(0deg, #1a1a10 0%, #2a2a1a 40%, #3a3a2a 100%); }
.scn-rutland-pleads .clifford-figure { position:absolute; bottom:20%; left:55%; width:60px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #0e0e1a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; box-shadow: 0 0 30px 10px rgba(0,0,0,.5); animation: rp-tower 6s ease-in-out infinite; }
.scn-rutland-pleads .rutland-figure { position:absolute; bottom:10%; left:35%; width:24px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rp-kneel 4s ease-in-out infinite; }
.scn-rutland-pleads .sword { position:absolute; bottom:30%; left:52%; width:4px; height:70px; background: linear-gradient(180deg, #6a6a7a 20%, #8a8a9a 50%, #5a5a6a 80%); border-radius: 2px; transform: rotate(15deg); transform-origin: bottom left; animation: rp-sword 8s ease-in-out infinite; }
.scn-rutland-pleads .cloud-a { position:absolute; top:12%; left:10%; width:90px; height:20px; background: rgba(60,60,80,.3); border-radius: 50%; filter: blur(8px); animation: rp-drift-a 40s linear infinite; }
.scn-rutland-pleads .cloud-b { position:absolute; top:20%; right:15%; width:70px; height:15px; background: rgba(50,50,70,.25); border-radius: 50%; filter: blur(6px); animation: rp-drift-b 55s linear infinite reverse; }
.scn-rutland-pleads .rain { position:absolute; top:0; left:0; width:100%; height:100%; background: repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(180,200,220,.1) 3px, rgba(180,200,220,.1) 4px); animation: rp-rain 0.8s linear infinite; }

@keyframes rp-sky   { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.5 } }
@keyframes rp-tower { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes rp-kneel { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-1px) rotate(2deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rp-sword { 0% { transform: rotate(15deg) scaleY(1) } 50% { transform: rotate(18deg) scaleY(1.02) } 100% { transform: rotate(15deg) scaleY(1) } }
@keyframes rp-rain  { 0% { background-position: 0 0 } 100% { background-position: 0 20px } }
@keyframes rp-drift-a { 0% { transform: translateX(-30px); opacity:.3 } 25% { opacity:.5 } 100% { transform: translateX(120vw); opacity:.2 } }
@keyframes rp-drift-b { 0% { transform: translateX(30vw); opacity:.4 } 50% { opacity:.2 } 100% { transform: translateX(-130vw); opacity:.3 } }

/* ---------- rutland-clifford-vengeance ---------- */
.scn-rutland-clifford-vengeance {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 40%, #120e10 100%),
    radial-gradient(ellipse at 50% 0%, #2a2a3a 0%, transparent 70%);
}
.scn-rutland-clifford-vengeance .sky  { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%); animation: rcv-sky 12s ease-in-out infinite alternate; }
.scn-rutland-clifford-vengeance .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #1a0a0a 0%, #2a1a12 40%, #3a2a1a 100%); }
.scn-rutland-clifford-vengeance .clifford-silhouette { position:absolute; bottom:15%; left:60%; width:50px; height:130px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 25% 25% 40% 40% / 45% 45% 20% 20%; box-shadow: 0 0 20px 5px rgba(0,0,0,.6); animation: rcv-looms 8s ease-in-out infinite; }
.scn-rutland-clifford-vengeance .sword-raised { position:absolute; bottom:40%; left:58%; width:5px; height:90px; background: linear-gradient(180deg, #5a5a6a 0%, #8a8a9a 50%, #4a4a5a 100%); border-radius: 2px; transform: rotate(-20deg); transform-origin: bottom right; animation: rcv-swing 6s ease-in-out infinite; }
.scn-rutland-clifford-vengeance .blood-pool { position:absolute; bottom:8%; left:40%; width:40px; height:12px; background: radial-gradient(ellipse, #5e1a1d 0%, #3a0a0a 70%, transparent 100%); border-radius: 50%; animation: rcv-pool 9s ease-in-out infinite; }
.scn-rutland-clifford-vengeance .blood-drip { position:absolute; bottom:20%; left:42%; width:3px; height:40px; background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0a 100%); border-radius: 1px; animation: rcv-drip 4s ease-in-out infinite; }
.scn-rutland-clifford-vengeance .cloud { position:absolute; top:15%; left:0; width:100px; height:18px; background: rgba(40,40,60,.25); border-radius: 50%; filter: blur(8px); animation: rcv-cloud 50s linear infinite; }

@keyframes rcv-sky   { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes rcv-looms { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-4px) } }
@keyframes rcv-swing { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-20deg) } }
@keyframes rcv-pool  { 0% { transform: scale(1); opacity:.6 } 50% { transform: scale(1.1); opacity:.8 } 100% { transform: scale(1); opacity:.6 } }
@keyframes rcv-drip  { 0% { transform: translateY(0); opacity:.8 } 50% { transform: translateY(8px); opacity:.4 } 100% { transform: translateY(0); opacity:.8 } }
@keyframes rcv-cloud { 0% { transform: translateX(-30px) } 50% { transform: translateX(60vw) } 100% { transform: translateX(120vw) } }

/* ---------- rutland-murder-committed ---------- */
.scn-rutland-murder-committed {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 30%, #120e10 100%),
    radial-gradient(ellipse at 50% 80%, #2a1a14 0%, transparent 60%);
}
.scn-rutland-murder-committed .sky  { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%); animation: rmc-sky 10s ease-in-out infinite alternate; }
.scn-rutland-murder-committed .ground { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(0deg, #1a0a0a 0%, #2a1a12 100%); }
.scn-rutland-murder-committed .rapier-blade { position:absolute; bottom:30%; left:50%; width:3px; height:110px; background: linear-gradient(180deg, #8a8a9a 0%, #5a5a6a 100%); border-radius: 1px; transform: translateX(-50%) rotate(5deg); transform-origin: bottom center; animation: rmc-thrust 5s ease-in-out infinite; }
.scn-rutland-murder-committed .rapier-guard { position:absolute; bottom:30%; left:50%; width:14px; height:14px; background: radial-gradient(circle, #6a6a7a 0%, #3a3a4a 100%); border-radius: 50%; transform: translate(-50%, -8px) rotate(5deg); box-shadow: 0 0 6px rgba(0,0,0,.5); animation: rmc-guard 5s ease-in-out infinite; }
.scn-rutland-murder-committed .hand { position:absolute; bottom:32%; left:48%; width:20px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; transform: rotate(15deg); transform-origin: bottom left; animation: rmc-hand 7s ease-in-out infinite; }
.scn-rutland-murder-committed .rutland-profile { position:absolute; bottom:10%; left:30%; width:22px; height:35px; background: linear-gradient(180deg, #1a1a28 0%, #0e0e1a 100%); border-radius: 50% 40% 40% 50% / 60% 50% 40% 40%; transform: rotate(-10deg); transform-origin: bottom center; animation: rmc-fall 8s ease-in-out infinite; }
.scn-rutland-murder-committed .blood-drip { position:absolute; bottom:40%; left:45%; width:2px; height:50px; background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0a 100%); border-radius: 1px; animation: rmc-drip 3s ease-in-out infinite; }

@keyframes rmc-sky   { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes rmc-thrust { 0%,100% { transform: translateX(-50%) rotate(5deg) scaleY(1) } 50% { transform: translateX(-50%) rotate(7deg) scaleY(1.05) } }
@keyframes rmc-guard { 0% { transform: translate(-50%, -8px) rotate(5deg) } 50% { transform: translate(-50%, -10px) rotate(7deg) } 100% { transform: translate(-50%, -8px) rotate(5deg) } }
@keyframes rmc-hand  { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(18deg) translateY(-2px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes rmc-fall  { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(4px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes rmc-drip  { 0% { transform: scaleY(1); opacity:.8 } 50% { transform: scaleY(1.2); opacity:.5 } 100% { transform: scaleY(1); opacity:.8 } }

/* ---------- field-wakefield-york-despair ---------- */
.scn-field-wakefield-york-despair {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 50%, #120e10 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 70%);
}
.scn-field-wakefield-york-despair .sky  { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%); animation: fwy-sky 18s ease-in-out infinite alternate; }
.scn-field-wakefield-york-despair .far-hills { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a10 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.4); animation: fwy-hills 14s ease-in-out infinite alternate; }
.scn-field-wakefield-york-despair .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #1a1a10 0%, #2a2a1a 100%); }
.scn-field-wakefield-york-despair .york-silhouette { position:absolute; bottom:12%; left:50%; width:30px; height:55px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fwy-despair 12s ease-in-out infinite; }
.scn-field-wakefield-york-despair .broken-sword { position:absolute; bottom:20%; left:30%; width:4px; height:40px; background: linear-gradient(180deg, #5a5a6a 0%, #8a8a9a 50%, #4a4a5a 100%); border-radius: 2px; transform: rotate(40deg); transform-origin: bottom right; animation: fwy-broken 20s ease-in-out infinite; }
.scn-field-wakefield-york-despair .fallen-flag { position:absolute; bottom:22%; left:65%; width:20px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 0 0 20% 20%; transform: rotate(-30deg); transform-origin: top left; animation: fwy-flag 25s ease-in-out infinite; }
.scn-field-wakefield-york-despair .crow { position:absolute; top:15%; left:20%; width:10px; height:14px; background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(0.5px); animation: fwy-crow 30s linear infinite; }
.scn-field-wakefield-york-despair .cloud { position:absolute; top:10%; left:0; width:120px; height:20px; background: rgba(40,40,60,.2); border-radius: 50%; filter: blur(10px); animation: fwy-cloud 60s linear infinite; }

@keyframes fwy-sky   { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes fwy-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fwy-despair { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0) } 50% { transform: translateX(-50%) translateY(-5px) rotate(-3deg) } }
@keyframes fwy-broken { 0% { transform: rotate(40deg); opacity:.7 } 50% { transform: rotate(50deg); opacity:.5 } 100% { transform: rotate(40deg); opacity:.7 } }
@keyframes fwy-flag  { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-40deg) } 100% { transform: rotate(-30deg) } }
@keyframes fwy-crow  { 0% { transform: translateX(-20px) translateY(0) } 10% { transform: translateX(10px) translateY(-4px) } 30% { transform: translateX(50px) translateY(0) } 60% { transform: translateX(80px) translateY(-6px) } 100% { transform: translateX(140vw) translateY(0) } }
@keyframes fwy-cloud { 0% { transform: translateX(-30px) } 50% { transform: translateX(60vw) } 100% { transform: translateX(130vw) } }

.scn-towton-henrys-soliloquy-part1 {
  background: linear-gradient(180deg, #7a8a8a 0%, #5b6b6b 30%, #3c4a4a 70%, #2a3434 100%), radial-gradient(ellipse at 50% 0%, #8a9a9a 0%, transparent 60%);
}
.scn-towton-henrys-soliloquy-part1 .sky-a {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, rgba(200,210,210,0.3) 0%, transparent 100%);
  animation: ts1-fade 15s ease-in-out infinite alternate;
}
.scn-towton-henrys-soliloquy-part1 .sky-b {
  position: absolute; top: 0; left: 0; width: 100%; height: 30%;
  background: radial-gradient(ellipse at 30% 20%, rgba(220,230,230,0.2) 0%, transparent 70%);
  animation: ts1-glow 20s ease-in-out infinite alternate;
}
.scn-towton-henrys-soliloquy-part1 .hill {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: ts1-sway 18s ease-in-out infinite;
}
.scn-towton-henrys-soliloquy-part1 .shepherd {
  position: absolute; bottom: 38%; left: 45%; width: 14px; height: 26px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ts1-walk 6s ease-in-out infinite;
}
.scn-towton-henrys-soliloquy-part1 .tree {
  position: absolute; bottom: 40%; left: 25%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 4px 6px rgba(0,0,0,0.3);
  animation: ts1-breathe 8s ease-in-out infinite;
}
.scn-towton-henrys-soliloquy-part1 .tree::before {
  content: ''; position: absolute; top: -20px; left: -10px; width: 50px; height: 35px;
  background: radial-gradient(ellipse, #5a6a3a 0%, #3a4a2a 70%, transparent 100%);
  border-radius: 50%;
}
.scn-towton-henrys-soliloquy-part1 .cloud-c {
  position: absolute; top: 12%; left: 10%; width: 100px; height: 15px;
  background: linear-gradient(180deg, rgba(220,230,230,0.4) 0%, rgba(200,210,210,0.1) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: ts1-drift-c 40s linear infinite;
}
.scn-towton-henrys-soliloquy-part1 .cloud-d {
  position: absolute; top: 20%; right: 5%; width: 70px; height: 12px;
  background: linear-gradient(180deg, rgba(210,220,220,0.35) 0%, rgba(190,200,200,0.05) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: ts1-drift-d 55s linear infinite reverse;
}
.scn-towton-henrys-soliloquy-part1 .spear-line {
  position: absolute; bottom: 45%; left: 60%; width: 2px; height: 25px;
  background: linear-gradient(180deg, #5a5a5a 0%, #2a2a2a 100%);
  border-radius: 1px;
  animation: ts1-spear 4s ease-in-out infinite;
}
@keyframes ts1-fade { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }
@keyframes ts1-glow { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.2; } }
@keyframes ts1-sway { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ts1-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes ts1-breathe { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes ts1-drift-c { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes ts1-drift-d { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes ts1-spear { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }

/* ------- scene 2 ------- */
.scn-towton-henrys-soliloquy-part2 {
  background: linear-gradient(180deg, #8a9a9a 0%, #6a7a7a 40%, #4a5a5a 100%), radial-gradient(ellipse at 50% 100%, #9aaaaa 0%, transparent 70%);
}
.scn-towton-henrys-soliloquy-part2 .sky-a {
  position: absolute; inset: 0 0 65% 0;
  background: linear-gradient(180deg, rgba(200,210,210,0.2) 0%, rgba(180,190,190,0.05) 100%);
  animation: ts2-sky 12s ease-in-out infinite alternate;
}
.scn-towton-henrys-soliloquy-part2 .hill {
  position: absolute; bottom: 20%; left: -5%; right: -5%; height: 40%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 80% 50% 0 0 / 70% 60% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.3);
  animation: ts2-hill 20s ease-in-out infinite;
}
.scn-towton-henrys-soliloquy-part2 .seated-fig {
  position: absolute; bottom: 42%; left: 38%; width: 18px; height: 28px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ts2-seat 7s ease-in-out infinite;
}
.scn-towton-henrys-soliloquy-part2 .sundial {
  position: absolute; bottom: 42%; left: 44%; width: 16px; height: 10px;
  background: radial-gradient(circle, #6a6a6a 0%, #3a3a3a 60%, #2a2a2a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 0 #2a2a2a;
  animation: ts2-dial 9s ease-in-out infinite;
}
.scn-towton-henrys-soliloquy-part2 .sundial-shadow {
  position: absolute; bottom: 42%; left: 44%; width: 12px; height: 4px;
  background: #1a1a1a;
  border-radius: 2px;
  transform-origin: bottom center;
  animation: ts2-shadow 12s linear infinite;
}
.scn-towton-henrys-soliloquy-part2 .cloud-e {
  position: absolute; top: 15%; right: 10%; width: 80px; height: 14px;
  background: linear-gradient(180deg, rgba(200,210,210,0.3) 0%, rgba(180,190,190,0.05) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: ts2-drift-e 45s linear infinite;
}
.scn-towton-henrys-soliloquy-part2 .grassblade {
  position: absolute; bottom: 42%; left: 50%; width: 2px; height: 20px;
  background: linear-gradient(180deg, #5a7a3a 0%, #3a5a2a 100%);
  border-radius: 1px;
  transform-origin: bottom center;
  animation: ts2-grass 4s ease-in-out infinite;
}
@keyframes ts2-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes ts2-hill { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.005); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ts2-seat { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ts2-dial { 0% { transform: scale(1); box-shadow: 0 2px 0 #2a2a2a; } 50% { transform: scale(1.02); box-shadow: 0 3px 0 #2a2a2a; } 100% { transform: scale(1); box-shadow: 0 2px 0 #2a2a2a; } }
@keyframes ts2-shadow { 0% { transform: rotate(-20deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-20deg); } }
@keyframes ts2-drift-e { 0% { transform: translateX(30px); } 100% { transform: translateX(-120vw); } }
@keyframes ts2-grass { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }

/* ------- scene 3 ------- */
.scn-towton-henrys-soliloquy-part3 {
  background: linear-gradient(180deg, #7a8a8a 0%, #5b6b6b 40%, #3c4a4a 80%, #2a3434 100%);
  background: radial-gradient(ellipse at 50% 0%, #8a9a9a 0%, transparent 60%);
}
.scn-towton-henrys-soliloquy-part3 .sky-c {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, rgba(200,210,210,0.25) 0%, transparent 100%);
  animation: ts3-fade 14s ease-in-out infinite alternate;
}
.scn-towton-henrys-soliloquy-part3 .hill-mid {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 50% 60% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: ts3-hill 19s ease-in-out infinite;
}
.scn-towton-henrys-soliloquy-part3 .hawthorn-bush {
  position: absolute; bottom: 40%; left: 30%; width: 40px; height: 30px;
  background: radial-gradient(ellipse, #5a7a3a 0%, #3a5a2a 60%, #2a4a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(90, 122, 58, 0.4);
  animation: ts3-bush 8s ease-in-out infinite;
}
.scn-towton-henrys-soliloquy-part3 .hawthorn-bush::before {
  content: ''; position: absolute; top: -8px; left: 8px; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffffff 0%, #d0d0c0 100%);
  border-radius: 50%;
  opacity: 0.6;
  animation: ts3-blossom 5s ease-in-out infinite;
}
.scn-towton-henrys-soliloquy-part3 .shepherd-lean {
  position: absolute; bottom: 38%; left: 22%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ts3-lean 6s ease-in-out infinite;
}
.scn-towton-henrys-soliloquy-part3 .sheep-a,
.scn-towton-henrys-soliloquy-part3 .sheep-b {
  position: absolute; bottom: 35%; width: 16px; height: 10px;
  background: radial-gradient(ellipse, #c0c0c0 0%, #a0a0a0 100%);
  border-radius: 50%;
  box-shadow: 0 2px 0 #808080;
}
.scn-towton-henrys-soliloquy-part3 .sheep-a {
  left: 55%;
  animation: ts3-graze-a 4s ease-in-out infinite;
}
.scn-towton-henrys-soliloquy-part3 .sheep-b {
  left: 65%;
  animation: ts3-graze-b 5s ease-in-out infinite 0.5s;
}
.scn-towton-henrys-soliloquy-part3 .sheep-a::after,
.scn-towton-henrys-soliloquy-part3 .sheep-b::after {
  content: ''; position: absolute; top: -4px; left: 2px; width: 4px; height: 4px;
  background: #d0d0d0;
  border-radius: 50%;
}
.scn-towton-henrys-soliloquy-part3 .cloud-f {
  position: absolute; top: 18%; left: 15%; width: 90px; height: 15px;
  background: linear-gradient(180deg, rgba(200,210,210,0.35) 0%, rgba(180,190,190,0.05) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: ts3-drift-f 50s linear infinite;
}
.scn-towton-henrys-soliloquy-part3 .ground-specks {
  position: absolute; bottom: 25%; left: 0; width: 100%; height: 20px;
  background: repeating-radial-gradient(circle at 10px 10px, #4a5a3a 0px, transparent 1px);
  background-size: 20px 20px;
  opacity: 0.2;
  animation: ts3-specks 10s linear infinite;
}
@keyframes ts3-fade { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes ts3-hill { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.005); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ts3-bush { 0% { transform: scale(1); } 50% { transform: scale(1.03); } 100% { transform: scale(1); } }
@keyframes ts3-blossom { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(1); } }
@keyframes ts3-lean { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ts3-graze-a { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(2px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes ts3-graze-b { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-2px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes ts3-drift-f { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }
@keyframes ts3-specks { 0% { background-position: 0 0; } 100% { background-position: 20px 0; } }

/* ------- scene 4 ------- */
.scn-towton-son-kills-father {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 30%, #3a3a3a 60%, #1a1a1a 100%), radial-gradient(ellipse at 50% 100%, #4a4a4a 0%, transparent 80%);
}
.scn-towton-son-kills-father .sky-d {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, rgba(60,60,60,0.4) 0%, rgba(30,30,30,0.1) 100%);
  animation: ts4-darken 20s ease-in-out infinite alternate;
}
.scn-towton-son-kills-father .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
  animation: ts4-ground 12s ease-in-out infinite;
}
.scn-towton-son-kills-father .son-fig {
  position: absolute; bottom: 35%; left: 45%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ts4-drag 8s ease-in-out infinite;
}
.scn-towton-son-kills-father .father-body {
  position: absolute; bottom: 28%; left: 32%; width: 40px; height: 14px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%;
  transform: rotate(-15deg);
  animation: ts4-body 8s ease-in-out infinite;
}
.scn-towton-son-kills-father .blood-pool {
  position: absolute; bottom: 27%; left: 30%; width: 30px; height: 6px;
  background: radial-gradient(ellipse, #5e1a1d 0%, #3a0a0a 80%, transparent 100%);
  border-radius: 50%;
  animation: ts4-blood 10s ease-in-out infinite;
}
.scn-towton-son-kills-father .cloud-g {
  position: absolute; top: 10%; left: 5%; width: 120px; height: 18px;
  background: linear-gradient(180deg, rgba(60,60,60,0.3) 0%, rgba(40,40,40,0.05) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: ts4-drift-g 60s linear infinite;
}
.scn-towton-son-kills-father .shadow-stripe {
  position: absolute; bottom: 38%; left: 0; width: 100%; height: 2px;
  background: linear-gradient(90deg, transparent, #0a0a0a 20%, #0a0a0a 80%, transparent);
  animation: ts4-stripe 5s ease-in-out infinite;
}
@keyframes ts4-darken { 0% { opacity: 0.5; } 50% { opacity: 0.9; } 100% { opacity: 0.4; } }
@keyframes ts4-ground { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ts4-drag { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(5px) translateY(1px) rotate(2deg); } 50% { transform: translateX(10px) translateY(0) rotate(0deg); } 75% { transform: translateX(15px) translateY(1px) rotate(-2deg); } 100% { transform: translateX(20px) translateY(0) rotate(0deg); } }
@keyframes ts4-body { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(-3px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes ts4-blood { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.05); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes ts4-drift-g { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes ts4-stripe { 0% { opacity: 0.2; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }

.scn-towton-henry-comments { background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 40%, #2a3a4a 70%, #1a2a3a 100%), radial-gradient(ellipse at 50% 0%, #6a7a8a 0%, transparent 60%); }
.scn-towton-henry-comments .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); animation: thc-sky 10s ease-in-out infinite alternate; }
.scn-towton-henry-comments .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 30% 50% 0 0 / 60% 80% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: thc-ground 15s ease-in-out infinite alternate; }
.scn-towton-henry-comments .king { position:absolute; bottom:25%; left:50%; width:30px; height:60px; transform: translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 10px rgba(0,0,0,.5); animation: thc-king 8s ease-in-out infinite; }
.scn-towton-henry-comments .king::after { content:''; position:absolute; top:-10px; left:50%; width:24px; height:10px; transform:translateX(-50%); background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 0 0; }
.scn-towton-henry-comments .lamb { position:absolute; bottom:27%; width:20px; height:14px; background: radial-gradient(ellipse at 50% 50%, #aabbca 0%, #7a8a9a 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: thc-lamb 5s ease-in-out infinite; }
.scn-towton-henry-comments .lamb-l { left:44%; animation-delay:.5s; }
.scn-towton-henry-comments .lamb-r { left:54%; animation-delay:1s; }
.scn-towton-henry-comments .tear { position:absolute; bottom:38%; left:46%; width:4px; height:4px; background: radial-gradient(circle, #8a9aba 0%, transparent 100%); border-radius:50%; animation: thc-tear 4s ease-in infinite; }
@keyframes thc-sky { 0% { opacity:.7; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.02); } 100% { opacity:.8; transform:scaleY(1); } }
@keyframes thc-ground { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes thc-king { 0%,100% { transform:translateX(-50%) rotate(0deg); } 50% { transform:translateX(-50%) rotate(2deg) translateY(-1px); } }
@keyframes thc-lamb { 0%,100% { transform:translateY(0) scaleX(1); } 50% { transform:translateY(-3px) scaleX(1.05); } }
@keyframes thc-tear { 0% { opacity:0; transform:translateY(0) scale(1); } 20% { opacity:1; } 80% { opacity:1; transform:translateY(30px) scale(.6); } 100% { opacity:0; transform:translateY(40px) scale(.4); } }

.scn-towton-father-kills-son { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #1a1a2e 60%, #0a0a1e 100%), radial-gradient(ellipse at 50% 80%, #3a2a3a 0%, transparent 70%); }
.scn-towton-father-kills-son .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); animation: fks-sky 12s ease-in-out infinite alternate; }
.scn-towton-father-kills-son .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 10% 20% 0 0 / 30% 40% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.5); }
.scn-towton-father-kills-son .father { position:absolute; bottom:30%; left:42%; width:24px; height:55px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: fks-father 6s ease-in-out infinite; }
.scn-towton-father-kills-son .father::before { content:''; position:absolute; top:-8px; left:50%; width:22px; height:8px; transform:translateX(-50%); background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%); border-radius: 50% 50% 0 0; }
.scn-towton-father-kills-son .son { position:absolute; bottom:25%; left:38%; width:40px; height:16px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 20% 50% 50% 20% / 30% 50% 50% 30%; transform: rotate(10deg); animation: fks-son 10s ease-in-out infinite; }
.scn-towton-father-kills-son .sword { position:absolute; bottom:32%; left:50%; width:2px; height:30px; background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%); transform: rotate(-20deg); transform-origin: bottom center; animation: fks-sword 4s ease-in-out infinite alternate; }
.scn-towton-father-kills-son .blood { position:absolute; bottom:24%; left:43%; width:20px; height:12px; background: radial-gradient(ellipse at 50% 50%, #8a3a2a 0%, #5a1a0a 100%); border-radius: 50%; box-shadow: 0 0 16px 4px rgba(138,58,42,.5); animation: fks-blood 8s ease-in-out infinite alternate; }
.scn-towton-father-kills-son .fog { position:absolute; inset:0; background: linear-gradient(180deg, rgba(42,42,62,.6) 0%, rgba(26,26,46,.3) 50%, transparent 100%); animation: fks-fog 20s linear infinite alternate; }
@keyframes fks-sky { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.6; } }
@keyframes fks-father { 0%,100% { transform:rotate(0deg); } 50% { transform:rotate(2deg) translateX(2px); } }
@keyframes fks-son { 0%,100% { transform:rotate(10deg) translateY(0); } 50% { transform:rotate(8deg) translateY(2px); } }
@keyframes fks-sword { 0% { transform:rotate(-20deg); } 100% { transform:rotate(-15deg); } }
@keyframes fks-blood { 0% { transform:scale(1); opacity:.7; } 50% { transform:scale(1.05); opacity:1; } 100% { transform:scale(1); opacity:.8; } }
@keyframes fks-fog { 0% { opacity:.3; } 100% { opacity:.6; } }

.scn-towton-henry-laments { background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 40%, #0a1a2a 100%), radial-gradient(ellipse at 50% 20%, #4a5a6a 0%, transparent 60%); }
.scn-towton-henry-laments .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); animation: hlm-sky 10s ease-in-out infinite alternate; }
.scn-towton-henry-laments .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 20% 40% 0 0 / 40% 60% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.4); }
.scn-towton-henry-laments .henry-kneel { position:absolute; bottom:28%; left:40%; width:26px; height:50px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hlm-henry 9s ease-in-out infinite; }
.scn-towton-henry-laments .henry-kneel::before { content:''; position:absolute; top:-6px; left:50%; width:20px; height:6px; transform:translateX(-50%); background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%); border-radius: 50% 50% 0 0; }
.scn-towton-henry-laments .body { position:absolute; bottom:25%; left:48%; width:40px; height:18px; background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%); border-radius: 30% 40% 40% 30% / 40% 50% 50% 40%; transform: rotate(-5deg); animation: hlm-body 12s ease-in-out infinite; }
.scn-towton-henry-laments .rose { position:absolute; bottom:26%; left:52%; width:14px; height:14px; background: radial-gradient(circle at 50% 50%, #b87878 0%, #8a5858 40%, #4a2a2a 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(184,120,120,.4); animation: hlm-rose 6s ease-in-out infinite alternate; }
.scn-towton-henry-laments .rose::after { content:''; position:absolute; top:2px; left:4px; width:6px; height:4px; background: #d8c8b8; border-radius: 50%; transform: rotate(-20deg); }
.scn-towton-henry-laments .tear { position:absolute; bottom:35%; left:44%; width:4px; height:4px; background: radial-gradient(circle, #6a7a8a 0%, transparent 100%); border-radius:50%; animation: hlm-tear 4s ease-in infinite; }
@keyframes hlm-sky { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.7; } }
@keyframes hlm-henry { 0%,100% { transform:rotate(0deg) translateY(0); } 25% { transform:rotate(-3deg) translateY(-1px); } 50% { transform:rotate(0deg) translateY(-2px); } 75% { transform:rotate(3deg) translateY(-1px); } }
@keyframes hlm-body { 0%,100% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-4deg) translateY(1px); } }
@keyframes hlm-rose { 0% { transform:scale(1) rotate(0deg); } 50% { transform:scale(1.1) rotate(10deg); } 100% { transform:scale(1) rotate(0deg); } }
@keyframes hlm-tear { 0% { opacity:0; transform:translateY(0) scale(1); } 20% { opacity:1; } 80% { opacity:1; transform:translateY(20px) scale(.6); } 100% { opacity:0; transform:translateY(30px) scale(.3); } }

.scn-towton-son-departs { background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 50%, #000a1a 100%), radial-gradient(ellipse at 50% 0%, #3a4a5a 0%, transparent 60%); }
.scn-towton-son-departs .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); animation: sdp-sky 15s ease-in-out infinite alternate; }
.scn-towton-son-departs .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-towton-son-departs .henry-walk { position:absolute; bottom:30%; left:40%; width:28px; height:55px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sdp-walk 4s ease-in-out infinite; }
.scn-towton-son-departs .henry-walk::before { content:''; position:absolute; top:-8px; left:50%; width:22px; height:8px; transform:translateX(-50%); background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%); border-radius: 50% 50% 0 0; }
.scn-towton-son-departs .son-carried { position:absolute; bottom:33%; left:44%; width:36px; height:16px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 20% 50% 50% 20% / 40% 60% 60% 40%; transform: rotate(15deg); animation: sdp-carried 4s ease-in-out infinite; }
.scn-towton-son-departs .sheet { position:absolute; bottom:31%; left:45%; width:40px; height:20px; background: linear-gradient(180deg, #8a8a9a 0%, #6a6a7a 100%); border-radius: 10% 20% 20% 10% / 30% 40% 40% 30%; opacity:.6; animation: sdp-sheet 6s ease-in-out infinite alternate; }
.scn-towton-son-departs .lantern { position:absolute; bottom:38%; left:36%; width:8px; height:10px; background: radial-gradient(circle, #c8a070 0%, #a08050 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 20px 6px rgba(200,160,112,.5), 0 0 40px 12px rgba(200,160,112,.3); animation: sdp-lantern 4s ease-in-out infinite; }
@keyframes sdp-sky { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.6; } }
@keyframes sdp-walk { 0%,100% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(4px) rotate(2deg); } 50% { transform:translateX(8px) rotate(0deg); } 75% { transform:translateX(4px) rotate(-2deg); } }
@keyframes sdp-carried { 0%,100% { transform:rotate(15deg) translateY(0); } 50% { transform:rotate(12deg) translateY(2px); } }
@keyframes sdp-sheet { 0% { transform:scaleX(1); opacity:.5; } 50% { transform:scaleX(1.1); opacity:.7; } 100% { transform:scaleX(1); opacity:.5; } }
@keyframes sdp-lantern { 0%,100% { transform:translateY(0) scale(1); } 50% { transform:translateY(-2px) scale(1.05); } }

/* scene: london-palace-fears (tense) */
.scn-london-palace-fears {
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b898 50%, #a08060 100%),
              radial-gradient(ellipse at 30% 20%, rgba(255,255,255,.4) 0%, transparent 60%);
}
.scn-london-palace-fears .wall-bg {
  position:absolute; inset:0; background:linear-gradient(90deg, #b09878 0%, #d8c8a8 30%, #e8d8c0 70%, #c8b898 100%);
}
.scn-london-palace-fears .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background:repeating-linear-gradient(90deg, #806040 0px, #a08060 2px, transparent 2px, transparent 40px),
             linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
}
.scn-london-palace-fears .throne {
  position:absolute; bottom:25%; left:20%; width:60px; height:90px;
  background:linear-gradient(135deg, #c8a060 0%, #a08040 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: -4px 6px 12px rgba(0,0,0,.5);
}
.scn-london-palace-fears .king-sil {
  position:absolute; bottom:24%; left:23%; width:30px; height:70px;
  background:linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lp1-king 2.5s ease-in-out infinite;
}
.scn-london-palace-fears .advisor-sil {
  position:absolute; bottom:24%; left:42%; width:24px; height:60px;
  background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lp1-adv 1.8s ease-in-out infinite;
}
.scn-london-palace-fears .candle {
  position:absolute; bottom:33%; left:60%; width:8px; height:16px;
  background:linear-gradient(180deg, #ffd080 0%, #b88030 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 0 20px 8px rgba(255,200,100,.6);
  animation: lp1-candle 0.6s ease-in-out infinite alternate;
}
.scn-london-palace-fears .shadow-cast {
  position:absolute; bottom:25%; left:30%; width:80px; height:80px;
  background:radial-gradient(ellipse at 50% 30%, rgba(0,0,0,.3) 0%, transparent 70%);
  animation: lp1-shadow 3s ease-in-out infinite alternate;
}
@keyframes lp1-king { 0%{transform: translateY(0) rotate(-1deg)} 50%{transform: translateY(-2px) rotate(2deg)} 100%{transform: translateY(0) rotate(-1deg)} }
@keyframes lp1-adv { 0%{transform: translateY(0) rotate(0deg)} 50%{transform: translateY(-1px) rotate(6deg)} 100%{transform: translateY(0) rotate(0deg)} }
@keyframes lp1-candle { 0%{opacity:.8; box-shadow:0 0 15px 4px rgba(255,200,100,.4)} 100%{opacity:1; box-shadow:0 0 25px 12px rgba(255,200,100,.8)} }
@keyframes lp1-shadow { 0%{transform: scaleX(1)} 100%{transform: scaleX(1.1) translateX(5px)} }

/* scene: london-palace-hastings-praised (warm) */
.scn-london-palace-hastings-praised {
  background: linear-gradient(180deg, #ffe8c8 0%, #f0c080 50%, #d0a060 100%),
              radial-gradient(ellipse at 50% 30%, rgba(255,200,100,.3) 0%, transparent 70%);
}
.scn-london-palace-hastings-praised .glow-bg {
  position:absolute; inset:0; background:radial-gradient(circle at 30% 40%, rgba(255,220,120,.5), transparent 60%);
  animation: lp2-glow 4s ease-in-out infinite alternate;
}
.scn-london-palace-hastings-praised .hastings-fig {
  position:absolute; bottom:22%; left:30%; width:28px; height:72px;
  background:linear-gradient(180deg, #8a6030 0%, #5a4020 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(255,200,100,.5);
  animation: lp2-bow 3s ease-in-out infinite;
}
.scn-london-palace-hastings-praised .courtier-l {
  position:absolute; bottom:22%; left:15%; width:22px; height:60px;
  background:linear-gradient(180deg, #6a5030 0%, #3a2818 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: lp2-fidget 5s ease-in-out infinite;
}
.scn-london-palace-hastings-praised .courtier-r {
  position:absolute; bottom:22%; left:48%; width:22px; height:60px;
  background:linear-gradient(180deg, #7a6038 0%, #4a3020 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: lp2-fidget 5s ease-in-out infinite reverse;
}
.scn-london-palace-hastings-praised .banner {
  position:absolute; bottom:60%; left:55%; width:12px; height:40px;
  background:linear-gradient(180deg, #c86040 0%, #a04020 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 2px 2px 4px rgba(0,0,0,.3);
  animation: lp2-sway 4s ease-in-out infinite;
}
.scn-london-palace-hastings-praised .sparkle {
  position:absolute; width:6px; height:6px; background:radial-gradient(circle, #ffe060 0%, transparent 70%);
  border-radius:50%;
  animation: lp2-sparkle 2s ease-in-out infinite;
}
.scn-london-palace-hastings-praised .s1 { bottom:40%; left:40%; animation-delay:0s; }
.scn-london-palace-hastings-praised .s2 { bottom:50%; left:55%; animation-delay:1s; }
@keyframes lp2-glow { 0%{opacity:.6} 50%{opacity:1} 100%{opacity:.7} }
@keyframes lp2-bow { 0%{transform: translateY(0) rotate(0)} 50%{transform: translateY(-3px) rotate(5deg)} 100%{transform: translateY(0) rotate(0)} }
@keyframes lp2-fidget { 0%{transform: translateX(0)} 50%{transform: translateX(3px)} 100%{transform: translateX(0)} }
@keyframes lp2-sway { 0%{transform: rotate(0)} 50%{transform: rotate(5deg)} 100%{transform: rotate(0)} }
@keyframes lp2-sparkle { 0%{opacity:0; transform: scale(0.5)} 50%{opacity:1; transform: scale(1.2)} 100%{opacity:0; transform: scale(0.5)} }

/* scene: london-palace-queen-speaks (calm) */
.scn-london-palace-queen-speaks {
  background: linear-gradient(180deg, #d8d0e0 0%, #b0a8c0 50%, #9080a0 100%),
              radial-gradient(ellipse at 40% 50%, rgba(200,180,220,.3) 0%, transparent 70%);
}
.scn-london-palace-queen-speaks .wall-soft {
  position:absolute; inset:0; background:linear-gradient(135deg, #c8b8d8 0%, #e8d8f0 30%, #d0c0e0 70%, #b8a8c8 100%);
}
.scn-london-palace-queen-speaks .throne-q {
  position:absolute; bottom:20%; left:35%; width:70px; height:100px;
  background:linear-gradient(135deg, #b0a0c0 0%, #8a789a 100%);
  border-radius: 20% 20% 8% 8%; box-shadow: 0 -4px 12px rgba(0,0,0,.2);
}
.scn-london-palace-queen-speaks .queen-sil {
  position:absolute; bottom:18%; left:38%; width:28px; height:80px;
  background:linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: lp3-breathe 6s ease-in-out infinite;
}
.scn-london-palace-queen-speaks .lady-waiting {
  position:absolute; bottom:18%; left:50%; width:22px; height:72px;
  background:linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: lp3-fan 8s ease-in-out infinite;
}
.scn-london-palace-queen-speaks .rose {
  position:absolute; bottom:30%; left:33%; width:10px; height:10px;
  background:radial-gradient(circle, #b87878 0%, #804040 100%);
  border-radius:50%; box-shadow: 0 0 8px 2px rgba(200,100,100,.3);
  animation: lp3-float 5s ease-in-out infinite;
}
.scn-london-palace-queen-speaks .fan {
  position:absolute; bottom:32%; left:52%; width:20px; height:16px;
  background:linear-gradient(180deg, #e0c8a0 0%, #c8a870 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom left;
  animation: lp3-fan 8s ease-in-out infinite;
}
.scn-london-palace-queen-speaks .curtain-l {
  position:absolute; top:0; left:0; width:30px; height:100%;
  background:linear-gradient(180deg, #706060 0%, #504040 100%);
  border-radius: 0 30% 30% 0;
  animation: lp3-curtain 10s ease-in-out infinite alternate;
}
.scn-london-palace-queen-speaks .curtain-r {
  position:absolute; top:0; right:0; width:30px; height:100%;
  background:linear-gradient(180deg, #706060 0%, #504040 100%);
  border-radius: 30% 0 0 30%;
  animation: lp3-curtain 10s ease-in-out infinite alternate-reverse;
}
@keyframes lp3-breathe { 0%{transform: scaleY(1)} 50%{transform: scaleY(1.02)} 100%{transform: scaleY(1)} }
@keyframes lp3-fan { 0%{transform: rotate(0)} 50%{transform: rotate(5deg)} 100%{transform: rotate(0)} }
@keyframes lp3-float { 0%{transform: translateY(0)} 50%{transform: translateY(-2px)} 100%{transform: translateY(0)} }
@keyframes lp3-curtain { 0%{transform: translateX(0)} 100%{transform: translateX(5px)} }

/* scene: london-palace-messenger-from-france (tense) */
.scn-london-palace-messenger-from-france {
  background: linear-gradient(180deg, #c8b8a8 0%, #a89888 50%, #887868 100%),
              radial-gradient(ellipse at 70% 20%, rgba(255,240,200,.3) 0%, transparent 60%);
}
.scn-london-palace-messenger-from-france .wall-dark {
  position:absolute; inset:0; background:linear-gradient(90deg, #786868 0%, #988878 40%, #b0a090 80%, #887868 100%);
}
.scn-london-palace-messenger-from-france .floor-tile {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background:repeating-linear-gradient(90deg, #4a3a2a 0px, #5a4a3a 2px, transparent 2px, transparent 50px),
             linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
}
.scn-london-palace-messenger-from-france .throne-king {
  position:absolute; bottom:20%; left:55%; width:50px; height:80px;
  background:linear-gradient(135deg, #a08050 0%, #806030 100%);
  border-radius: 15% 15% 5% 5%; box-shadow: -3px 5px 10px rgba(0,0,0,.5);
}
.scn-london-palace-messenger-from-france .king-fig {
  position:absolute; bottom:18%; left:57%; width:26px; height:70px;
  background:linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lp4-angry 1.5s ease-in-out infinite;
}
.scn-london-palace-messenger-from-france .messenger-fig {
  position:absolute; bottom:18%; left:30%; width:22px; height:55px;
  background:linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lp4-kneel 2s ease-in-out infinite;
}
.scn-london-palace-messenger-from-france .letter {
  position:absolute; bottom:24%; left:33%; width:12px; height:16px;
  background:linear-gradient(135deg, #e0d0b0 0%, #c0a880 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: 1px 1px 3px rgba(0,0,0,.3);
  animation: lp4-shake 0.8s ease-in-out infinite alternate;
}
.scn-london-palace-messenger-from-france .torch {
  position:absolute; bottom:40%; left:20%; width:10px; height:30px;
  background:linear-gradient(180deg, #c08040 0%, #805020 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 30px 10px rgba(255,200,100,.7);
  animation: lp4-torch 0.5s ease-in-out infinite alternate;
}
@keyframes lp4-angry { 0%{transform: translateY(0) rotate(-2deg)} 50%{transform: translateY(-2px) rotate(2deg)} 100%{transform: translateY(0) rotate(-2deg)} }
@keyframes lp4-kneel { 0%{transform: translateY(0) rotate(0)} 50%{transform: translateY(-1px) rotate(10deg)} 100%{transform: translateY(0) rotate(0)} }
@keyframes lp4-shake { 0%{transform: rotate(0)} 25%{transform: rotate(5deg)} 50%{transform: rotate(-5deg)} 75%{transform: rotate(3deg)} 100%{transform: rotate(0)} }
@keyframes lp4-torch { 0%{box-shadow: 0 0 20px 6px rgba(255,200,100,.5); opacity:.8} 100%{box-shadow: 0 0 40px 15px rgba(255,200,100,.9); opacity:1} }

/* scene 1: henry-despair */
.scn-parliament-house-henry-despair {
  background:
    linear-gradient(180deg, #d4c9b0 0%, #b8a88a 40%, #8a7a5a 100%),
    radial-gradient(ellipse at 50% 80%, #c4b89a 0%, transparent 60%);
}
.scn-parliament-house-henry-despair .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #a89c80 0%, #7a6e52 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  animation: phhd-wallpulse 12s ease-in-out infinite alternate;
}
.scn-parliament-house-henry-despair .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a4a32 0%, #3a2e1e 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
}
.scn-parliament-house-henry-despair .pillar-l {
  position: absolute; bottom: 30%; left: 10%; width: 6%; height: 55%;
  background: linear-gradient(135deg, #b8a88a 0%, #8a7a5a 100%);
  border-radius: 4px; box-shadow: 4px 0 8px rgba(0,0,0,.2);
  animation: phhd-pillar 20s ease-in-out infinite;
}
.scn-parliament-house-henry-despair .pillar-r {
  position: absolute; bottom: 30%; right: 10%; width: 6%; height: 55%;
  background: linear-gradient(225deg, #b8a88a 0%, #8a7a5a 100%);
  border-radius: 4px; box-shadow: -4px 0 8px rgba(0,0,0,.2);
  animation: phhd-pillar 20s ease-in-out infinite reverse;
}
.scn-parliament-house-henry-despair .window {
  position: absolute; top: 15%; left: 40%; width: 20%; height: 35%;
  background: radial-gradient(ellipse at 50% 60%, #ffe8c0 0%, #d4c080 60%, #a08050 100%);
  border-radius: 8% 8% 0 0; box-shadow: inset 0 0 40px rgba(255,232,192,.6);
  animation: phhd-windowglow 4s ease-in-out infinite alternate;
}
.scn-parliament-house-henry-despair .throne {
  position: absolute; bottom: 30%; left: 50%; width: 12%; height: 20%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5038 0%, #3a2818 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 12px rgba(0,0,0,.4);
}
.scn-parliament-house-henry-despair .henry {
  position: absolute; bottom: 32%; left: 48%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: phhd-henry-sway 5s ease-in-out infinite;
}
.scn-parliament-house-henry-despair .light-ray {
  position: absolute; top: 20%; left: 42%; width: 16%; height: 60%;
  background: linear-gradient(180deg, rgba(255,232,192,.4) 0%, transparent 100%);
  clip-path: polygon(10% 0%, 90% 0%, 80% 100%, 20% 100%);
  animation: phhd-raypulse 7s ease-in-out infinite alternate;
}
@keyframes phhd-wallpulse {
  0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; }
}
@keyframes phhd-pillar {
  0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); }
}
@keyframes phhd-windowglow {
  0% { box-shadow: inset 0 0 30px rgba(255,232,192,.4); }
  50% { box-shadow: inset 0 0 60px rgba(255,232,192,.8); }
  100% { box-shadow: inset 0 0 40px rgba(255,232,192,.5); }
}
@keyframes phhd-henry-sway {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(3deg) translateY(-1px); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes phhd-raypulse {
  0% { opacity: .3; transform: scaleY(.95); }
  50% { opacity: .6; transform: scaleY(1); }
  100% { opacity: .4; transform: scaleY(.98); }
}

/* scene 2: oath-sworn */
.scn-parliament-house-oath-sworn {
  background:
    linear-gradient(180deg, #e0d4c0 0%, #c4b89a 50%, #9a8a72 100%),
    radial-gradient(ellipse at 50% 40%, #f0e4d0 0%, transparent 60%);
}
.scn-parliament-house-oath-sworn .bg-tapestry {
  position: absolute; top: 0; left: 15%; right: 15%; height: 60%;
  background: linear-gradient(135deg, #6a3a2a 0%, #4a2a1a 50%, #3a1a0a 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.3);
  animation: phos-tapestry 15s ease-in-out infinite alternate;
}
.scn-parliament-house-oath-sworn .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #5a4a32 0%, #3a2e1e 100%);
}
.scn-parliament-house-oath-sworn .king {
  position: absolute; bottom: 25%; left: 50%; width: 8%; height: 28%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e00 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: phos-king 6s ease-in-out infinite;
}
.scn-parliament-house-oath-sworn .kneeling {
  position: absolute; bottom: 25%; left: 36%; width: 7%; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e00 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: phos-kneel 4s ease-in-out infinite alternate;
}
.scn-parliament-house-oath-sworn .altar {
  position: absolute; bottom: 28%; left: 44%; width: 12%; height: 8%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a32 100%);
  border-radius: 6px; box-shadow: 0 2px 6px rgba(0,0,0,.3);
}
.scn-parliament-house-oath-sworn .crown {
  position: absolute; bottom: 33%; left: 46%; width: 8%; height: 6%;
  background: linear-gradient(135deg, #c8a840 0%, #a08030 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 12px rgba(200,168,64,.5);
  animation: phos-crown 3s ease-in-out infinite alternate;
}
.scn-parliament-house-oath-sworn .holy-book {
  position: absolute; bottom: 30%; left: 47%; width: 4%; height: 5%;
  background: linear-gradient(135deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 2px; box-shadow: 1px 1px 4px rgba(0,0,0,.3);
}
.scn-parliament-house-oath-sworn .celestial-ray {
  position: absolute; top: 0; left: 40%; width: 20%; height: 80%;
  background: linear-gradient(180deg, rgba(255,240,200,.3) 0%, transparent 80%);
  clip-path: polygon(25% 0%, 75% 0%, 60% 100%, 40% 100%);
  animation: phos-ray 8s ease-in-out infinite alternate;
}
@keyframes phos-tapestry {
  0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; }
}
@keyframes phos-king {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(-1deg) translateY(-1px); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes phos-kneel {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes phos-crown {
  0% { transform: translateY(0); box-shadow: 0 0 8px rgba(200,168,64,.4); }
  50% { transform: translateY(-2px); box-shadow: 0 0 20px rgba(200,168,64,.8); }
  100% { transform: translateY(0); box-shadow: 0 0 12px rgba(200,168,64,.5); }
}
@keyframes phos-ray {
  0% { opacity: .2; transform: scaleY(.95); }
  50% { opacity: .5; transform: scaleY(1.05); }
  100% { opacity: .3; transform: scaleY(1); }
}

/* scene 3: queen-rage */
.scn-parliament-house-queen-rage {
  background:
    linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 40%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 30%, #5a3a3a 0%, transparent 70%);
}
.scn-parliament-house-queen-rage .curtain-left {
  position: absolute; top: 0; left: 0; width: 20%; height: 70%;
  background: linear-gradient(135deg, #5a1a1a 0%, #3a0a0a 100%);
  border-radius: 0 20% 20% 0; box-shadow: 4px 0 12px rgba(0,0,0,.4);
  animation: phqr-curtain 10s ease-in-out infinite alternate;
}
.scn-parliament-house-queen-rage .curtain-right {
  position: absolute; top: 0; right: 0; width: 20%; height: 70%;
  background: linear-gradient(225deg, #5a1a1a 0%, #3a0a0a 100%);
  border-radius: 20% 0 0 20%; box-shadow: -4px 0 12px rgba(0,0,0,.4);
  animation: phqr-curtain 10s ease-in-out infinite alternate-reverse;
}
.scn-parliament-house-queen-rage .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
}
.scn-parliament-house-queen-rage .queen {
  position: absolute; bottom: 20%; left: 50%; width: 10%; height: 35%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a3a2a 0%, #5a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: phqr-queen 0.5s ease-in-out infinite alternate;
}
.scn-parliament-house-queen-rage .queen-cape {
  position: absolute; bottom: 20%; left: 46%; width: 18%; height: 30%;
  background: linear-gradient(135deg, #4a0a0a 0%, #2a0000 100%);
  border-radius: 0 0 50% 50%; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: phqr-cape 2s ease-in-out infinite alternate;
}
.scn-parliament-house-queen-rage .shadow-queen {
  position: absolute; bottom: 20%; left: 45%; width: 20%; height: 40%;
  background: rgba(0,0,0,.5);
  border-radius: 30% 30% 10% 10%; filter: blur(8px);
  animation: phqr-shadow 3s ease-in-out infinite alternate;
}
.scn-parliament-house-queen-rage .throne-back {
  position: absolute; bottom: 22%; left: 42%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e00 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-parliament-house-queen-rage .fire-spark {
  position: absolute; bottom: 55%; left: 55%; width: 2%; height: 2%;
  background: #ff8a4a; border-radius: 50%;
  box-shadow: 0 0 16px 4px #ff8a4a, 0 0 30px 8px rgba(255,138,74,.4);
  animation: phqr-spark 1.5s ease-in-out infinite alternate;
}
@keyframes phqr-curtain {
  0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(-2px); }
}
@keyframes phqr-queen {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(4deg) translateY(-1px); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes phqr-cape {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(3deg) scaleX(1.05); }
  100% { transform: rotate(-2deg) scaleX(0.95); }
}
@keyframes phqr-shadow {
  0% { transform: translateX(0) scaleY(1); opacity: .4; }
  50% { transform: translateX(5px) scaleY(1.1); opacity: .6; }
  100% { transform: translateX(-3px) scaleY(0.95); opacity: .5; }
}
@keyframes phqr-spark {
  0% { transform: translateY(0) scale(1); opacity: .8; }
  50% { transform: translateY(-8px) scale(1.5); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: .6; }
}

/* scene 4: margaret-scolding */
.scn-parliament-house-margaret-scolding {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 40%, #0a0000 100%),
    radial-gradient(ellipse at 60% 50%, #4a2a2a 0%, transparent 70%);
}
.scn-parliament-house-margaret-scolding .arch-bg {
  position: absolute; top: 0; left: 10%; right: 10%; height: 80%;
  background: linear-gradient(135deg, #3a2a2a 0%, #2a1a1a 60%, #1a0a0a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
}
.scn-parliament-house-margaret-scolding .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
}
.scn-parliament-house-margaret-scolding .margaret {
  position: absolute; bottom: 20%; left: 40%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #6a2a1a 0%, #3a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: phms-margaret 3s ease-in-out infinite alternate;
}
.scn-parliament-house-margaret-scolding .henry-cower {
  position: absolute; bottom: 20%; left: 55%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #1a0e00 0%, #0a0400 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: phms-henry 4s ease-in-out infinite alternate;
}
.scn-parliament-house-margaret-scolding .scepter {
  position: absolute; bottom: 30%; left: 48%; width: 2%; height: 15%;
  background: linear-gradient(180deg, #c8a840 0%, #a08030 100%);
  border-radius: 4px; box-shadow: 0 0 8px rgba(200,168,64,.4);
  animation: phms-scepter 5s ease-in-out infinite;
}
.scn-parliament-house-margaret-scolding .column-l {
  position: absolute; bottom: 20%; left: 12%; width: 6%; height: 70%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 4px 0 8px rgba(0,0,0,.3);
}
.scn-parliament-house-margaret-scolding .column-r {
  position: absolute; bottom: 20%; right: 12%; width: 6%; height: 70%;
  background: linear-gradient(225deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: -4px 0 8px rgba(0,0,0,.3);
}
.scn-parliament-house-margaret-scolding .ray-light {
  position: absolute; top: 0; left: 30%; width: 10%; height: 100%;
  background: linear-gradient(180deg, rgba(255,200,150,.15) 0%, transparent 90%);
  clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%);
  animation: phms-ray 12s ease-in-out infinite alternate;
}
@keyframes phms-margaret {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-5px) rotate(5deg) translateY(-2px); }
  100% { transform: translateX(2px) rotate(-3deg); }
}
@keyframes phms-henry {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(3px) scaleY(0.95); }
  100% { transform: translateX(-2px) scaleY(1); }
}
@keyframes phms-scepter {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes phms-ray {
  0% { opacity: .1; transform: translateX(-10px); }
  50% { opacity: .3; transform: translateX(5px); }
  100% { opacity: .15; transform: translateX(-5px); }
}

.scn-london-palace-news-of-henry {
  background:
    linear-gradient(180deg, #e8d5b8 0%, #c0a080 40%, #8a6a44 100%),
    radial-gradient(ellipse at 60% 20%, #fff5e6 0%, transparent 60%);
  filter: brightness(1.1) contrast(0.95);
}
.scn-london-palace-news-of-henry .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #d4c4a0, #b89e7a, #9c7e5a);
  animation: lpn-wall 20s ease-in-out infinite;
}
.scn-london-palace-news-of-henry .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a6038, #5a4020);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
  animation: lpn-floor 15s ease-in-out infinite;
}
.scn-london-palace-news-of-henry .gate {
  position: absolute; bottom: 28%; left: 50%; width: 120px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a, #3a2a1a);
  border: 6px solid #4a3020;
  border-radius: 0 0 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,.5);
  animation: lpn-gate 4s ease-in-out infinite;
}
.scn-london-palace-news-of-henry .tower {
  position: absolute; bottom: 28%; left: 20%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #8a6a44, #5a4020);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 6px 0 12px rgba(0,0,0,.3);
  animation: lpn-tower 12s ease-in-out infinite alternate;
}
.scn-london-palace-news-of-henry .prisoner {
  position: absolute; bottom: 30%; left: 36%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a, #1a100a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lpn-walk 3s ease-in-out infinite;
}
.scn-london-palace-news-of-henry .guard-a {
  position: absolute; bottom: 30%; left: 52%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lpn-guard 4s ease-in-out infinite;
}
.scn-london-palace-news-of-henry .guard-b {
  position: absolute; bottom: 30%; left: 58%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lpn-guard 4s ease-in-out infinite 2s;
}
@keyframes lpn-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; filter: brightness(1.05); }
  100% { opacity: 0.9; }
}
@keyframes lpn-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes lpn-gate {
  0% { transform: translateX(-50%) scaleY(1); }
  25% { transform: translateX(-50%) scaleY(0.98); }
  50% { transform: translateX(-50%) scaleY(1); }
  75% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes lpn-tower {
  0% { transform: rotate(-0.5deg); }
  100% { transform: rotate(0.5deg); }
}
@keyframes lpn-walk {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(5px) rotate(1deg); }
  50% { transform: translateX(10px) rotate(-2deg); }
  75% { transform: translateX(15px) rotate(1deg); }
  100% { transform: translateX(20px) rotate(0deg); }
}
@keyframes lpn-guard {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-london-palace-gloucesters-soliloquy {
  background:
    linear-gradient(180deg, #d9cbb3 0%, #a6927e 40%, #5a4a3a 100%),
    radial-gradient(ellipse at 30% 10%, #f0e6d0 0%, transparent 40%);
}
.scn-london-palace-gloucesters-soliloquy .bg-hall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #cabb9e, #9e8a70, #7a6650);
  animation: lps-bg 30s ease-in-out infinite alternate;
}
.scn-london-palace-gloucesters-soliloquy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a3a22, #2a1a0a);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,.5);
  animation: lps-floor 18s ease-in-out infinite;
}
.scn-london-palace-gloucesters-soliloquy .candle {
  position: absolute; bottom: 35%; left: 46%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #f0d080, #c89040);
  border-radius: 40% 40% 0 0;
  box-shadow: 0 0 20px 8px rgba(255,210,100,.8), 0 0 40px 16px rgba(255,210,100,.4);
  animation: lps-candle 2s ease-in-out infinite alternate;
}
.scn-london-palace-gloucesters-soliloquy .shadow-figure {
  position: absolute; bottom: 33%; left: 50%; width: 40px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 10px rgba(0,0,0,.6);
  animation: lps-figure 5s ease-in-out infinite;
}
.scn-london-palace-gloucesters-soliloquy .column-left {
  position: absolute; bottom: 0; left: 20%; width: 30px; height: 100%;
  background: linear-gradient(180deg, #a08060, #604020);
  border-radius: 10% 10% 0 0;
  animation: lps-col 15s ease-in-out infinite alternate;
}
.scn-london-palace-gloucesters-soliloquy .column-right {
  position: absolute; bottom: 0; right: 20%; width: 30px; height: 100%;
  background: linear-gradient(180deg, #a08060, #604020);
  border-radius: 10% 10% 0 0;
  animation: lps-col 15s ease-in-out infinite alternate-reverse;
}
@keyframes lps-bg {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes lps-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes lps-candle {
  0% { transform: scaleY(1); opacity: 0.8; box-shadow: 0 0 15px 6px rgba(255,210,100,.6); }
  50% { transform: scaleY(1.05); opacity: 1; box-shadow: 0 0 25px 10px rgba(255,210,100,.9); }
  100% { transform: scaleY(1); opacity: 0.85; box-shadow: 0 0 18px 7px rgba(255,210,100,.7); }
}
@keyframes lps-figure {
  0% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  25% { transform: translateX(-50%) rotate(2deg) translateY(-2px); }
  50% { transform: translateX(-50%) rotate(-1deg) translateY(0); }
  75% { transform: translateX(-50%) rotate(1deg) translateY(-1px); }
  100% { transform: translateX(-50%) rotate(0deg) translateY(0); }
}
@keyframes lps-col {
  0% { transform: scaleY(1); }
  100% { transform: scaleY(0.98); }
}

.scn-france-lewis-welcomes-margaret {
  background:
    linear-gradient(180deg, #f5e8d0 0%, #dac0a0 40%, #b09070 100%),
    radial-gradient(ellipse at 40% 30%, #fff5e0 0%, transparent 50%);
}
.scn-france-lewis-welcomes-margaret .bg-court {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(175deg, #e8d8b8, #c8b090, #a08060);
  animation: flw-wall 25s ease-in-out infinite;
}
.scn-france-lewis-welcomes-margaret .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #b09060, #807040);
  border-radius: 10% 90% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 8px 25px rgba(0,0,0,.2);
  animation: flw-floor 18s ease-in-out infinite;
}
.scn-france-lewis-welcomes-margaret .throne {
  position: absolute; bottom: 22%; left: 50%; width: 80px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4a060, #a07040);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 10px 30px rgba(0,0,0,.4);
  animation: flw-throne 8s ease-in-out infinite;
}
.scn-france-lewis-welcomes-margaret .queen-margaret {
  position: absolute; bottom: 22%; left: 44%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #6a3a3a, #4a2a2a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: flw-figure 6s ease-in-out infinite;
}
.scn-france-lewis-welcomes-margaret .king-lewis {
  position: absolute; bottom: 22%; left: 56%; width: 32px; height: 64px;
  background: linear-gradient(180deg, #3a4a5a, #2a3a4a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: flw-figure 6s ease-in-out infinite 3s;
}
.scn-france-lewis-welcomes-margaret .banner-left {
  position: absolute; top: 10%; left: 15%; width: 40px; height: 70px;
  background: linear-gradient(135deg, #c89880, #a07050);
  border-radius: 0 20% 20% 20%;
  transform-origin: top center;
  animation: flw-banner 12s ease-in-out infinite;
}
.scn-france-lewis-welcomes-margaret .banner-right {
  position: absolute; top: 10%; right: 15%; width: 40px; height: 70px;
  background: linear-gradient(225deg, #c89880, #a07050);
  border-radius: 20% 0 20% 20%;
  transform-origin: top center;
  animation: flw-banner 12s ease-in-out infinite 6s;
}
@keyframes flw-wall {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes flw-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes flw-throne {
  0% { transform: translateX(-50%) scale(1); }
  25% { transform: translateX(-50%) scale(1.01); }
  50% { transform: translateX(-50%) scale(1); }
  75% { transform: translateX(-50%) scale(0.99); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes flw-figure {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(2deg); }
  50% { transform: rotate(-1deg); }
  75% { transform: rotate(1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes flw-banner {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(3deg); }
  50% { transform: rotate(-2deg); }
  75% { transform: rotate(2deg); }
  100% { transform: rotate(0deg); }
}

.scn-france-lewis-comforts {
  background:
    linear-gradient(180deg, #f0e0c0 0%, #d4b898 40%, #a88a6a 100%),
    radial-gradient(ellipse at 60% 40%, #fff8e0 0%, transparent 50%);
}
.scn-france-lewis-comforts .bg-interior {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(160deg, #e8d4b0, #c8a880, #a88860);
  animation: flc-bg 28s ease-in-out infinite alternate;
}
.scn-france-lewis-comforts .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8a7048, #5a4020);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: flc-floor 15s ease-in-out infinite;
}
.scn-france-lewis-comforts .seating {
  position: absolute; bottom: 18%; left: 38%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #b09060, #8a7040);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 6px 20px rgba(0,0,0,.3);
  animation: flc-seat 10s ease-in-out infinite;
}
.scn-france-lewis-comforts .king {
  position: absolute; bottom: 18%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a5a6a, #2a3a4a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: flc-fig 5s ease-in-out infinite;
}
.scn-france-lewis-comforts .queen {
  position: absolute; bottom: 18%; left: 52%; width: 28px; height: 58px;
  background: linear-gradient(180deg, #6a3a3a, #4a2a2a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: flc-fig 5s ease-in-out infinite 2.5s;
}
.scn-france-lewis-comforts .candle-glow {
  position: absolute; bottom: 30%; left: 46%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,200,100,.6);
  animation: flc-glow 3s ease-in-out infinite alternate;
}
.scn-france-lewis-comforts .drapery {
  position: absolute; top: 0; right: 10%; width: 60px; height: 100%;
  background: linear-gradient(135deg, #a08060 0%, #806040 50%, #604020 100%);
  border-radius: 20% 0 0 20%;
  transform-origin: top center;
  animation: flc-drape 8s ease-in-out infinite;
}
@keyframes flc-bg {
  0% { opacity: 0.9; }
  100% { opacity: 1; }
}
@keyframes flc-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes flc-seat {
  0% { transform: translateY(0); }
  25% { transform: translateY(-1px); }
  50% { transform: translateY(0); }
  75% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes flc-fig {
  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 flc-glow {
  0% { opacity: 0.6; box-shadow: 0 0 20px 10px rgba(255,200,100,.4); }
  50% { opacity: 1; box-shadow: 0 0 35px 18px rgba(255,200,100,.8); }
  100% { opacity: 0.7; box-shadow: 0 0 25px 12px rgba(255,200,100,.5); }
}
@keyframes flc-drape {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(3deg); }
  50% { transform: rotate(-2deg); }
  75% { transform: rotate(2deg); }
  100% { transform: rotate(0deg); }
}

.scn-edwards-camp-watchmen {
  background:
    linear-gradient(180deg, #08082a 0%, #12124a 40%, #1a1a4a 100%),
    radial-gradient(ellipse at 50% 0%, #2a2a6a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-edwards-camp-watchmen .ew-night-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #0a0a3a 0%, transparent 100%); animation: ew-sky-pulse 12s ease-in-out infinite alternate; }
.scn-edwards-camp-watchmen .ew-moon { position:absolute; top:8%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #e0e0ff 0%, #a0a0d0 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(160,160,220,.4), 0 0 120px 40px rgba(100,100,180,.2); animation: ew-moon-drift 20s ease-in-out infinite alternate; }
.scn-edwards-camp-watchmen .ew-cloud-1 { position:absolute; top:12%; left:0; width:100px; height:20px; background: linear-gradient(180deg, rgba(180,180,220,.5) 0%, rgba(180,180,220,.1) 100%); border-radius:50%; filter: blur(8px); animation: ew-cloud-drift 40s linear infinite; }
.scn-edwards-camp-watchmen .ew-cloud-2 { position:absolute; top:22%; left:-60px; width:140px; height:16px; background: linear-gradient(180deg, rgba(160,160,200,.4) 0%, rgba(160,160,200,.05) 100%); border-radius:50%; filter: blur(6px); animation: ew-cloud-drift 60s linear infinite 10s; }
.scn-edwards-camp-watchmen .ew-distant-hills { position:absolute; bottom:38%; left:0; right:0; height:20%; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); animation: ew-hills-shift 18s ease-in-out infinite alternate; }
.scn-edwards-camp-watchmen .ew-tent { position:absolute; bottom:30%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: linear-gradient(135deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%); border-radius: 4% 4% 8% 8% / 10% 10% 20% 20%; box-shadow: 0 10px 20px rgba(0,0,0,.7); animation: ew-tent-sway 9s ease-in-out infinite; }
.scn-edwards-camp-watchmen .ew-watchman-1 { position:absolute; bottom:28%; left:38%; width:16px; height:40px; background: linear-gradient(180deg, #050510 0%, #000005 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ew-watch-shift 4s ease-in-out infinite; }
.scn-edwards-camp-watchmen .ew-watchman-2 { position:absolute; bottom:28%; left:50%; width:18px; height:42px; background: linear-gradient(180deg, #050510 0%, #000005 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ew-watch-shift 4.5s ease-in-out infinite -1s; }
.scn-edwards-camp-watchmen .ew-watchman-3 { position:absolute; bottom:28%; right:36%; width:15px; height:38px; background: linear-gradient(180deg, #050510 0%, #000005 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ew-watch-shift 5s ease-in-out infinite -2s; }
.scn-edwards-camp-watchmen .ew-ember { position:absolute; bottom:40%; left:45%; width:4px; height:4px; background: #d0b080; border-radius:50%; box-shadow: 0 0 6px 2px rgba(208,176,128,.6); animation: ew-ember-float 6s ease-in infinite; }
@keyframes ew-sky-pulse { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ew-moon-drift { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-15px) scale(1.02) } 100% { transform: translateX(10px) scale(.98) } }
@keyframes ew-cloud-drift { 0% { transform: translateX(-120px) } 100% { transform: translateX(120vw) } }
@keyframes ew-hills-shift { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-3px) scaleX(1.01) } 100% { transform: translateY(0) scaleX(.99) } }
@keyframes ew-tent-sway { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } }
@keyframes ew-watch-shift { 0%,100% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(2px) rotate(1deg) } }
@keyframes ew-ember-float { 0% { transform: translateY(0) rotate(0deg) scale(1); opacity:1 } 50% { transform: translateY(-30px) rotate(180deg) scale(1.5); opacity:.8 } 100% { transform: translateY(-80px) rotate(360deg) scale(0); opacity:0 } }

.scn-edwards-camp-capture {
  background:
    linear-gradient(180deg, #050510 0%, #0a0a1a 40%, #15152a 100%),
    radial-gradient(ellipse at 50% 100%, #1a1a3a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-edwards-camp-capture .ec-tent-wall { position:absolute; inset:10% 10% 10% 10%; background: linear-gradient(135deg, #0a0a15 0%, #151525 40%, #0a0a15 100%); border-radius:4%; box-shadow: inset 0 0 40px rgba(0,0,0,.8); animation: ec-wall-pulse 8s ease-in-out infinite alternate; }
.scn-edwards-camp-capture .ec-tent-pole { position:absolute; bottom:15%; left:50%; width:8px; height:70%; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:10%; box-shadow: 0 0 10px rgba(0,0,0,.5); animation: ec-pole-creak 12s ease-in-out infinite; }
.scn-edwards-camp-capture .ec-shadow-creep { position:absolute; bottom:10%; left:-10%; width:120%; height:40%; background: linear-gradient(180deg, transparent 0%, #000000 100%); opacity:.6; animation: ec-shadow-creep 15s ease-in-out infinite alternate; }
.scn-edwards-camp-capture .ec-warwick { position:absolute; bottom:12%; left:25%; width:22px; height:50px; background: linear-gradient(180deg, #050508 0%, #000000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ec-creep 6s ease-in-out infinite; }
.scn-edwards-camp-capture .ec-soldier-1 { position:absolute; bottom:12%; left:40%; width:20px; height:48px; background: linear-gradient(180deg, #080810 0%, #000005 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ec-creep 6.5s ease-in-out infinite -1s; }
.scn-edwards-camp-capture .ec-soldier-2 { position:absolute; bottom:12%; right:25%; width:20px; height:46px; background: linear-gradient(180deg, #080810 0%, #000005 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ec-creep 7s ease-in-out infinite -2s; }
.scn-edwards-camp-capture .ec-sword-glint-1 { position:absolute; bottom:35%; left:28%; width:3px; height:18px; background: #c0c0e0; border-radius:10%; box-shadow: 0 0 12px 4px rgba(160,160,220,.6); transform:rotate(-20deg); animation: ec-glint 3s ease-in-out infinite alternate; }
.scn-edwards-camp-capture .ec-sword-glint-2 { position:absolute; bottom:35%; right:28%; width:3px; height:16px; background: #c0c0e0; border-radius:10%; box-shadow: 0 0 12px 4px rgba(160,160,220,.6); transform:rotate(15deg); animation: ec-glint 3.5s ease-in-out infinite alternate -1s; }
@keyframes ec-wall-pulse { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ec-pole-creak { 0%,100% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(1deg) } }
@keyframes ec-shadow-creep { 0% { transform: scaleY(.8) translateY(10px) } 50% { transform: scaleY(1.1) translateY(-5px) } 100% { transform: scaleY(.9) translateY(5px) } }
@keyframes ec-creep { 0% { transform: translateX(0) scaleY(1) } 25% { transform: translateX(5px) scaleY(1.02) } 50% { transform: translateX(10px) scaleY(1) } 75% { transform: translateX(15px) scaleY(1.02) } 100% { transform: translateX(20px) scaleY(1) } }
@keyframes ec-glint { 0% { opacity:.2; transform: rotate(-20deg) scaleY(1) } 50% { opacity:1; transform: rotate(-15deg) scaleY(1.2) } 100% { opacity:.3; transform: rotate(-25deg) scaleY(.9) } }

.scn-edwards-camp-edward-defiant {
  background:
    linear-gradient(180deg, #050505 0%, #0a0505 30%, #1a0a05 100%),
    radial-gradient(ellipse at 50% 90%, #3a1a0a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-edwards-camp-edward-defiant .ee-bg-shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, transparent 0%, #000000 70%); opacity:.7; animation: ee-shadow-deepen 10s ease-in-out infinite alternate; }
.scn-edwards-camp-edward-defiant .ee-torch-glow { position:absolute; bottom:15%; left:15%; width:100px; height:100px; background: radial-gradient(circle, rgba(255,180,80,.3) 0%, transparent 70%); border-radius:50%; animation: ee-torch-sway 4s ease-in-out infinite alternate; }
.scn-edwards-camp-edward-defiant .ee-torch-flame { position:absolute; bottom:20%; left:15%; width:12px; height:24px; background: radial-gradient(circle, #ffd080 0%, #ff8040 40%, #8a2000 100%); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 30px 10px rgba(255,128,64,.6); animation: ee-flame-flicker 1.5s ease-in-out infinite alternate; }
.scn-edwards-camp-edward-defiant .ee-edward-figure { position:absolute; bottom:5%; left:40%; width:40px; height:90px; background: linear-gradient(180deg, #050508 0%, #000000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: -20px 0 30px rgba(255,128,64,.2); animation: ee-defiant-breath 6s ease-in-out infinite; }
.scn-edwards-camp-edward-defiant .ee-royal-cloak { position:absolute; bottom:5%; left:36%; width:50px; height:70px; background: linear-gradient(180deg, #5e1a1d 0%, #2a0505 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; transform-origin: top center; animation: ee-cloak-billow 7s ease-in-out infinite; }
.scn-edwards-camp-edward-defiant .ee-crown { position:absolute; bottom:82%; left:42%; width:20px; height:12px; background: linear-gradient(180deg, #c08040 0%, #8a5a20 100%); border-radius: 20% 20% 0 0 / 50% 50% 0 0; box-shadow: 0 0 8px rgba(192,128,64,.4); transform: rotate(-5deg); animation: ee-crown-shift 8s ease-in-out infinite; }
.scn-edwards-camp-edward-defiant .ee-sword { position:absolute; bottom:30%; left:55%; width:4px; height:50px; background: linear-gradient(180deg, #a0a0c0 0%, #606080 100%); border-radius:2px; transform: rotate(15deg); box-shadow: 0 0 15px 3px rgba(160,160,200,.3); animation: ee-sword-glint 4s ease-in-out infinite alternate; }
@keyframes ee-shadow-deepen { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes ee-torch-sway { 0% { transform: translateX(-10px) scale(1) } 50% { transform: translateX(5px) scale(1.05) } 100% { transform: translateX(-5px) scale(.95) } }
@keyframes ee-flame-flicker { 0% { transform: scaleY(1) scaleX(1) translateY(0) } 25% { transform: scaleY(1.1) scaleX(.9) translateY(-2px) } 50% { transform: scaleY(.95) scaleX(1.05) translateY(1px) } 75% { transform: scaleY(1.05) scaleX(.95) translateY(-1px) } 100% { transform: scaleY(1) scaleX(1) translateY(0) } }
@keyframes ee-defiant-breath { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.01) } }
@keyframes ee-cloak-billow { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.05) translateX(-3px) } 100% { transform: scaleX(.98) translateX(2px) } }
@keyframes ee-crown-shift { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-1px) } }
@keyframes ee-sword-glint { 0% { opacity:.4 } 50% { opacity:1; box-shadow: 0 0 25px 6px rgba(160,160,200,.6) } 100% { opacity:.5 } }

.scn-warwick-march-to-london {
  background:
    linear-gradient(180deg, #0a0a12 0%, #12121a 50%, #1a1210 100%),
    radial-gradient(ellipse at 50% 0%, #1a1a2a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-warwick-march-to-london .wm-night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a1a 0%, transparent 100%); animation: wm-sky-dim 15s ease-in-out infinite alternate; }
.scn-warwick-march-to-london .wm-road { position:absolute; bottom:0; left:-10%; right:-10%; height:45%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.8); transform: scaleX(1.5); animation: wm-road-scroll 20s linear infinite; }
.scn-warwick-march-to-london .wm-city-walls { position:absolute; bottom:45%; left:0; right:0; height:15%; background: linear-gradient(180deg, #15151a 0%, #0a0a0a 100%); border-radius: 10% 10% 0 0 / 50% 50% 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,.5); animation: wm-walls-shift 25s ease-in-out infinite alternate; }
.scn-warwick-march-to-london .wm-torch-glow-1 { position:absolute; bottom:20%; left:30%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,180,80,.3) 0%, transparent 70%); border-radius:50%; animation: wm-torch-sway-1 3s ease-in-out infinite alternate; }
.scn-warwick-march-to-london .wm-torch-glow-2 { position:absolute; bottom:20%; right:30%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,180,80,.3) 0%, transparent 70%); border-radius:50%; animation: wm-torch-sway-2 3.5s ease-in-out infinite alternate -1s; }
.scn-warwick-march-to-london .wm-soldier-1 { position:absolute; bottom:15%; left:20%; width:16px; height:40px; background: linear-gradient(180deg, #0a0a0a 0%, #000000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wm-march 1.2s ease-in-out infinite; }
.scn-warwick-march-to-london .wm-soldier-2 { position:absolute; bottom:15%; left:35%; width:16px; height:40px; background: linear-gradient(180deg, #0a0a0a 0%, #000000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wm-march 1.2s ease-in-out infinite -0.3s; }
.scn-warwick-march-to-london .wm-soldier-3 { position:absolute; bottom:15%; right:25%; width:16px; height:40px; background: linear-gradient(180deg, #0a0a0a 0%, #000000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wm-march 1.2s ease-in-out infinite -0.6s; }
.scn-warwick-march-to-london .wm-banner { position:absolute; bottom:30%; left:28%; width:20px; height:30px; background: linear-gradient(180deg, #702243 0%, #3a0a12 100%); transform-origin: bottom left; border-radius: 0 10% 10% 0 / 0 20% 20% 0; box-shadow: 0 0 10px rgba(112,34,67,.4); animation: wm-banner-wave 4s ease-in-out infinite; }
@keyframes wm-sky-dim { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes wm-road-scroll { 0% { transform: scaleX(1.5) translateY(0) } 100% { transform: scaleX(1.5) translateY(-20px) } }
@keyframes wm-walls-shift { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-3px) scaleX(1.02) } 100% { transform: translateY(2px) scaleX(.98) } }
@keyframes wm-torch-sway-1 { 0% { transform: translateX(-5px) scale(1) } 50% { transform: translateX(5px) scale(1.1) } 100% { transform: translateX(-3px) scale(.95) } }
@keyframes wm-torch-sway-2 { 0% { transform: translateX(5px) scale(1) } 50% { transform: translateX(-5px) scale(1.1) } 100% { transform: translateX(3px) scale(.95) } }
@keyframes wm-march { 0% { transform: translateY(0) rotate(-5deg) } 25% { transform: translateY(-3px) rotate(0deg) } 50% { transform: translateY(0) rotate(5deg) } 75% { transform: translateY(-3px) rotate(0deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes wm-banner-wave { 0% { transform: scaleX(1) rotate(-5deg) skewY(0deg) } 50% { transform: scaleX(1.1) rotate(3deg) skewY(5deg) } 100% { transform: scaleX(1) rotate(-5deg) skewY(0deg) } }

.scn-parliament-house-exchange {
  background: linear-gradient(180deg, #c8b89a 0%, #8a7a5a 100%), radial-gradient(ellipse at 50% 30%, #e8d8b8 0%, transparent 80%);
  position: relative; overflow: hidden;
}
.scn-parliament-house-exchange .arch-l { position: absolute; left: 0; top: 0; bottom: 0; width: 15%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 0 20% 0 0; box-shadow: 4px 0 20px rgba(0,0,0,.3); }
.scn-parliament-house-exchange .arch-r { position: absolute; right: 0; top: 0; bottom: 0; width: 15%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 20% 0 0 0; box-shadow: -4px 0 20px rgba(0,0,0,.3); }
.scn-parliament-house-exchange .window-bay { position: absolute; left: 25%; right: 25%; top: 5%; bottom: 40%; background: radial-gradient(ellipse at 50% 40%, #e8d8b8 0%, #c8b89a 50%, #8a7a5a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: inset 0 0 60px #8a7a5a; animation: p1-window 8s ease-in-out infinite alternate; }
.scn-parliament-house-exchange .window-light { position: absolute; left: 28%; right: 28%; top: 10%; bottom: 45%; background: radial-gradient(ellipse at 50% 50%, rgba(232,216,184,.6) 0%, transparent 70%); border-radius: 50%; filter: blur(15px); animation: p1-light 6s ease-in-out infinite alternate; }
.scn-parliament-house-exchange .figure-l { position: absolute; left: 20%; bottom: 28%; width: 12%; height: 40%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 40% 20% 20% / 60% 50% 30% 30%; transform-origin: bottom center; animation: p1-fig-l 5s ease-in-out infinite; }
.scn-parliament-house-exchange .figure-r { position: absolute; right: 20%; bottom: 28%; width: 12%; height: 42%; background: linear-gradient(180deg, #1a2a1a 0%, #0a0a0a 100%); border-radius: 40% 50% 20% 20% / 50% 60% 30% 30%; transform-origin: bottom center; animation: p1-fig-r 6s ease-in-out infinite; }
.scn-parliament-house-exchange .floor { position: absolute; left: 15%; right: 15%; bottom: 0; height: 30%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); transform: perspective(200px) rotateX(5deg); transform-origin: bottom center; border-radius: 10% 10% 0 0 / 20% 20% 0 0; }
.scn-parliament-house-exchange .motes { position: absolute; left: 30%; right: 30%; top: 15%; bottom: 50%; background: radial-gradient(circle at 20% 80%, rgba(232,216,184,.4) 0%, transparent 50%), radial-gradient(circle at 80% 40%, rgba(232,216,184,.3) 0%, transparent 50%); filter: blur(4px); animation: p1-motes 12s ease-in-out infinite alternate; }
@keyframes p1-window { 0% { opacity:.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:.85; transform: scaleY(.98); } }
@keyframes p1-light { 0% { opacity:.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.7; transform: scale(.95); } }
@keyframes p1-fig-l { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes p1-fig-r { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes p1-motes { 0% { transform: translateY(0) translateX(0); opacity:.3; } 50% { transform: translateY(-10px) translateX(5px); opacity:.6; } 100% { transform: translateY(5px) translateX(-5px); opacity:.4; } }

.scn-parliament-house-york-claim-heir {
  background: linear-gradient(180deg, #3a1a4a 0%, #1a0a2a 100%), radial-gradient(ellipse at 50% 70%, #5a2a6a 0%, transparent 80%);
  position: relative; overflow: hidden;
}
.scn-parliament-house-york-claim-heir .dais { position: absolute; left: 20%; right: 20%; bottom: 5%; height: 25%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0 / 30% 30% 0 0; transform: perspective(300px) rotateX(8deg); transform-origin: bottom center; animation: p2-dais 10s ease-in-out infinite alternate; }
.scn-parliament-house-york-claim-heir .throne { position: absolute; left: 40%; right: 40%; bottom: 20%; height: 30%; background: linear-gradient(180deg, #c8a060 0%, #8a6a30 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 0 40px rgba(200,160,96,.4); animation: p2-throne 8s ease-in-out infinite alternate; }
.scn-parliament-house-york-claim-heir .figure { position: absolute; left: 45%; right: 45%; bottom: 12%; height: 40%; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a0a 100%); border-radius: 50% 40% 20% 20% / 60% 50% 30% 30%; transform-origin: bottom center; animation: p2-fig 5s ease-in-out infinite; }
.scn-parliament-house-york-claim-heir .crown { position: absolute; left: 46%; right: 46%; top: 10%; height: 8%; background: radial-gradient(ellipse at 50% 100%, #e8d080 0%, #c8a040 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 30px #e8d080, 0 0 60px rgba(232,208,128,.3); animation: p2-crown 4s ease-in-out infinite alternate; }
.scn-parliament-house-york-claim-heir .coronet { position: absolute; left: 40%; right: 40%; top: 22%; height: 5%; background: radial-gradient(ellipse at 50% 100%, #d0c0a0 0%, #a09070 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 20px #d0c0a0; animation: p2-coronet 5s ease-in-out infinite alternate; }
.scn-parliament-house-york-claim-heir .banner-l { position: absolute; left: 10%; top: 5%; bottom: 40%; width: 6%; background: linear-gradient(180deg, #8a2a1a 0%, #4a1a0a 100%); border-radius: 0 0 20% 20%; transform-origin: top center; animation: p2-banner 7s ease-in-out infinite; }
.scn-parliament-house-york-claim-heir .banner-r { position: absolute; right: 10%; top: 5%; bottom: 40%; width: 6%; background: linear-gradient(180deg, #1a3a6a 0%, #0a1a3a 100%); border-radius: 0 0 20% 20%; transform-origin: top center; animation: p2-banner 9s ease-in-out infinite reverse; }
@keyframes p2-dais { 0% { transform: perspective(300px) rotateX(8deg) translateY(0); } 50% { transform: perspective(300px) rotateX(10deg) translateY(-2px); } 100% { transform: perspective(300px) rotateX(8deg) translateY(0); } }
@keyframes p2-throne { 0% { filter: brightness(1); } 50% { filter: brightness(1.1); } 100% { filter: brightness(.95); } }
@keyframes p2-fig { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes p2-crown { 0% { transform: translateY(0) rotate(-2deg); opacity:.8; } 50% { transform: translateY(-3px) rotate(0deg); opacity:1; } 100% { transform: translateY(0) rotate(2deg); opacity:.85; } }
@keyframes p2-coronet { 0% { transform: translateY(0) rotate(3deg); opacity:.7; } 50% { transform: translateY(-2px) rotate(0deg); opacity:.9; } 100% { transform: translateY(0) rotate(-3deg); opacity:.75; } }
@keyframes p2-banner { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-parliament-house-threats {
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%), radial-gradient(circle at 50% 30%, #c8a87a 0%, #1a1a1a 70%);
  position: relative; overflow: hidden;
}
.scn-parliament-house-threats .table { position: absolute; left: 20%; right: 20%; bottom: 20%; height: 15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 5%; box-shadow: 0 -10px 30px rgba(0,0,0,.5); }
.scn-parliament-house-threats .fig-l { position: absolute; left: 5%; bottom: 30%; width: 25%; height: 55%; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 60% 40% 30% 40% / 70% 50% 40% 50%; transform-origin: right bottom; animation: p3-fig-l 6s ease-in-out infinite; }
.scn-parliament-house-threats .fig-r { position: absolute; right: 5%; bottom: 30%; width: 25%; height: 55%; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 40% 60% 40% 30% / 50% 70% 50% 40%; transform-origin: left bottom; animation: p3-fig-r 7s ease-in-out infinite; }
.scn-parliament-house-threats .hand-l { position: absolute; left: 25%; bottom: 32%; width: 15%; height: 10%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 40% 10% 20% / 80% 60% 20% 40%; transform-origin: right center; animation: p3-hand-l 5s ease-in-out infinite; }
.scn-parliament-house-threats .hand-r { position: absolute; right: 25%; bottom: 32%; width: 15%; height: 10%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 50% 20% 10% / 60% 80% 40% 20%; transform-origin: left center; animation: p3-hand-r 5s ease-in-out infinite reverse; }
.scn-parliament-house-threats .candle { position: absolute; left: 48%; right: 48%; bottom: 34%; height: 8%; background: linear-gradient(180deg, #d0b080 0%, #8a6a3a 100%); border-radius: 2px; }
.scn-parliament-house-threats .flame { position: absolute; left: 48.5%; right: 48.5%; bottom: 41%; height: 4%; background: radial-gradient(circle, #ffd0a0 0%, #d08040 60%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: p3-flame 1s ease-in-out infinite alternate; }
.scn-parliament-house-threats .sparks { position: absolute; left: 45%; right: 45%; top: 40%; bottom: 45%; background: radial-gradient(circle at 50% 50%, rgba(232,208,160,.6) 0%, transparent 50%); filter: blur(6px); animation: p3-sparks 3s ease-in-out infinite alternate; }
@keyframes p3-fig-l { 0% { transform: translateX(0) rotate(0deg) scaleX(1); } 50% { transform: translateX(5%) rotate(-3deg) scaleX(1.05); } 100% { transform: translateX(0) rotate(0deg) scaleX(1); } }
@keyframes p3-fig-r { 0% { transform: translateX(0) rotate(0deg) scaleX(1); } 50% { transform: translateX(-5%) rotate(3deg) scaleX(1.05); } 100% { transform: translateX(0) rotate(0deg) scaleX(1); } }
@keyframes p3-hand-l { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(10px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes p3-hand-r { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-10px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes p3-flame { 0% { transform: scaleY(1) rotate(0deg); box-shadow: 0 0 10px #d08040; } 50% { transform: scaleY(1.3) rotate(4deg); box-shadow: 0 0 20px #ffd0a0; } 100% { transform: scaleY(.8) rotate(-3deg); box-shadow: 0 0 15px #d08040; } }
@keyframes p3-sparks { 0% { opacity:.2; transform: scale(1); } 50% { opacity:.6; transform: scale(1.2); } 100% { opacity:.3; transform: scale(.9); } }

.scn-parliament-house-title-dispute {
  background: linear-gradient(180deg, #c8b89a 0%, #8a7a5a 100%), radial-gradient(ellipse at 50% 40%, #e8d8b8 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-parliament-house-title-dispute .pillar-l { position: absolute; left: 0; top: 0; bottom: 0; width: 12%; background: linear-gradient(90deg, #5a4a3a 0%, #8a7a5a 50%, #5a4a3a 100%); border-radius: 0 10% 10% 0; box-shadow: 4px 0 20px rgba(0,0,0,.2); }
.scn-parliament-house-title-dispute .pillar-r { position: absolute; right: 0; top: 0; bottom: 0; width: 12%; background: linear-gradient(90deg, #5a4a3a 0%, #8a7a5a 50%, #5a4a3a 100%); border-radius: 10% 0 0 10%; box-shadow: -4px 0 20px rgba(0,0,0,.2); }
.scn-parliament-house-title-dispute .throne { position: absolute; left: 40%; right: 40%; top: 5%; bottom: 60%; background: linear-gradient(180deg, #c8a060 0%, #8a6a30 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 0 40px rgba(200,160,96,.3); }
.scn-parliament-house-title-dispute .king { position: absolute; left: 42%; right: 42%; top: 10%; bottom: 65%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 40% 20% 20% / 60% 50% 30% 30%; animation: p4-king 8s ease-in-out infinite alternate; }
.scn-parliament-house-title-dispute .scroll { position: absolute; left: 35%; right: 35%; top: 45%; bottom: 35%; background: linear-gradient(135deg, #e8d8b8 0%, #c8a87a 100%); border-radius: 4px; box-shadow: 0 0 30px rgba(200,168,122,.5); transform: rotate(-2deg); animation: p4-scroll 6s ease-in-out infinite alternate; }
.scn-parliament-house-title-dispute .crown { position: absolute; left: 44%; right: 44%; top: 30%; bottom: 60%; background: radial-gradient(ellipse at 50% 100%, #e8d080 0%, #c8a040 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 30px rgba(232,208,128,.5); animation: p4-crown 4s ease-in-out infinite alternate; }
.scn-parliament-house-title-dispute .hand-a { position: absolute; left: 20%; top: 50%; bottom: 35%; width: 18%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 60% 20% 10% 30% / 80% 40% 20% 60%; transform-origin: right center; animation: p4-hand-a 5s ease-in-out infinite; }
.scn-parliament-house-title-dispute .hand-b { position: absolute; right: 20%; top: 50%; bottom: 35%; width: 18%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 20% 60% 30% 10% / 40% 80% 60% 20%; transform-origin: left center; animation: p4-hand-b 5s ease-in-out infinite reverse; }
.scn-parliament-house-title-dispute .seal { position: absolute; left: 48%; right: 48%; top: 48%; bottom: 48%; background: radial-gradient(circle, #c8553d 0%, #8a2a1a 100%); border-radius: 50%; box-shadow: 0 0 15px #c8553d; animation: p4-seal 3s ease-in-out infinite alternate; }
@keyframes p4-king { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes p4-scroll { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(0deg) scale(1.02); } 100% { transform: rotate(2deg) scale(1); } }
@keyframes p4-crown { 0% { transform: translateY(0) rotate(-3deg); opacity:.8; } 50% { transform: translateY(-5px) rotate(0deg); opacity:1; } 100% { transform: translateY(0) rotate(3deg); opacity:.85; } }
@keyframes p4-hand-a { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(10%) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes p4-hand-b { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-10%) rotate(-5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes p4-seal { 0% { filter: brightness(1); box-shadow: 0 0 10px #c8553d; } 50% { filter: brightness(1.2); box-shadow: 0 0 25px #c8553d; } 100% { filter: brightness(.9); box-shadow: 0 0 15px #c8553d; } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.dark { position: absolute; pointer-events: none; }
.drape { position: absolute; pointer-events: none; }
.guard { position: absolute; pointer-events: none; }
.raised { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }
.seated { position: absolute; pointer-events: none; }
.sheep { position: absolute; pointer-events: none; }
.wave { position: absolute; pointer-events: none; }
.banner-mcs { position: absolute; pointer-events: none; }
.bo { position: absolute; pointer-events: none; }
.cloud-mct { position: absolute; pointer-events: none; }
.daughter-mcj { position: absolute; pointer-events: none; }
.entering { position: absolute; pointer-events: none; }
.figures { position: absolute; pointer-events: none; }
.main { position: absolute; pointer-events: none; }
.mid { position: absolute; pointer-events: none; }
.open { position: absolute; pointer-events: none; }
.spear-mcr { position: absolute; pointer-events: none; }
.sun-mct { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-henry-disguised-captured {
  background: linear-gradient(180deg, #4a4a5e 0%, #3a3a4e 40%, #2a2a3e 100%), radial-gradient(ellipse at 50% 100%, #3a3a4e 0%, transparent 70%);
}
.scn-henry-disguised-captured .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a5a6e 0%, transparent 100%);
  animation: hdc-sky 14s ease-in-out infinite alternate;
}
.scn-henry-disguised-captured .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a1a 100%);
  border-radius: 30% 20% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-henry-disguised-captured .figure-king {
  position: absolute; bottom: 30%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hdc-king 6s ease-in-out infinite;
}
.scn-henry-disguised-captured .figure-keeper1 {
  position: absolute; bottom: 32%; left: 55%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hdc-keeper1 8s ease-in-out infinite;
}
.scn-henry-disguised-captured .figure-keeper2 {
  position: absolute; bottom: 32%; left: 65%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hdc-keeper2 8s ease-in-out infinite reverse;
  animation-delay: 0.5s;
}
.scn-henry-disguised-captured .crossbow1 {
  position: absolute; bottom: 38%; left: 58%; width: 40px; height: 8px;
  background: linear-gradient(90deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  transform: rotate(-10deg);
  animation: hdc-bow 4s ease-in-out infinite;
}
.scn-henry-disguised-captured .crossbow2 {
  position: absolute; bottom: 38%; left: 70%; width: 40px; height: 8px;
  background: linear-gradient(90deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  transform: rotate(10deg);
  animation: hdc-bow 4s ease-in-out infinite reverse;
  animation-delay: 0.3s;
}
.scn-henry-disguised-captured .mist {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(150,150,180,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: hdc-mist 20s ease-in-out infinite alternate;
}
@keyframes hdc-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes hdc-king { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(-2deg) } 50% { transform: translateX(8px) rotate(0) } 75% { transform: translateX(4px) rotate(2deg) } }
@keyframes hdc-keeper1 { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes hdc-keeper2 { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes hdc-bow { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(-8deg) scaleX(1.05) } 100% { transform: rotate(-10deg) scaleX(1) } }
@keyframes hdc-mist { 0% { opacity:.3; transform: translateY(0) } 100% { opacity:.6; transform: translateY(-5px) } }

.scn-item-prayerbook {
  background: linear-gradient(180deg, #4a3a3e 0%, #3a2a2e 50%, #2a1a1e 100%), radial-gradient(ellipse at 50% 60%, #5a4a4e 0%, transparent 60%);
}
.scn-item-prayerbook .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%);
  animation: ipb-dark 10s ease-in-out infinite alternate;
}
.scn-item-prayerbook .bg-mid {
  position: absolute; inset: 20% 10% 30% 10%;
  background: linear-gradient(180deg, #3a2a2e 0%, #2a1a1e 100%);
  border-radius: 20px;
  box-shadow: inset 0 0 40px rgba(0,0,0,.5);
}
.scn-item-prayerbook .hands {
  position: absolute; bottom: 35%; left: 50%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: ipb-hands 4s ease-in-out infinite;
}
.scn-item-prayerbook .prayerbook {
  position: absolute; bottom: 40%; left: 50%; width: 30px; height: 40px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  transform: translateX(-50%) rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: ipb-book 6s ease-in-out infinite;
}
.scn-item-prayerbook .light-beam {
  position: absolute; top: 10%; left: 45%; width: 10%; height: 80%;
  background: linear-gradient(180deg, rgba(200,200,180,0.2) 0%, transparent 100%);
  transform: rotate(15deg);
  filter: blur(4px);
  animation: ipb-beam 8s ease-in-out infinite alternate;
}
.scn-item-prayerbook .dust {
  position: absolute; top: 30%; left: 20%; width: 60%; height: 50%;
  background: radial-gradient(circle at 30% 40%, rgba(255,255,240,0.15) 0%, transparent 70%), radial-gradient(circle at 70% 60%, rgba(255,255,240,0.1) 0%, transparent 60%);
  filter: blur(6px);
  animation: ipb-dust 15s linear infinite;
}
@keyframes ipb-dark { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes ipb-hands { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(3deg) translateY(-2px) } }
@keyframes ipb-book { 0% { transform: translateX(-50%) rotate(-5deg) scale(1) } 50% { transform: translateX(-50%) rotate(-3deg) scale(1.02) } 100% { transform: translateX(-50%) rotate(-5deg) scale(1) } }
@keyframes ipb-beam { 0% { opacity:.3; transform: rotate(13deg) scaleY(1) } 100% { opacity:.7; transform: rotate(17deg) scaleY(1.05) } }
@keyframes ipb-dust { 0% { transform: translateY(0) } 50% { transform: translateY(-10px) } 100% { transform: translateY(0) } }

.scn-henry-philosphizes {
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 50%, #050510 100%), radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, transparent 80%);
}
.scn-henry-philosphizes .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  animation: hph-dark 12s ease-in-out infinite alternate;
}
.scn-henry-philosphizes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.7);
}
.scn-henry-philosphizes .figure-henry-silhouette {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #0a0a0a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hph-henry 5s ease-in-out infinite;
}
.scn-henry-philosphizes .feather {
  position: absolute; bottom: 45%; left: 38%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #8a8a8a 0%, #5a5a5a 100%);
  border-radius: 50% 50% 0 50%;
  transform: rotate(30deg);
  filter: blur(1px);
  animation: hph-feather 3s ease-in-out infinite alternate;
}
.scn-henry-philosphizes .keepers-approaching {
  position: absolute; bottom: 28%; left: 60%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hph-keepers 9s ease-in-out infinite;
}
.scn-henry-philosphizes .shadow-pool {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.5) 0%, transparent 70%);
  filter: blur(10px);
  animation: hph-shadow 7s ease-in-out infinite alternate;
}
@keyframes hph-dark { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes hph-henry { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(-1deg) } 50% { transform: translateX(0) rotate(0) translateY(-2px) } 75% { transform: translateX(-3px) rotate(1deg) } }
@keyframes hph-feather { 0% { transform: translateX(0) rotate(30deg) scale(1) } 50% { transform: translateX(8px) rotate(20deg) scale(1.1) } 100% { transform: translateX(16px) rotate(10deg) scale(0.9) } }
@keyframes hph-keepers { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-4px) scaleX(1.02) } 100% { transform: translateX(-8px) scaleX(1) } }
@keyframes hph-shadow { 0% { opacity:.5; transform: scaleY(1) } 100% { opacity:.8; transform: scaleY(1.2) } }

.scn-edward-asks-children {
  background: linear-gradient(180deg, #c8b898 0%, #b8a888 40%, #a89878 100%), radial-gradient(ellipse at 50% 80%, #d8c8a8 0%, transparent 70%);
}
.scn-edward-asks-children .wall-back {
  position: absolute; inset: 20% 10% 30% 10%;
  background: linear-gradient(180deg, #a89878 0%, #887868 100%);
  border-radius: 10px;
  box-shadow: inset 0 0 40px rgba(0,0,0,.3);
}
.scn-edward-asks-children .window {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, #d8d8c8 0%, #b0b0a0 100%);
  border-radius: 20px 20px 10px 10px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.2);
  animation: eac-window 8s ease-in-out infinite alternate;
}
.scn-edward-asks-children .sunbeam {
  position: absolute; top: 0; left: 35%; width: 30%; height: 90%;
  background: linear-gradient(180deg, rgba(255,255,200,0.15) 0%, transparent 100%);
  transform: rotate(-5deg);
  filter: blur(8px);
  animation: eac-beam 10s ease-in-out infinite alternate;
}
.scn-edward-asks-children .throne {
  position: absolute; bottom: 25%; left: 20%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,.4);
  animation: eac-throne 6s ease-in-out infinite;
}
.scn-edward-asks-children .figure-edward {
  position: absolute; bottom: 30%; left: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eac-edward 5s ease-in-out infinite;
}
.scn-edward-asks-children .figure-lady-grey {
  position: absolute; bottom: 28%; left: 55%; width: 26px; height: 66px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eac-lady 7s ease-in-out infinite reverse;
}
.scn-edward-asks-children .children-shadow {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: eac-children 4s ease-in-out infinite alternate;
}
@keyframes eac-window { 0% { opacity:.8; transform: scaleX(1) } 100% { opacity:1; transform: scaleX(1.05) } }
@keyframes eac-beam { 0% { opacity:.4; transform: rotate(-5deg) scaleY(1) } 100% { opacity:.7; transform: rotate(-2deg) scaleY(1.1) } }
@keyframes eac-throne { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes eac-edward { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(-2deg) } 50% { transform: translateX(4px) rotate(0) } 75% { transform: translateX(2px) rotate(2deg) } }
@keyframes eac-lady { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes eac-children { 0% { opacity:.3; transform: scale(1) } 100% { opacity:.6; transform: scale(1.1) } }

/* henry-muses-molehill */
.scn-henry-muses-molehill {
  background: linear-gradient(180deg, #2c3e4f 0%, #3d4f5e 40%, #4a5b68 100%), radial-gradient(ellipse at 50% 0%, #4a5b68 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-henry-muses-molehill .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #4a5b68 0%, #3a4a58 100%); animation: hm-sky 15s ease-in-out infinite alternate; }
.scn-henry-muses-molehill .distant-hills { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #3f4e50 0%, #2a3536 100%); border-radius: 30% 50% 0 0; animation: hm-hills 20s ease-in-out infinite; }
.scn-henry-muses-molehill .molehill { position:absolute; bottom:22%; left:40%; width:120px; height:50px; background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); box-shadow: inset 0 -8px 15px rgba(0,0,0,.4); }
.scn-henry-muses-molehill .figure-king { position:absolute; bottom:28%; left:40%; width:24px; height:40px; transform: translateX(-50%); background: linear-gradient(180deg, #1e1e24 0%, #0c0c12 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: hm-figure 8s ease-in-out infinite; }
.scn-henry-muses-molehill .crown { position:absolute; bottom:57%; left:40%; width:16px; height:8px; transform: translateX(-50%) rotate(-2deg); background: linear-gradient(180deg, #b89a4a 0%, #7a6230 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: hm-crown 8s ease-in-out infinite; }
.scn-henry-muses-molehill .ground { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 20% 20% 0 0; }
.scn-henry-muses-molehill .overcast { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 20%, rgba(80,90,100,.3) 0%, transparent 70%); animation: hm-overcast 12s ease-in-out infinite alternate; }
@keyframes hm-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes hm-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hm-figure { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-1px) rotate(1deg) } }
@keyframes hm-crown { 0%,100% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) translateY(-1px) rotate(2deg) } }
@keyframes hm-overcast { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.3 } }

/* weeping-roses */
.scn-weeping-roses {
  background: linear-gradient(180deg, #1c2026 0%, #2c3038 50%, #3c4048 100%), radial-gradient(ellipse at 50% 80%, #3c4048 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-weeping-roses .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, rgba(20,20,26,.5) 0%, transparent 100%); }
.scn-weeping-roses .figure-weeper { position:absolute; bottom:20%; left:50%; width:30px; height:50px; transform: translateX(-50%); background: linear-gradient(180deg, #2a2a32 0%, #14141a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: wr-weeper 6s ease-in-out infinite; }
.scn-weeping-roses .rose-petal-a { position:absolute; bottom:15%; left:45%; width:14px; height:10px; background: radial-gradient(ellipse, #b87878 0%, #8a5050 70%); border-radius: 50% 50% 20% 20%; opacity:.8; animation: wr-petal-a 10s linear infinite; }
.scn-weeping-roses .rose-petal-b { position:absolute; bottom:50%; left:30%; width:12px; height:8px; background: radial-gradient(ellipse, #d0c0a0 0%, #a09070 70%); border-radius: 50% 50% 20% 20%; opacity:.6; animation: wr-petal-b 14s linear infinite reverse; }
.scn-weeping-roses .rose-petal-c { position:absolute; bottom:35%; left:65%; width:10px; height:7px; background: radial-gradient(ellipse, #c07070 0%, #904040 70%); border-radius: 50%; opacity:.7; animation: wr-petal-c 18s linear infinite; }
.scn-weeping-roses .dead-boy-form { position:absolute; bottom:22%; left:55%; width:20px; height:32px; background: linear-gradient(180deg, #1e1a1a 0%, #0c0808 100%); border-radius: 30% 30% 40% 40%; transform: rotate(-10deg); animation: wr-dead 20s ease-in-out infinite; }
.scn-weeping-roses .tear-drop { position:absolute; bottom:42%; left:48%; width:4px; height:6px; background: radial-gradient(circle, #a0b0c0 0%, #606870 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; animation: wr-tear 4s ease-in-out infinite; }
@keyframes wr-weeper { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 30% { transform: translateX(-50%) translateY(-2px) rotate(2deg) } 60% { transform: translateX(-50%) translateY(0) rotate(-1deg) } }
@keyframes wr-petal-a { 0% { transform: translate(0, 0) rotate(0deg) } 25% { transform: translate(-10px, -20px) rotate(45deg) } 50% { transform: translate(-20px, -40px) rotate(90deg) } 75% { transform: translate(-10px, -60px) rotate(135deg) } 100% { transform: translate(0, -80px) rotate(180deg) } }
@keyframes wr-petal-b { 0% { transform: translate(0, 0) } 50% { transform: translate(-15px, -50px) rotate(60deg) } 100% { transform: translate(-30px, -100px) rotate(120deg) } }
@keyframes wr-petal-c { 0% { transform: translate(0, 0) } 50% { transform: translate(20px, -40px) rotate(-30deg) } 100% { transform: translate(40px, -80px) rotate(-60deg) } }
@keyframes wr-dead { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(-8deg) translateY(-1px) } }
@keyframes wr-tear { 0% { transform: translateY(0); opacity:1 } 50% { transform: translateY(12px); opacity:.6 } 100% { transform: translateY(24px); opacity:0 } }

/* item-screech-owl */
.scn-item-screech-owl {
  background: linear-gradient(180deg, #1a1a24 0%, #2a2a36 30%, #3a3a46 100%), radial-gradient(ellipse at 50% 0%, #3a3a46 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-item-screech-owl .field-ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a2a1e 0%, #1a1a0e 100%); border-radius: 30% 70% 0 0; }
.scn-item-screech-owl .dying-figure { position:absolute; bottom:20%; left:40%; width:28px; height:40px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a22 0%, #0c0c14 100%); border-radius: 30% 30% 40% 40%; transform-origin: bottom center; animation: soc-figure 10s ease-in-out infinite; }
.scn-item-screech-owl .candle { position:absolute; bottom:30%; left:55%; width:6px; height:24px; background: linear-gradient(180deg, #d0b080 0%, #604028 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 6px 2px rgba(200,160,80,.3); animation: soc-candle 6s ease-in-out infinite; }
.scn-item-screech-owl .flame-glow { position:absolute; bottom:53%; left:55%; width:14px; height:14px; transform: translate(-50%, -50%); background: radial-gradient(circle, #ffc080 0%, #e08040 40%, transparent 70%); border-radius: 50%; animation: soc-flame 2s ease-in-out infinite alternate; }
.scn-item-screech-owl .sword { position:absolute; bottom:22%; left:52%; width:4px; height:30px; background: linear-gradient(180deg, #808890 0%, #505860 100%); transform: rotate(-30deg); transform-origin: bottom; border-radius: 10% 10% 20% 20%; animation: soc-sword 15s ease-in-out infinite; }
.scn-item-screech-owl .owl-silhouette { position:absolute; top:15%; left:20%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 30%, #1c1c24 0%, #08080e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; filter: blur(1px); animation: soc-owl 25s ease-in-out infinite alternate; }
.scn-item-screech-owl .mist { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 60%, rgba(60,60,70,.2) 0%, transparent 70%); animation: soc-mist 30s linear infinite; }
@keyframes soc-figure { 0%,100% { transform: translateX(-50%) rotate(0deg) scaleY(1) } 50% { transform: translateX(-50%) rotate(3deg) scaleY(.95) } }
@keyframes soc-candle { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.05) } }
@keyframes soc-flame { 0% { transform: translate(-50%, -50%) scale(1); opacity:.8 } 50% { transform: translate(-50%, -55%) scale(1.2); opacity:1 } 100% { transform: translate(-50%, -50%) scale(.9); opacity:.7 } }
@keyframes soc-sword { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-25deg) } 100% { transform: rotate(-30deg) } }
@keyframes soc-owl { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(5px) rotate(5deg) } 100% { transform: translateX(-5px) rotate(-5deg) } }
@keyframes soc-mist { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.5; transform: scale(1.05) } 100% { opacity:.3; transform: scale(1) } }

/* after-clifford-death */
.scn-after-clifford-death {
  background: linear-gradient(180deg, #1a1e2a 0%, #2a2e3a 40%, #3a3e4a 100%), radial-gradient(ellipse at 50% 0%, #3a3e4a 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-after-clifford-death .bg-battlefield { position:absolute; inset:0; background: linear-gradient(180deg, rgba(30,30,40,.4) 0%, transparent 100%); }
.scn-after-clifford-death .corpse { position:absolute; bottom:18%; left:50%; width:30px; height:40px; transform: translateX(-50%) rotate(10deg); background: linear-gradient(180deg, #1a1a1a 0%, #0c0c0c 100%); border-radius: 30% 30% 40% 40%; animation: acd-corpse 20s ease-in-out infinite; }
.scn-after-clifford-death .taunter-a { position:absolute; bottom:25%; left:35%; width:24px; height:44px; transform: translateX(-50%); background: linear-gradient(180deg, #2a2a36 0%, #14141e 100%); border-radius: 40% 40% 30% 30%; animation: acd-taunt-a 8s ease-in-out infinite; }
.scn-after-clifford-death .taunter-b { position:absolute; bottom:28%; left:60%; width:20px; height:40px; transform: translateX(-50%); background: linear-gradient(180deg, #2e2e3c 0%, #18182a 100%); border-radius: 40% 40% 30% 30%; animation: acd-taunt-b 9s ease-in-out infinite 1s; }
.scn-after-clifford-death .taunter-c { position:absolute; bottom:22%; left:75%; width:22px; height:42px; transform: translateX(-50%); background: linear-gradient(180deg, #262638 0%, #12121c 100%); border-radius: 40% 40% 30% 30%; animation: acd-taunt-c 7s ease-in-out infinite 2s; }
.scn-after-clifford-death .distant-flag { position:absolute; bottom:45%; right:10%; width:6px; height:30px; background: linear-gradient(180deg, #605840 0%, #3a3420 100%); border-radius: 20% 20% 10% 10%; animation: acd-flag 15s linear infinite; }
.scn-after-clifford-death .shadow-mist { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 60%, rgba(20,20,30,.2) 0%, transparent 70%); animation: acd-mist 25s linear infinite alternate; }
@keyframes acd-corpse { 0%,100% { transform: translateX(-50%) rotate(10deg) scale(1) } 50% { transform: translateX(-50%) rotate(8deg) scale(.98) } }
@keyframes acd-taunt-a { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 40% { transform: translateX(-50%) translateY(-2px) rotate(3deg) } 80% { transform: translateX(-50%) translateY(0) rotate(-2deg) } }
@keyframes acd-taunt-b { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 35% { transform: translateX(-50%) translateY(-1px) rotate(-2deg) } 70% { transform: translateX(-50%) translateY(0) rotate(2deg) } }
@keyframes acd-taunt-c { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 45% { transform: translateX(-50%) translateY(-3px) rotate(4deg) } 90% { transform: translateX(-50%) translateY(0) rotate(-1deg) } }
@keyframes acd-flag { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes acd-mist { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.5; transform: scale(1.03) } 100% { opacity:.3; transform: scale(1) } }

.scn-margaret-shows-head { background: linear-gradient(180deg, #f9e3a0 0%, #d4a85c 10%, #9b6b3c 25%, #5c3a1e 60%, #2a1a0e 100%), radial-gradient(ellipse at 50% 20%, #fff4d0 0%, transparent 60%); }
.scn-margaret-shows-head .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b8d4f0 0%, #f9e3a0 100%); animation: msh-sky 20s ease-in-out infinite alternate; }
.scn-margaret-shows-head .sun { position:absolute; top:5%; left:60%; width:70px; height:70px; background: radial-gradient(circle, #fff8d0 0%, #f0c060 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(240,192,96,0.6); animation: msh-sun 8s ease-in-out infinite alternate; }
.scn-margaret-shows-head .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6b4a2a 0%, #3a2a1a 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; }
.scn-margaret-shows-head .pole { position:absolute; bottom:30%; left:30%; width:8px; height:50%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); transform-origin: bottom center; animation: msh-pole 4s ease-in-out infinite alternate; }
.scn-margaret-shows-head .head { position:absolute; bottom:78%; left:30.5%; width:28px; height:32px; background: radial-gradient(circle at 40% 30%, #c8a07a 0%, #7a5030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); box-shadow: 2px 2px 6px rgba(0,0,0,0.5); animation: msh-head 6s ease-in-out infinite alternate; }
.scn-margaret-shows-head .figure { position:absolute; bottom:30%; height:90px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; }
.scn-margaret-shows-head .margaret { left:25%; width:40px; animation: msh-figure1 6s ease-in-out infinite; }
.scn-margaret-shows-head .henry { left:20%; width:45px; animation: msh-figure2 7s ease-in-out infinite reverse; }
.scn-margaret-shows-head .clifford { left:35%; width:38px; animation: msh-figure3 5s ease-in-out infinite; }
@keyframes msh-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes msh-sun { 0% { transform: scale(1); opacity:0.9 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(0.98); opacity:0.85 } }
@keyframes msh-pole { 0% { transform: rotate(-2deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.02) } 100% { transform: rotate(0deg) scaleY(0.98) } }
@keyframes msh-head { 0% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(3deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes msh-figure1 { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes msh-figure2 { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes msh-figure3 { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(2px) translateY(-2px) } 100% { transform: translateX(0) translateY(0) } }

.scn-messenger-warwick-news { background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 20%, #3a4a5a 40%, #2a3a4a 80%, #1a2a3a 100%), radial-gradient(ellipse at 50% 80%, #3a4a5a 0%, transparent 70%); }
.scn-messenger-warwick-news .sky { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #8a9aa8 0%, #6a7a8a 100%); animation: mwn-sky 25s ease-in-out infinite alternate; }
.scn-messenger-warwick-news .mist { position:absolute; inset:0 0 20% 0; background: radial-gradient(ellipse at 50% 100%, rgba(200,210,220,0.15) 0%, transparent 60%); animation: mwn-mist 30s linear infinite; }
.scn-messenger-warwick-news .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 40% 60% 0 0 / 70% 50% 0 0; }
.scn-messenger-warwick-news .messenger { position:absolute; bottom:20%; left:25%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: mwn-messenger 4s ease-in-out infinite; }
.scn-messenger-warwick-news .horse { position:absolute; bottom:20%; left:20%; width:60px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; clip-path: polygon(0 20%, 100% 20%, 90% 100%, 10% 100%); animation: mwn-horse 6s ease-in-out infinite alternate; }
.scn-messenger-warwick-news .king { position:absolute; bottom:20%; left:40%; width:35px; height:80px; background: linear-gradient(180deg, #4a3a3a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: mwn-king 8s ease-in-out infinite reverse; }
.scn-messenger-warwick-news .northumberland { position:absolute; bottom:20%; left:50%; width:40px; height:75px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: mwn-north 5s ease-in-out infinite; }
.scn-messenger-warwick-news .banner { position:absolute; bottom:50%; left:15%; width:4px; height:40px; background: #4a3a2a; transform-origin: bottom center; animation: mwn-banner 3s ease-in-out infinite alternate; }
.scn-messenger-warwick-news .banner::before { content:''; position:absolute; top:-10px; left:-10px; width:24px; height:16px; background: linear-gradient(180deg, #8a3a2a, #5a1a1a); border-radius: 0 60% 20% 20%; transform: rotate(-10deg); animation: mwn-flag 4s ease-in-out infinite alternate; }
@keyframes mwn-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes mwn-mist { 0% { opacity:0; transform: translateY(0) } 25% { opacity:0.3 } 50% { opacity:0.5; transform: translateY(-5px) } 75% { opacity:0.2 } 100% { opacity:0; transform: translateY(0) } }
@keyframes mwn-messenger { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes mwn-horse { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mwn-king { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes mwn-north { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-3px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes mwn-banner { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.1) } 100% { transform: rotate(-3deg) scaleY(0.95) } }
@keyframes mwn-flag { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(-20deg) scaleX(1.1) } 100% { transform: rotate(-15deg) scaleX(0.9) } }

.scn-before-york-resolve { background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 15%, #2a3a4a 40%, #3a2a2a 70%, #1a1a1a 100%), radial-gradient(ellipse at 50% 100%, #1a2a3a 0%, transparent 60%); }
.scn-before-york-resolve .sky { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #8a9aaa 0%, #6a7a8a 100%); animation: byr-sky 30s ease-in-out infinite alternate; }
.scn-before-york-resolve .hills { position:absolute; bottom:20%; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 50% 50% 0 0 / 80% 70% 0 0; animation: byr-hills 18s ease-in-out infinite alternate; }
.scn-before-york-resolve .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); }
.scn-before-york-resolve .figure-margaret { position:absolute; bottom:18%; left:30%; width:40px; height:85px; background: linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: byr-margaret 6s ease-in-out infinite; }
.scn-before-york-resolve .figure-clifford { position:absolute; bottom:18%; left:38%; width:35px; height:80px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: byr-clifford 7s ease-in-out infinite reverse; }
.scn-before-york-resolve .figure-northumberland { position:absolute; bottom:18%; left:45%; width:38px; height:82px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: byr-north 5s ease-in-out infinite; }
.scn-before-york-resolve .figure-henry { position:absolute; bottom:18%; left:52%; width:42px; height:75px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: byr-henry 8s ease-in-out infinite alternate; }
.scn-before-york-resolve .shield { position:absolute; bottom:30%; left:35%; width:40px; height:50px; background: linear-gradient(135deg, #8a3a2a 0%, #5a1a1a 50%, #3a0a0a 100%); border-radius: 10% 10% 20% 20%; transform: rotate(20deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.5); animation: byr-shield 4s ease-in-out infinite alternate; }
@keyframes byr-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes byr-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes byr-margaret { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes byr-clifford { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes byr-north { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(3px) translateY(-2px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes byr-henry { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes byr-shield { 0% { transform: rotate(20deg) scale(1) } 50% { transform: rotate(25deg) scale(1.05) } 100% { transform: rotate(18deg) scale(0.95) } }

.scn-warwick-vows-revenge { background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 20%, #1a2a3a 60%, #0a1a1a 100%), radial-gradient(ellipse at 50% 80%, #2a3a4a 0%, transparent 70%); }
.scn-warwick-vows-revenge .sky { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); animation: wvr-sky 35s ease-in-out infinite alternate; }
.scn-warwick-vows-revenge .battlefield { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; }
.scn-warwick-vows-revenge .tent { position:absolute; bottom:12%; left:30%; width:100px; height:80px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; clip-path: polygon(0 30%, 100% 30%, 85% 100%, 15% 100%); animation: wvr-tent 10s ease-in-out infinite alternate; }
.scn-warwick-vows-revenge .figure-warwick { position:absolute; bottom:15%; left:32%; width:45px; height:70px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wvr-warwick 6s ease-in-out infinite; }
.scn-warwick-vows-revenge .figure-edward { position:absolute; bottom:12%; left:45%; width:40px; height:80px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: wvr-edward 7s ease-in-out infinite reverse; }
.scn-warwick-vows-revenge .figure-george { position:absolute; bottom:12%; left:52%; width:38px; height:75px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: wvr-george 5s ease-in-out infinite; }
.scn-warwick-vows-revenge .debris { position:absolute; bottom:0; left:30%; width:80px; height:20px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 20% 20% 50% 50%; filter: blur(2px); animation: wvr-debris 12s ease-in-out infinite alternate; }
@keyframes wvr-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes wvr-tent { 0% { transform: scaleY(1) rotate(-1deg) } 50% { transform: scaleY(1.03) rotate(1deg) } 100% { transform: scaleY(0.97) rotate(0deg) } }
@keyframes wvr-warwick { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes wvr-edward { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes wvr-george { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(3px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes wvr-debris { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(5px) scale(1.05) } 100% { transform: translateX(0) scale(0.95) } }

/* prince-edward-marries-warwick-daughter */
.scn-prince-edward-marries-warwick-daughter {
  background: linear-gradient(180deg, #d4c099 0%, #b89a6f 40%, #7a5c3a 100%), radial-gradient(ellipse at 60% 30%, #f2e6c4 0%, transparent 60%);
}
.scn-prince-edward-marries-warwick-daughter .hall-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #a58a6a 0%, #7a5c3a 100%); z-index: 0;
}
.scn-prince-edward-marries-warwick-daughter .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #604e3a 0%, #3a2e1e 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); z-index: 2;
}
.scn-prince-edward-marries-warwick-daughter .throne {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 100px; transform: translateX(-50%); background: linear-gradient(180deg, #b89a6f 0%, #8a6a3a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 10px 20px rgba(0,0,0,.5); z-index: 3;
}
.scn-prince-edward-marries-warwick-daughter .figure-king {
  position: absolute; bottom: 36%; left: 50%; width: 30px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; z-index: 4; animation: pmwd-fig-king 4s ease-in-out infinite;
}
@keyframes pmwd-fig-king {
  0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
}
.scn-prince-edward-marries-warwick-daughter .figure-messenger {
  position: absolute; bottom: 30%; left: 30%; width: 24px; height: 40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; z-index: 4; animation: pmwd-messenger 6s ease-in-out infinite;
}
@keyframes pmwd-messenger {
  0%,100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
}
.scn-prince-edward-marries-warwick-daughter .figure-bona {
  position: absolute; bottom: 30%; right: 28%; width: 22px; height: 44px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; z-index: 4; animation: pmwd-bona 5s ease-in-out infinite;
}
@keyframes pmwd-bona {
  0%,100% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
}
.scn-prince-edward-marries-warwick-daughter .window-light {
  position: absolute; top: 10%; left: 15%; width: 60px; height: 80px; background: radial-gradient(circle, #fff3d4 0%, #f2dca0 40%, transparent 70%); border-radius: 10px; box-shadow: 0 0 40px 10px rgba(242,220,160,.5); z-index: 5; animation: pmwd-glow 3s ease-in-out infinite alternate;
}
@keyframes pmwd-glow {
  0% { opacity: .7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: .8; transform: scale(1); }
}
.scn-prince-edward-marries-warwick-daughter .wreath {
  position: absolute; bottom: 38%; left: 60%; width: 20px; height: 20px; background: linear-gradient(45deg, #5a7a4a 0%, #3a5a2a 100%); border-radius: 50%; box-shadow: 0 0 10px 2px rgba(90,122,74,.5); z-index: 5; animation: pmwd-wreath 4s ease-in-out infinite;
}
@keyframes pmwd-wreath {
  0%,100% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(15deg) scale(1.1); }
}

/* edward-defends-choice */
.scn-edward-defends-choice {
  background: linear-gradient(180deg, #d4c099 0%, #b89a6f 40%, #7a5c3a 100%), radial-gradient(ellipse at 40% 20%, #f2e6c4 0%, transparent 50%);
}
.scn-edward-defends-choice .hall-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #a58a6a 0%, #7a5c3a 100%); z-index: 0;
}
.scn-edward-defends-choice .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #604e3a 0%, #3a2e1e 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); z-index: 2;
}
.scn-edward-defends-choice .window-light {
  position: absolute; top: 8%; left: 12%; width: 70px; height: 90px; background: radial-gradient(circle, #fff3d4 0%, #f2dca0 40%, transparent 70%); border-radius: 10px; box-shadow: 0 0 50px 15px rgba(242,220,160,.4); z-index: 5; animation: edc-glow 3s ease-in-out infinite alternate;
}
@keyframes edc-glow {
  0% { opacity: .8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.03); }
  100% { opacity: .9; transform: scale(1); }
}
.scn-edward-defends-choice .figure-edward {
  position: absolute; bottom: 32%; left: 45%; width: 32px; height: 54px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; z-index: 4; animation: edc-edward 3s ease-in-out infinite;
}
@keyframes edc-edward {
  0%,100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
}
.scn-edward-defends-choice .figure-clarence {
  position: absolute; bottom: 32%; left: 55%; width: 28px; height: 48px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; z-index: 4; animation: edc-clarence 5s ease-in-out infinite;
}
@keyframes edc-clarence {
  0%,100% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(5px) rotate(-2deg); }
}
.scn-edward-defends-choice .figure-gloucester {
  position: absolute; bottom: 32%; left: 35%; width: 26px; height: 46px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; z-index: 4; animation: edc-gloucester 4s ease-in-out infinite;
}
@keyframes edc-gloucester {
  0%,100% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
}
.scn-edward-defends-choice .sceptre {
  position: absolute; bottom: 40%; left: 45%; width: 4px; height: 25px; background: linear-gradient(180deg, #f2c06a 0%, #c08040 100%); border-radius: 2px; z-index: 5; transform-origin: bottom center; animation: edc-sceptre 2s ease-in-out infinite;
}
@keyframes edc-sceptre {
  0%,100% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
}
.scn-edward-defends-choice .shadow-arch {
  position: absolute; top: 0; left: 20%; width: 60%; height: 50%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.3) 0%, transparent 70%); z-index: 1; animation: edc-arch 8s ease-in-out infinite;
}
@keyframes edc-arch {
  0%,100% { opacity: .5; }
  50% { opacity: .8; }
}

/* edward-asserts-king */
.scn-edward-asserts-king {
  background: linear-gradient(180deg, #d4c099 0%, #b89a6f 30%, #8a6a3a 100%), radial-gradient(ellipse at 50% 25%, #f2e6c4 0%, transparent 40%);
}
.scn-edward-asserts-king .hall-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #a58a6a 0%, #7a5c3a 100%); z-index: 0;
}
.scn-edward-asserts-king .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%; background: linear-gradient(180deg, #604e3a 0%, #3a2e1e 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); z-index: 2;
}
.scn-edward-asserts-king .throne {
  position: absolute; bottom: 28%; left: 50%; width: 90px; height: 110px; transform: translateX(-50%); background: linear-gradient(180deg, #b89a6f 0%, #8a6a3a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 10px 20px rgba(0,0,0,.5); z-index: 3;
}
.scn-edward-asserts-king .crown {
  position: absolute; bottom: 48%; left: 50%; width: 30px; height: 15px; transform: translateX(-50%); background: linear-gradient(90deg, #f2c06a 0%, #d4a040 50%, #f2c06a 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 15px 5px rgba(242,192,106,.5); z-index: 6; animation: eak-crown 3s ease-in-out infinite;
}
@keyframes eak-crown {
  0%,100% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg) scale(1.05); }
}
.scn-edward-asserts-king .figure-edward {
  position: absolute; bottom: 32%; left: 50%; width: 32px; height: 54px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; z-index: 4; animation: eak-edward 4s ease-in-out infinite;
}
@keyframes eak-edward {
  0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
}
.scn-edward-asserts-king .figure-clarence {
  position: absolute; bottom: 32%; left: 38%; width: 28px; height: 48px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; z-index: 4; animation: eak-clarence 5s ease-in-out infinite;
}
@keyframes eak-clarence {
  0%,100% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(4px) rotate(-2deg); }
}
.scn-edward-asserts-king .figure-gloucester {
  position: absolute; bottom: 32%; left: 62%; width: 26px; height: 46px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; z-index: 4; animation: eak-gloucester 4s ease-in-out infinite;
}
@keyframes eak-gloucester {
  0%,100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
.scn-edward-asserts-king .banner {
  position: absolute; top: 5%; left: 75%; width: 20px; height: 60px; background: linear-gradient(180deg, #b87878 0%, #702243 100%); border-radius: 2px; z-index: 5; transform-origin: top center; animation: eak-banner 6s ease-in-out infinite;
}
@keyframes eak-banner {
  0%,100% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
}
.scn-edward-asserts-king .candle {
  position: absolute; bottom: 48%; left: 20%; width: 6px; height: 20px; background: linear-gradient(180deg, #c8553d 0%, #e0a060 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 6px rgba(200,85,61,.5); z-index: 6; animation: eak-candle 2s ease-in-out infinite;
}
@keyframes eak-candle {
  0%,100% { transform: scaleY(1) scaleX(1); opacity: 1; }
  50% { transform: scaleY(1.2) scaleX(0.9); opacity: .8; }
}

/* messenger-france-news */
.scn-messenger-france-news {
  background: linear-gradient(180deg, #d4c099 0%, #b89a6f 40%, #7a5c3a 100%), radial-gradient(ellipse at 70% 30%, #f2e6c4 0%, transparent 50%);
}
.scn-messenger-france-news .hall-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #a58a6a 0%, #7a5c3a 100%); z-index: 0;
}
.scn-messenger-france-news .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #604e3a 0%, #3a2e1e 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); z-index: 2;
}
.scn-messenger-france-news .window-light {
  position: absolute; top: 8%; right: 10%; width: 60px; height: 80px; background: radial-gradient(circle, #fff3d4 0%, #f2dca0 40%, transparent 70%); border-radius: 10px; box-shadow: 0 0 40px 10px rgba(242,220,160,.4); z-index: 5; animation: mfn-glow 3s ease-in-out infinite alternate;
}
@keyframes mfn-glow {
  0% { opacity: .7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: .9; transform: scale(1); }
}
.scn-messenger-france-news .figure-messenger {
  position: absolute; bottom: 30%; left: 25%; width: 24px; height: 40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; z-index: 4; animation: mfn-messenger 6s ease-in-out infinite;
}
@keyframes mfn-messenger {
  0%,100% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
}
.scn-messenger-france-news .figure-edward {
  position: absolute; bottom: 32%; left: 55%; width: 32px; height: 52px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; z-index: 4; animation: mfn-edward 3s ease-in-out infinite;
}
@keyframes mfn-edward {
  0%,100% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
}
.scn-messenger-france-news .figure-bona {
  position: absolute; bottom: 30%; left: 70%; width: 22px; height: 44px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; z-index: 4; animation: mfn-bona 5s ease-in-out infinite;
}
@keyframes mfn-bona {
  0%,100% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(-3px) rotate(2deg); }
}
.scn-messenger-france-news .letter {
  position: absolute; bottom: 42%; left: 25%; width: 15px; height: 20px; background: #f2dca0; border-radius: 2px; box-shadow: 0 0 10px 2px rgba(242,220,160,.5); z-index: 6; animation: mfn-letter 4s ease-in-out infinite;
}
@keyframes mfn-letter {
  0%,100% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.1); }
}
.scn-messenger-france-news .candle {
  position: absolute; bottom: 48%; left: 15%; width: 6px; height: 18px; background: linear-gradient(180deg, #c8553d 0%, #e0a060 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 6px rgba(200,85,61,.5); z-index: 6; animation: mfn-candle 2s ease-in-out infinite;
}
@keyframes mfn-candle {
  0%,100% { transform: scaleY(1) scaleX(1); opacity: 1; }
  50% { transform: scaleY(1.2) scaleX(0.9); opacity: .8; }
}

/* warwick-demands-silence */
.scn-warwick-demands-silence {
  background: 
    linear-gradient(180deg, #e8d4aa 0%, #c8a87a 40%, #8a6a4a 100%),
    radial-gradient(ellipse at 30% 60%, #f0e0c0 0%, transparent 60%);
}
.scn-warwick-demands-silence .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e8dcc8 0%, #c8b89a 100%); }
.scn-warwick-demands-silence .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a725a 0%, #5a4a3a 100%); }
.scn-warwick-demands-silence .pillar-left { position:absolute; left:12%; bottom:0; width:6%; height:90%; background: linear-gradient(90deg, #baa082, #9a806a, #baa082); border-radius:4px; box-shadow: 2px 0 8px rgba(0,0,0,.3); animation: wds-pillar 8s ease-in-out infinite alternate; }
.scn-warwick-demands-silence .pillar-right { position:absolute; right:12%; bottom:0; width:6%; height:90%; background: linear-gradient(90deg, #baa082, #9a806a, #baa082); border-radius:4px; box-shadow: -2px 0 8px rgba(0,0,0,.3); animation: wds-pillar 8s ease-in-out infinite alternate-reverse; }
.scn-warwick-demands-silence .window { position:absolute; top:8%; left:35%; width:30%; height:35%; background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #e0c890 60%, #b89868 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; box-shadow: inset 0 0 30px rgba(255,255,200,.6); animation: wds-window 5s ease-in-out infinite alternate; }
.scn-warwick-demands-silence .warwick { position:absolute; bottom:30%; left:45%; 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: wds-warwick 2s ease-in-out infinite alternate; }
.scn-warwick-demands-silence .montague { position:absolute; bottom:28%; left:55%; width:16px; height:44px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wds-figures 4s ease-in-out infinite; }
.scn-warwick-demands-silence .york { position:absolute; bottom:26%; left:60%; width:16px; height:44px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wds-figures 4s ease-in-out infinite 1s; }
.scn-warwick-demands-silence .shadow-shaft { position:absolute; top:5%; left:30%; width:40%; height:60%; background: linear-gradient(180deg, rgba(0,0,0,.15) 0%, rgba(0,0,0,.05) 100%); transform: skewX(-5deg); animation: wds-shadow 7s ease-in-out infinite alternate; }
@keyframes wds-pillar { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(0.99) } }
@keyframes wds-window { 0% { opacity: .9; transform: scale(1) } 50% { opacity: 1; transform: scale(1.02) } 100% { opacity: .85; transform: scale(.98) } }
@keyframes wds-warwick { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(1px) rotate(2deg) } 100% { transform: translateX(-1px) rotate(0) } }
@keyframes wds-figures { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(-1px) rotate(-1deg) } 75% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes wds-shadow { 0% { opacity: .5; transform: skewX(-5deg) translateX(-10px) } 50% { opacity: .7; transform: skewX(-3deg) translateX(5px) } 100% { opacity: .4; transform: skewX(-7deg) translateX(0) } }

/* debate-over-title */
.scn-debate-over-title {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #c8b89a 40%, #9a8a6a 100%),
    radial-gradient(ellipse at 50% 20%, #f8ecd0 0%, transparent 70%);
}
.scn-debate-over-title .wall-panel { position:absolute; inset:0 0 45% 0; background: linear-gradient(90deg, #d0c0a0 0%, #e8d8b8 30%, #d0c0a0 100%); }
.scn-debate-over-title .window-arch { position:absolute; top:5%; left:50%; width:28%; height:35%; background: radial-gradient(ellipse at 50% 30%, #fff8e8 0%, #e8dcc0 60%, #b8a888 100%); border-radius: 40% 40% 10% 10% / 70% 70% 20% 20%; box-shadow: inset 0 0 20px rgba(255,240,200,.5); animation: dbt-window 6s ease-in-out infinite alternate; }
.scn-debate-over-title .table { position:absolute; bottom:30%; left:25%; width:50%; height:12%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.4); }
.scn-debate-over-title .crown { position:absolute; bottom:36%; left:50%; width:14px; height:10px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 50%, #e8c880 0%, #a08040 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 20px 4px rgba(200,160,80,.6); animation: dbt-crown 3s ease-in-out infinite alternate; }
.scn-debate-over-title .york-figure { position:absolute; bottom:25%; left:35%; width:18px; 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: dbt-york 4s ease-in-out infinite; }
.scn-debate-over-title .exeter-figure { position:absolute; bottom:25%; right:35%; width:18px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dbt-exeter 5s ease-in-out infinite 0.5s; }
.scn-debate-over-title .northumberland { position:absolute; bottom:28%; left:15%; width:16px; height:46px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dbt-north 6s ease-in-out infinite alternate; }
.scn-debate-over-title .banner { position:absolute; top:10%; left:5%; width:8%; height:40%; background: linear-gradient(180deg, #c8553d 0%, #702243 100%); border-radius: 2px; transform-origin: top left; animation: dbt-banner 10s ease-in-out infinite alternate; }
@keyframes dbt-window { 0% { opacity: .8; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.02) } 100% { opacity: .7; transform: scaleY(.98) } }
@keyframes dbt-crown { 0% { box-shadow: 0 0 15px 2px rgba(200,160,80,.5); transform: translateX(-50%) rotate(-3deg) } 50% { box-shadow: 0 0 25px 6px rgba(200,160,80,.7); transform: translateX(-50%) rotate(0) } 100% { box-shadow: 0 0 18px 3px rgba(200,160,80,.4); transform: translateX(-50%) rotate(3deg) } }
@keyframes dbt-york { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(5deg) } 50% { transform: translateX(-2px) rotate(-3deg) } 75% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dbt-exeter { 0% { transform: translateX(0) rotate(0) } 20% { transform: translateX(-2px) rotate(-4deg) } 40% { transform: translateX(3px) rotate(2deg) } 60% { transform: translateX(-4px) rotate(-2deg) } 80% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dbt-north { 0% { transform: scaleY(1) translateX(0) } 50% { transform: scaleY(1.02) translateX(1px) } 100% { transform: scaleY(0.98) translateX(-1px) } }
@keyframes dbt-banner { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }

/* warwick-threatens-blood */
.scn-warwick-threatens-blood {
  background: 
    linear-gradient(180deg, #e8d4b8 0%, #c8a880 40%, #8a6a4a 100%),
    radial-gradient(ellipse at 40% 50%, #f0dcc0 0%, transparent 60%);
}
.scn-warwick-threatens-blood .floor-perspective { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #9a7a5a 0%, #6a4a2a 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); }
.scn-warwick-threatens-blood .throne-bg { position:absolute; top:10%; left:50%; width:30%; height:50%; transform: translateX(-50%); background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.5); }
.scn-warwick-threatens-blood .soldier-1 { position:absolute; bottom:30%; left:20%; width:14px; height:48px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wtb-soldier 3s ease-in-out infinite; }
.scn-warwick-threatens-blood .soldier-2 { position:absolute; bottom:28%; right:20%; width:14px; height:48px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wtb-soldier 3s ease-in-out infinite 1.5s; }
.scn-warwick-threatens-blood .warwick-stamp { position:absolute; bottom:32%; left:42%; width:22px; height:52px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wtb-warwick 1.5s ease-in-out infinite; }
.scn-warwick-threatens-blood .red-stain { position:absolute; bottom:20%; left:43%; width:20px; height:6px; background: radial-gradient(ellipse at 50% 50%, #8a2a1a 0%, transparent 100%); border-radius: 50%; animation: wtb-stain 4s ease-in-out infinite alternate; }
.scn-warwick-threatens-blood .shadow-pool { position:absolute; bottom:25%; left:35%; width:30%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.3) 0%, transparent 70%); animation: wtb-pool 5s ease-in-out infinite alternate; }
@keyframes wtb-soldier { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes wtb-warwick { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(-3deg) } 50% { transform: translateY(0) rotate(0) scale(1.02) } 75% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes wtb-stain { 0% { opacity: .6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: .7; transform: scale(.9) } }
@keyframes wtb-pool { 0% { opacity: .3; transform: scaleY(1) } 50% { opacity: .5; transform: scaleY(1.2) } 100% { opacity: .2; transform: scaleY(.8) } }

/* henry-entails-crown */
.scn-henry-entails-crown {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #c8b89a 40%, #9a826a 100%),
    radial-gradient(ellipse at 60% 30%, #f8e8d0 0%, transparent 70%);
}
.scn-henry-entails-crown .curtain { position:absolute; top:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 0 0 40% 40%; animation: hec-curtain 8s ease-in-out infinite alternate; }
.scn-henry-entails-crown .throne-large { position:absolute; bottom:20%; left:45%; width:25%; height:40%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 20% 20% 8% 8%; box-shadow: 0 8px 24px rgba(0,0,0,.5); }
.scn-henry-entails-crown .crown-glow { position:absolute; bottom:38%; left:50%; width:16px; height:12px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 50%, #e8c880 0%, #a08040 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 30px 6px rgba(200,160,80,.8); animation: hec-crown 3s ease-in-out infinite alternate; }
.scn-henry-entails-crown .henry-figure { position:absolute; bottom:25%; left:46%; width:18px; 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: hec-embrace 6s ease-in-out infinite; }
.scn-henry-entails-crown .york-figure { position:absolute; bottom:25%; left:50%; width:18px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hec-embrace 6s ease-in-out infinite 0.2s; }
.scn-henry-entails-crown .warwick-proclaim { position:absolute; bottom:30%; left:62%; width:16px; height:46px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hec-warwick 4s ease-in-out infinite alternate; }
.scn-henry-entails-crown .floor-stones { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #8a725a 0%, #5a4a3a 100%); clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%); animation: hec-stones 12s ease-in-out infinite alternate; }
@keyframes hec-curtain { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes hec-crown { 0% { box-shadow: 0 0 20px 4px rgba(200,160,80,.6); transform: translateX(-50%) rotate(-3deg) scale(1) } 50% { box-shadow: 0 0 40px 10px rgba(200,160,80,.9); transform: translateX(-50%) rotate(0) scale(1.05) } 100% { box-shadow: 0 0 25px 5px rgba(200,160,80,.5); transform: translateX(-50%) rotate(3deg) scale(1) } }
@keyframes hec-embrace { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(1px) rotate(2deg) } 50% { transform: translateX(-1px) rotate(-2deg) } 75% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hec-warwick { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes hec-stones { 0% { opacity: .9; transform: translateY(0) } 50% { opacity: 1; transform: translateY(-1px) } 100% { opacity: .85; transform: translateY(1px) } }

/* All scenes share bright-interior base */
.scn-warwick-arrives-france {
  background: linear-gradient(180deg, #f5e6c8 0%, #d9cba4 30%, #b8a882 60%, #8a7a5e 100%),
              radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.3) 0%, transparent 50%);
}
.scn-warwick-arrives-france .bg-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #e8dcc0 0%, #c4b696 100%);
  animation: wa1-wall 12s ease-in-out infinite alternate;
}
.scn-warwick-arrives-france .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #a09070 0%, #6a5e4a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-warwick-arrives-france .throne {
  position:absolute; bottom:25%; left:50%; width:60px; height:80px;
  transform:translateX(-50%);
  background: linear-gradient(135deg, #b8a060 0%, #7a6a3a 50%, #4a3a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: wa1-throne 8s ease-in-out infinite;
}
.scn-warwick-arrives-france .figure-lewis {
  position:absolute; bottom:28%; left:45%; width:22px; height:50px;
  background: linear-gradient(180deg, #c8a870 0%, #7a6030 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: wa1-sit 6s ease-in-out infinite;
}
.scn-warwick-arrives-france .figure-warwick {
  position:absolute; bottom:25%; left:20%; width:20px; height:48px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wa1-approach 10s ease-in-out infinite;
}
.scn-warwick-arrives-france .column-left {
  position:absolute; bottom:10%; left:8%; width:16px; height:70%;
  background: linear-gradient(90deg, #c8b898 0%, #e8dcc0 50%, #c8b898 100%);
  border-radius: 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.2);
}
.scn-warwick-arrives-france .column-right {
  position:absolute; bottom:10%; right:8%; width:16px; height:70%;
  background: linear-gradient(90deg, #c8b898 0%, #e8dcc0 50%, #c8b898 100%);
  border-radius: 4px;
  box-shadow: -2px 0 6px rgba(0,0,0,0.2);
}
.scn-warwick-arrives-france .light-shaft {
  position:absolute; top:0; left:30%; width:40%; height:50%;
  background: linear-gradient(180deg, rgba(255,255,220,0.4) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: wa1-shaft 5s ease-in-out infinite alternate;
}
@keyframes wa1-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes wa1-throne { 0%,100% { transform:translateX(-50%) } 50% { transform:translateX(-50%) translateY(-2px) } }
@keyframes wa1-sit { 0%,100% { transform:rotate(0deg) } 50% { transform:rotate(2deg) translateY(-1px) } }
@keyframes wa1-approach { 0% { transform:translateX(0) rotate(-2deg) } 25% { transform:translateX(60px) rotate(1deg) } 50% { transform:translateX(120px) rotate(-1deg) } 75% { transform:translateX(180px) rotate(2deg) } 100% { transform:translateX(240px) rotate(0deg) } }
@keyframes wa1-shaft { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.2 } }

.scn-warwick-renounces-henry {
  background: linear-gradient(180deg, #e8dcc0 0%, #c4b696 40%, #9a8a6a 70%, #665a42 100%),
              radial-gradient(ellipse at 50% 100%, rgba(200,180,140,0.4) 0%, transparent 60%);
}
.scn-warwick-renounces-henry .bg-chamber {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(135deg, #d9cba4 0%, #b8a882 100%);
  animation: wr2-chamber 15s ease-in-out infinite alternate;
}
.scn-warwick-renounces-henry .table {
  position:absolute; bottom:20%; left:30%; width:40%; height:10%;
  background: linear-gradient(180deg, #7a6a3a 0%, #4a3a1a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: wr2-table 20s ease-in-out infinite;
}
.scn-warwick-renounces-henry .figure-warwick.speaks {
  position:absolute; bottom:25%; left:20%; width:22px; height:48px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wr2-speak 3s ease-in-out infinite;
}
.scn-warwick-renounces-henry .figure-oxford {
  position:absolute; bottom:25%; right:20%; width:20px; height:46px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wr2-oxford 4s ease-in-out infinite;
}
.scn-warwick-renounces-henry .figure-margaret {
  position:absolute; bottom:30%; left:45%; width:18px; height:40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wr2-margaret 6s ease-in-out infinite;
}
.scn-warwick-renounces-henry .candle {
  position:absolute; bottom:28%; left:48%; width:6px; height:14px;
  background: linear-gradient(180deg, #f0c060 0%, #c08030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 10px 2px #f0c060;
  animation: wr2-candle 2s ease-in-out infinite alternate;
}
.scn-warwick-renounces-henry .shadow-sharp {
  position:absolute; bottom:0; left:15%; width:70%; height:30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(2px);
  animation: wr2-shadow 8s ease-in-out infinite alternate;
}
@keyframes wr2-chamber { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes wr2-table { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes wr2-speak { 0% { transform:rotate(-3deg) translateX(0) } 25% { transform:rotate(3deg) translateX(5px) } 50% { transform:rotate(-2deg) translateX(10px) } 75% { transform:rotate(2deg) translateX(5px) } 100% { transform:rotate(-3deg) translateX(0) } }
@keyframes wr2-oxford { 0%,100% { transform:rotate(2deg) } 50% { transform:rotate(-2deg) translateY(-3px) } }
@keyframes wr2-margaret { 0% { transform:translateY(0) } 50% { transform:translateY(-5px) rotate(-1deg) } 100% { transform:translateY(0) } }
@keyframes wr2-candle { 0% { opacity:0.8; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.1) } 100% { opacity:0.9; transform:scaleY(0.95) } }
@keyframes wr2-shadow { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.3 } }

.scn-letters-arrive-france {
  background: linear-gradient(180deg, #f0e4c8 0%, #d4c4a0 40%, #b0a080 70%, #8a7a5a 100%),
              radial-gradient(circle at 50% 20%, rgba(255,255,200,0.2) 0%, transparent 50%);
}
.scn-letters-arrive-france .bg-hall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #d9cba4 0%, #b8a882 100%);
  animation: la3-hall 18s ease-in-out infinite alternate;
}
.scn-letters-arrive-france .figure-post.horn {
  position:absolute; bottom:25%; left:10%; width:20px; height:46px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: la3-post 4s ease-in-out infinite;
}
.scn-letters-arrive-france .figure-post.horn::before {
  content:'';
  position:absolute; top:-8px; left:8px; width:12px; height:16px;
  background: linear-gradient(180deg, #c8a040 0%, #8a6a10 100%);
  clip-path: polygon(0% 100%, 100% 0%, 100% 100%);
  transform: rotate(-20deg);
  animation: la3-horn 0.5s ease-in-out infinite;
}
.scn-letters-arrive-france .figure-lewis {
  position:absolute; bottom:28%; right:30%; width:22px; height:50px;
  background: linear-gradient(180deg, #b8a060 0%, #7a5a30 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: la3-lewis 6s ease-in-out infinite alternate;
}
.scn-letters-arrive-france .figure-margaret {
  position:absolute; bottom:30%; right:10%; width:18px; height:42px;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: la3-margaret 8s ease-in-out infinite alternate;
}
.scn-letters-arrive-france .envelope {
  position:absolute; width:24px; height:16px;
  background: linear-gradient(135deg, #f0e4c0 0%, #c8b080 100%);
  border-radius: 4px 4px 6px 6px / 4px 4px 6px 6px;
  box-shadow: 1px 1px 4px rgba(0,0,0,0.3);
}
.scn-letters-arrive-france .envelope-1 {
  bottom:30%; left:35%;
  animation: la3-env1 6s ease-in-out infinite alternate;
}
.scn-letters-arrive-france .envelope-2 {
  bottom:28%; left:45%;
  animation: la3-env2 7s ease-in-out infinite alternate;
}
.scn-letters-arrive-france .sound-wave {
  position:absolute; bottom:35%; left:12%; width:30px; height:30px;
  border: 2px solid rgba(180,140,80,0.5);
  border-radius: 50%;
  animation: la3-wave2 0.8s ease-out infinite;
}
.scn-letters-arrive-france .sound-wave::after {
  content:'';
  position:absolute; inset:4px;
  border: 2px solid rgba(180,140,80,0.3);
  border-radius: 50%;
  animation: la3-wave1 0.8s ease-out 0.2s infinite;
}
.scn-letters-arrive-france .arch-frame {
  position:absolute; bottom:10%; left:5%; width:90%; height:80%;
  border: 4px solid #9a8a6a;
  border-bottom: none;
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  filter: blur(1px);
  animation: la3-arch 20s ease-in-out infinite alternate;
}
@keyframes la3-hall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes la3-post { 0%,100% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(-3px) rotate(2deg) } }
@keyframes la3-horn { 0% { transform:rotate(-20deg) scaleY(1) } 50% { transform:rotate(-15deg) scaleY(1.2) } 100% { transform:rotate(-20deg) scaleY(1) } }
@keyframes la3-lewis { 0% { transform:rotate(0deg) } 50% { transform:rotate(-3deg) } 100% { transform:rotate(0deg) } }
@keyframes la3-margaret { 0% { transform:translateX(0) } 50% { transform:translateX(-10px) } 100% { transform:translateX(0) } }
@keyframes la3-env1 { 0% { transform:translate(0,0) rotate(-10deg) } 50% { transform:translate(15px,-10px) rotate(5deg) } 100% { transform:translate(30px,-20px) rotate(-5deg) } }
@keyframes la3-env2 { 0% { transform:translate(0,0) rotate(10deg) } 50% { transform:translate(-10px,-15px) rotate(-5deg) } 100% { transform:translate(-20px,-30px) rotate(10deg) } }
@keyframes la3-wave1 { 0% { transform:scale(0.5); opacity:1 } 100% { transform:scale(2); opacity:0 } }
@keyframes la3-wave2 { 0% { transform:scale(0.5); opacity:1 } 100% { transform:scale(2); opacity:0 } }
@keyframes la3-arch { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

.scn-warwick-renounces-edward {
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a880 40%, #9a8060 70%, #6a5040 100%),
              radial-gradient(circle at 30% 60%, rgba(255,200,100,0.3) 0%, transparent 50%);
}
.scn-warwick-renounces-edward .bg-court {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(135deg, #d4c4a0 0%, #b0a080 100%);
  animation: wre4-court 12s ease-in-out infinite alternate;
}
.scn-warwick-renounces-edward .figure-lewis.stamping {
  position:absolute; bottom:28%; left:20%; width:22px; height:48px;
  background: linear-gradient(180deg, #b8a060 0%, #7a5a30 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: wre4-stamp 1s ease-in-out infinite;
}
.scn-warwick-renounces-edward .figure-warwick {
  position:absolute; bottom:25%; right:25%; width:20px; height:46px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wre4-warwick 4s ease-in-out infinite alternate;
}
.scn-warwick-renounces-edward .figure-clarence {
  position:absolute; bottom:30%; right:45%; width:18px; height:40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wre4-clarence 6s ease-in-out infinite alternate;
}
.scn-warwick-renounces-edward .broken-crown {
  position:absolute; bottom:25%; left:45%; width:28px; height:18px;
  background: linear-gradient(135deg, #d4a040 0%, #a07020 100%);
  clip-path: polygon(50% 0%, 80% 30%, 70% 40%, 100% 70%, 70% 60%, 50% 100%, 30% 60%, 0% 70%, 30% 40%, 20% 30%);
  transform-origin: center;
  animation: wre4-crown 8s ease-in-out infinite;
}
.scn-warwick-renounces-edward .scepter {
  position:absolute; bottom:20%; left:35%; width:6px; height:40px;
  background: linear-gradient(180deg, #c8b040 0%, #8a6a10 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  animation: wre4-scepter 10s ease-in-out infinite alternate;
}
.scn-warwick-renounces-edward .shadow-pool {
  position:absolute; bottom:0; left:10%; width:80%; height:20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: wre4-pool 5s ease-in-out infinite alternate;
}
@keyframes wre4-court { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes wre4-stamp { 0% { transform:translateY(0) rotate(-2deg) } 25% { transform:translateY(-8px) rotate(3deg) } 50% { transform:translateY(0) rotate(-2deg) } 75% { transform:translateY(-10px) rotate(4deg) } 100% { transform:translateY(0) rotate(-2deg) } }
@keyframes wre4-warwick { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(-20px) rotate(-5deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes wre4-clarence { 0% { transform:rotate(0deg) } 50% { transform:rotate(-10deg) translateY(-5px) } 100% { transform:rotate(0deg) } }
@keyframes wre4-crown { 0% { transform:rotate(0deg) scaleY(1) } 25% { transform:rotate(10deg) scaleY(0.8) } 50% { transform:rotate(-5deg) scaleY(0.9) } 75% { transform:rotate(15deg) scaleY(0.7) } 100% { transform:rotate(0deg) scaleY(1) } }
@keyframes wre4-scepter { 0% { transform:rotate(-15deg) } 50% { transform:rotate(-20deg) } 100% { transform:rotate(-10deg) } }
@keyframes wre4-pool { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.2 } }

.scn-battlefield-arrival { background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 30%, #2a2a3a 70%, #1a1a2a 100%), radial-gradient(ellipse at 50% 40%, #5a5a6a 0%, transparent 70%); }
.scn-battlefield-arrival .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); animation: ba-sky 15s ease-in-out infinite alternate; }
.scn-battlefield-arrival .ground { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(0deg, #1a2a1a 0%, #2a3a2a 50%, #3a4a3a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
.scn-battlefield-arrival .mist { position:absolute; bottom:40%; left:0; width:120%; height:20%; background: linear-gradient(90deg, rgba(100,100,110,0.3) 0%, rgba(80,80,90,0.15) 50%, transparent 100%); filter: blur(8px); }
.scn-battlefield-arrival .mist-1 { animation: ba-mist1 30s linear infinite; }
.scn-battlefield-arrival .mist-2 { bottom:50%; animation: ba-mist2 45s linear infinite reverse; }
.scn-battlefield-arrival .tree { position:absolute; bottom:45%; width:8px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 10% 10%; }
.scn-battlefield-arrival .tree-1 { left:20%; height:50px; transform:rotate(2deg); animation: ba-tree 6s ease-in-out infinite; }
.scn-battlefield-arrival .tree-2 { left:65%; height:35px; transform:rotate(-3deg); animation: ba-tree 6s ease-in-out infinite reverse; }
.scn-battlefield-arrival .figure-york { position:absolute; bottom:30%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ba-york 4s ease-in-out infinite; }
.scn-battlefield-arrival .crow { position:absolute; bottom:50%; left:10%; width:16px; height:12px; background: #2a2a3a; border-radius: 50% 50% 0 0; clip-path: polygon(0 0,100% 0,80% 100%,20% 100%); animation: ba-crow 8s ease-in-out infinite; }
.scn-battlefield-arrival .sword { position:absolute; bottom:28%; left:52%; width:4px; height:30px; background: linear-gradient(180deg, #8a8a9a 0%, #5a5a6a 100%); border-radius: 2px; transform: rotate(-15deg); animation: ba-sword 3s ease-in-out infinite alternate; }
@keyframes ba-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ba-mist1 { 0% { transform: translateX(-20px) } 50% { transform: translateX(30px) scaleX(1.1) } 100% { transform: translateX(-20px) } }
@keyframes ba-mist2 { 0% { transform: translateX(20px) } 50% { transform: translateX(-30px) scaleX(1.05) } 100% { transform: translateX(20px) } }
@keyframes ba-tree { 0%,100% { transform-origin: bottom; transform: rotate(2deg) } 50% { transform: rotate(-2deg) } }
@keyframes ba-york { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ba-crow { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(30px,-10px) rotate(-5deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes ba-sword { 0% { transform: rotate(-15deg) translateY(0) } 100% { transform: rotate(-10deg) translateY(-3px) } }

.scn-item-paper-crown { background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 80%, #4a4a5a 0%, transparent 80%); }
.scn-item-paper-crown .bg { position:absolute; inset:0; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); }
.scn-item-paper-crown .molehill { position:absolute; bottom:25%; left:40%; width:120px; height:50px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 30% 30% / 100% 100% 30% 30%; transform: perspective(200px) rotateX(10deg); animation: pc-molehill 8s ease-in-out infinite alternate; }
.scn-item-paper-crown .figure-york { position:absolute; bottom:38%; left:45%; width:22px; height:45px; background: linear-gradient(180deg, #4a4a5a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: pc-york 4s ease-in-out infinite; }
.scn-item-paper-crown .crown-paper { position:absolute; bottom:52%; left:46%; width:18px; height:8px; background: linear-gradient(90deg, #b0a080 0%, #d0c0a0 50%, #b0a080 100%); border-radius: 30% 30% 0 0; clip-path: polygon(0 100%, 20% 0, 40% 100%, 60% 0, 80% 100%, 100% 0, 100% 100%); animation: pc-crown 2s ease-in-out infinite alternate; }
.scn-item-paper-crown .napkin { position:absolute; bottom:30%; left:55%; width:30px; height:20px; background: linear-gradient(135deg, #8a7a7a 0%, #6a5a5a 100%); border-radius: 10%; transform: rotate(15deg); animation: pc-napkin 5s ease-in-out infinite; }
.scn-item-paper-crown .figure-margaret { position:absolute; bottom:28%; left:60%; width:25px; height:50px; background: linear-gradient(180deg, #5a4a4a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: pc-margaret 6s ease-in-out infinite; }
.scn-item-paper-crown .stain { position:absolute; bottom:37%; left:58%; width:12px; height:8px; background: radial-gradient(circle, #8a3a3a 0%, #5a1a1a 70%, transparent 100%); border-radius: 50%; animation: pc-stain 4s ease-in-out infinite alternate; }
@keyframes pc-molehill { 0% { transform: perspective(200px) rotateX(10deg) scaleY(1) } 100% { transform: perspective(200px) rotateX(6deg) scaleY(0.95) } }
@keyframes pc-york { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pc-crown { 0% { transform: translateY(0) rotate(-5deg) } 100% { transform: translateY(-3px) rotate(5deg) } }
@keyframes pc-napkin { 0% { transform: rotate(15deg) translate(0,0) } 50% { transform: rotate(20deg) translate(2px,-1px) } 100% { transform: rotate(15deg) translate(0,0) } }
@keyframes pc-margaret { 0% { transform: translate(0,0) rotate(-2deg) } 25% { transform: translate(3px,-1px) rotate(1deg) } 50% { transform: translate(0,0) rotate(2deg) } 75% { transform: translate(-2px,-1px) rotate(-1deg) } 100% { transform: translate(0,0) rotate(-2deg) } }
@keyframes pc-stain { 0% { opacity:0.6; transform: scale(1) } 100% { opacity:1; transform: scale(1.2) } }

.scn-three-suns-omen { background: linear-gradient(180deg, #4a4a5a 0%, #5a5a6a 30%, #3a3a4a 70%, #2a2a3a 100%), radial-gradient(ellipse at 50% 30%, #6a6a7a 0%, transparent 70%); }
.scn-three-suns-omen .sky-overcast { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 100%); animation: ts-sky 12s ease-in-out infinite alternate; }
.scn-three-suns-omen .ground-plain { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(0deg, #2a3a2a 0%, #3a4a3a 50%, #4a5a4a 100%); border-radius: 20% 80% 0 0 / 30% 70% 0 0; }
.scn-three-suns-omen .sun { position:absolute; top:15%; width:30px; height:30px; background: radial-gradient(circle, #e0d090 0%, #c0b070 50%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: ts-sun 4s ease-in-out infinite alternate; }
.scn-three-suns-omen .sun-1 { left:30%; animation-delay:0s; }
.scn-three-suns-omen .sun-2 { left:50%; transform:translateX(-50%); animation-delay:0.3s; }
.scn-three-suns-omen .sun-3 { left:70%; animation-delay:0.6s; }
.scn-three-suns-omen .two-figures { position:absolute; bottom:30%; left:20%; width:35px; height:50px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ts-figures 6s ease-in-out infinite; }
.scn-three-suns-omen .messenger { position:absolute; bottom:30%; right:25%; width:20px; height:40px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ts-messenger 5s ease-in-out infinite; }
.scn-three-suns-omen .banner { position:absolute; bottom:35%; right:40%; width:8px; height:25px; background: #5a5a6a; border-radius: 2px; transform: rotate(5deg); animation: ts-banner 3s ease-in-out infinite alternate; }
.scn-three-suns-omen .banner::after { content:''; display:block; width:20px; height:12px; background: #7a7a8a; border-radius: 0 50% 50% 0; margin-top:-2px; margin-left:2px; }
@keyframes ts-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ts-sun { 0% { transform: scale(1) translateY(0) rotate(0deg); opacity:0.7 } 50% { transform: scale(1.1) translateY(-3px) rotate(5deg); opacity:1 } 100% { transform: scale(1) translateY(0) rotate(0deg); opacity:0.8 } }
@keyframes ts-figures { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(2px,-1px) rotate(1deg) } 50% { transform: translate(0,0) rotate(2deg) } 75% { transform: translate(-2px,-1px) rotate(-1deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes ts-messenger { 0% { transform: translate(0,0) } 50% { transform: translate(5px,-2px) } 100% { transform: translate(0,0) } }
@keyframes ts-banner { 0% { transform: rotate(5deg) scaleY(1) } 100% { transform: rotate(10deg) scaleY(0.9) } }

.scn-warwick-returns-proclaim { background: linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 30%, #2a2a3a 70%, #1a1a2a 100%), radial-gradient(ellipse at 50% 50%, #5a5a6a 0%, transparent 80%); }
.scn-warwick-returns-proclaim .camp-bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); }
.scn-warwick-returns-proclaim .tent { position:absolute; bottom:20%; left:20%; width:80px; height:60px; background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 100%); border-radius: 30% 30% 10% 10%; clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%); transform: perspective(300px) rotateX(5deg); animation: wr-tent 10s ease-in-out infinite alternate; }
.scn-warwick-returns-proclaim .figure-warwick { position:absolute; bottom:30%; left:35%; width:22px; height:45px; background: linear-gradient(180deg, #5a5a6a 0%, #2a2a3a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: wr-warwick 5s ease-in-out infinite; }
.scn-warwick-returns-proclaim .figure-edward { position:absolute; bottom:30%; left:45%; width:20px; height:42px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wr-edward 4s ease-in-out infinite; }
.scn-warwick-returns-proclaim .figure-richard { position:absolute; bottom:30%; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #5a4a4a 0%, #2a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wr-richard 6s ease-in-out infinite; }
.scn-warwick-returns-proclaim .figure-george { position:absolute; bottom:30%; left:65%; width:20px; height:40px; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wr-george 5s ease-in-out infinite reverse; }
.scn-warwick-returns-proclaim .flag { position:absolute; bottom:45%; width:8px; height:30px; background: #5a5a6a; border-radius: 2px; transform-origin: bottom; animation: wr-flag 3s ease-in-out infinite alternate; }
.scn-warwick-returns-proclaim .flag-1 { left:30%; transform: rotate(-5deg); }
.scn-warwick-returns-proclaim .flag-2 { right:25%; transform: rotate(5deg); animation-delay:0.5s; }
.scn-warwick-returns-proclaim .flag::after { content:''; display:block; width:20px; height:14px; background: linear-gradient(90deg, #7a7a8a 0%, #9a9aaa 100%); border-radius: 0 50% 50% 0; margin-top:-2px; margin-left:2px; }
.scn-warwick-returns-proclaim .fire-pit { position:absolute; bottom:22%; left:50%; transform:translateX(-50%); width:24px; height:12px; background: radial-gradient(ellipse, #8a7a5a 0%, #5a4a3a 50%, transparent 100%); border-radius: 50%; animation: wr-fire 2s ease-in-out infinite alternate; }
@keyframes wr-tent { 0% { transform: perspective(300px) rotateX(5deg) scaleY(1) } 100% { transform: perspective(300px) rotateX(3deg) scaleY(0.95) } }
@keyframes wr-warwick { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(2px,-1px) rotate(1deg) } 50% { transform: translate(0,0) rotate(2deg) } 75% { transform: translate(-2px,-1px) rotate(-1deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes wr-edward { 0% { transform: translate(0,0) } 50% { transform: translate(3px,-2px) } 100% { transform: translate(0,0) } }
@keyframes wr-richard { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(-2px,-1px) rotate(2deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes wr-george { 0% { transform: translate(0,0) } 50% { transform: translate(-3px,-2px) } 100% { transform: translate(0,0) } }
@keyframes wr-flag { 0% { transform: rotate(-5deg) scaleY(1) } 100% { transform: rotate(5deg) scaleY(0.9) } }
@keyframes wr-fire { 0% { transform: translateX(-50%) scale(1); opacity:0.7 } 100% { transform: translateX(-50%) scale(1.15); opacity:1 } }

.scn-hunting-escape-plan {
  background:
    linear-gradient(180deg, #7fa5b8 0%, #c2d6e0 40%, #e8f0e0 70%),
    radial-gradient(ellipse at 70% 80%, #d4a373 0%, transparent 60%);
}
.scn-hunting-escape-plan .he1-sky { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #89b5c9 0%, #d6e4e0 100%); animation:he1-sky 20s ease-in-out infinite alternate; }
.scn-hunting-escape-plan .he1-sun { position:absolute; top:12%; right:20%; width:40px; height:40px; background:radial-gradient(circle, #f5d782 0%, #e8b84a 70%, transparent 100%); border-radius:50%; box-shadow:0 0 60px 20px rgba(232,184,74,0.5); animation:he1-sun 8s ease-in-out infinite; }
.scn-hunting-escape-plan .he1-forest { position:absolute; bottom:30%; left:0; right:0; height:35%; background:linear-gradient(180deg, #2e4a2e 0%, #1a301a 100%); border-radius:30% 30% 0 0; clip-path:polygon(0% 100%,5% 75%,10% 90%,15% 60%,20% 85%,25% 65%,30% 80%,35% 55%,40% 75%,45% 50%,50% 70%,55% 45%,60% 65%,65% 40%,70% 60%,75% 35%,80% 55%,85% 30%,90% 50%,95% 20%,100% 40%,100% 100%); animation:he1-forest 16s ease-in-out infinite alternate; }
.scn-hunting-escape-plan .he1-horse { position:absolute; bottom:28%; left:45%; width:60px; height:40px; background:linear-gradient(135deg, #5a3a1a 0%, #3a2a0a 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin:50% 100%; animation:he1-horse 3s ease-in-out infinite; }
.scn-hunting-escape-plan .he1-figure { position:absolute; bottom:30%; left:50%; width:20px; height:40px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:translateX(-50%); animation:he1-figure 2s ease-in-out infinite alternate; }
.scn-hunting-escape-plan .he1-shadow { position:absolute; bottom:25%; left:42%; width:70px; height:8px; background:rgba(0,0,0,0.3); border-radius:50%; filter:blur(4px); animation:he1-shadow 3s ease-in-out infinite alternate; }
.scn-hunting-escape-plan .he1-leaf { position:absolute; top:35%; left:10%; width:8px; height:5px; background:#4a6a2a; border-radius:50% 0 50% 0; animation:he1-leaf 12s linear infinite; }
@keyframes he1-sky { 0% { opacity:0.9; transform:scale(1); } 50% { opacity:1; transform:scale(1.02); } 100% { opacity:0.85; transform:scale(1); } }
@keyframes he1-sun { 0% { transform:translate(0,0) scale(1); opacity:0.9; } 50% { transform:translate(-4px,2px) scale(1.05); opacity:1; } 100% { transform:translate(0,0) scale(1); opacity:0.9; } }
@keyframes he1-forest { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(0); } }
@keyframes he1-horse { 0% { transform:translateX(-30px) rotate(0deg); } 25% { transform:translateX(-15px) rotate(2deg); } 50% { transform:translateX(0px) rotate(0deg); } 75% { transform:translateX(15px) rotate(-2deg); } 100% { transform:translateX(30px) rotate(0deg); } }
@keyframes he1-figure { 0% { transform:translateX(-50%) translateY(0) rotate(-2deg); } 50% { transform:translateX(-50%) translateY(-2px) rotate(2deg); } 100% { transform:translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes he1-shadow { 0% { width:70px; opacity:0.5; } 50% { width:80px; opacity:0.3; } 100% { width:70px; opacity:0.5; } }
@keyframes he1-leaf { 0% { transform:translate(0,0) rotate(0deg); opacity:1; } 50% { transform:translate(80px, -20px) rotate(180deg); opacity:0.6; } 100% { transform:translate(160px, -40px) rotate(360deg); opacity:0; } }

.scn-henry-returns-throne {
  background:
    linear-gradient(180deg, #6a5a4a 0%, #9a8a7a 30%, #baaa9a 70%, #8a7a6a 100%),
    radial-gradient(ellipse at 50% 60%, #caba9a 0%, transparent 70%);
}
.scn-henry-returns-throne .hr1-wall { position:absolute; inset:0 0 20% 0; background:linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); box-shadow:inset 0 8px 20px rgba(0,0,0,0.3); animation:hr1-wall 8s ease-in-out infinite alternate; }
.scn-henry-returns-throne .hr1-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:0 0 20% 20%; box-shadow:inset 0 -4px 10px rgba(0,0,0,0.4); }
.scn-henry-returns-throne .hr1-window { position:absolute; top:5%; left:60%; width:50px; height:60px; background:radial-gradient(ellipse at 50% 50%, #d0e0f0 0%, #a0b8c8 100%); border:6px solid #4a3a2a; border-radius:10% 10% 5% 5%; box-shadow:0 0 20px 6px rgba(160,184,200,0.4); animation:hr1-window 6s ease-in-out infinite alternate; }
.scn-henry-returns-throne .hr1-throne { position:absolute; bottom:20%; left:35%; width:80px; height:50px; background:linear-gradient(180deg, #b8a070 0%, #8a6a40 100%); border-radius:10% 10% 5% 5%; box-shadow:0 6px 12px rgba(0,0,0,0.5); transform:rotate(-1deg); animation:hr1-throne 5s ease-in-out infinite; }
.scn-henry-returns-throne .hr1-king { position:absolute; bottom:25%; left:38%; width:24px; height:50px; background:linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:hr1-king 3s ease-in-out infinite alternate; }
.scn-henry-returns-throne .hr1-attendant { position:absolute; bottom:24%; left:50%; width:18px; height:44px; background:linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:hr1-attendant 4s ease-in-out infinite alternate; }
.scn-henry-returns-throne .hr1-banner { position:absolute; top:12%; left:15%; width:30px; height:50px; background:linear-gradient(180deg, #a0461a 0%, #6a2a0a 100%); border-radius:0 0 10% 10%; transform-origin:top center; animation:hr1-banner 10s ease-in-out infinite alternate; }
@keyframes hr1-wall { 0% { opacity:0.9; } 50% { opacity:1; box-shadow:inset 0 12px 24px rgba(0,0,0,0.4); } 100% { opacity:0.85; } }
@keyframes hr1-window { 0% { background:radial-gradient(ellipse at 50% 50%, #d0e0f0 0%, #a0b8c8 100%); box-shadow:0 0 15px 4px rgba(160,184,200,0.5); } 50% { background:radial-gradient(ellipse at 50% 50%, #c0d0e0 0%, #8098a8 100%); box-shadow:0 0 30px 10px rgba(128,152,168,0.3); } 100% { background:radial-gradient(ellipse at 50% 50%, #d0e0f0 0%, #a0b8c8 100%); box-shadow:0 0 15px 4px rgba(160,184,200,0.5); } }
@keyframes hr1-throne { 0% { transform:rotate(-1deg) translateY(0); } 50% { transform:rotate(-0.5deg) translateY(-2px); } 100% { transform:rotate(-1deg) translateY(0); } }
@keyframes hr1-king { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-1px) rotate(1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes hr1-attendant { 0% { transform:translateX(0) translateY(0); } 50% { transform:translateX(2px) translateY(-1px); } 100% { transform:translateX(0) translateY(0); } }
@keyframes hr1-banner { 0% { transform:rotate(-5deg); } 50% { transform:rotate(5deg); } 100% { transform:rotate(-5deg); } }

.scn-warwick-learns-escape {
  background:
    linear-gradient(180deg, #4a3a3a 0%, #6a4a4a 40%, #8a6a5a 80%, #5a4a3a 100%),
    radial-gradient(ellipse at 60% 40%, #7a5a4a 0%, transparent 80%);
}
.scn-warwick-learns-escape .we1-wall { position:absolute; inset:0 0 15% 0; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a2a 100%); box-shadow:inset 0 6px 20px rgba(0,0,0,0.5); animation:we1-wall 12s ease-in-out infinite alternate; }
.scn-warwick-learns-escape .we1-table { position:absolute; bottom:20%; left:20%; right:20%; height:8px; background:linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:4px; box-shadow:0 6px 12px rgba(0,0,0,0.4); animation:we1-table 8s ease-in-out infinite alternate; }
.scn-warwick-learns-escape .we1-candle { position:absolute; bottom:28%; left:40%; width:6px; height:16px; background:linear-gradient(180deg, #f0d080 0%, #c09860 100%); border-radius:3px 3px 0 0; box-shadow:0 0 20px 6px rgba(240,208,128,0.6); animation:we1-candle 2s ease-in-out infinite alternate; }
.scn-warwick-learns-escape .we1-figure1 { position:absolute; bottom:18%; left:30%; width:22px; height:50px; background:linear-gradient(180deg, #2a1a2a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:we1-figure1 3s ease-in-out infinite alternate; }
.scn-warwick-learns-escape .we1-figure2 { position:absolute; bottom:18%; left:45%; width:20px; height:48px; background:linear-gradient(180deg, #3a2a3a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:we1-figure2 4s ease-in-out infinite alternate; }
.scn-warwick-learns-escape .we1-figure3 { position:absolute; bottom:18%; left:60%; width:18px; height:44px; background:linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:we1-figure3 5s ease-in-out infinite alternate; }
.scn-warwick-learns-escape .we1-curtain { position:absolute; top:0; left:70%; width:40px; height:100%; background:linear-gradient(180deg, #702243 0%, #4a122a 50%, #2a0a1a 100%); border-radius:0 0 20% 20%; transform-origin:top right; animation:we1-curtain 14s ease-in-out infinite alternate; }
@keyframes we1-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes we1-table { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes we1-candle { 0% { transform:scaleY(1) rotate(-1deg); opacity:0.9; } 50% { transform:scaleY(1.1) rotate(1deg); opacity:1; box-shadow:0 0 30px 10px rgba(240,208,128,0.8); } 100% { transform:scaleY(1) rotate(-1deg); opacity:0.9; } }
@keyframes we1-figure1 { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 50% { transform:translateX(2px) translateY(-2px) rotate(1deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes we1-figure2 { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 50% { transform:translateX(-1px) translateY(-1px) rotate(-1deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes we1-figure3 { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 50% { transform:translateX(3px) translateY(-1px) rotate(2deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes we1-curtain { 0% { transform:rotate(0deg) scaleX(1); } 50% { transform:rotate(-3deg) scaleX(0.95); } 100% { transform:rotate(0deg) scaleX(1); } }

.scn-york-gates-closed {
  background:
    linear-gradient(180deg, #5a6a6a 0%, #7a8a8a 40%, #3a4a4a 100%),
    radial-gradient(ellipse at 50% 30%, #9aa0a0 0%, transparent 70%);
}
.scn-york-gates-closed .yg1-sky { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #6a7a7a 0%, #8a9a9a 50%, #4a5a5a 100%); animation:yg1-sky 25s ease-in-out infinite alternate; }
.scn-york-gates-closed .yg1-cloud { position:absolute; top:10%; left:20%; width:70px; height:20px; background:linear-gradient(180deg, rgba(200,210,210,0.6) 0%, rgba(200,210,210,0.2) 100%); border-radius:50%; filter:blur(5px); animation:yg1-cloud 40s linear infinite; }
.scn-york-gates-closed .yg1-wall { position:absolute; bottom:5%; left:10%; right:10%; height:60%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 0 0; box-shadow:inset 0 10px 30px rgba(0,0,0,0.6); clip-path:polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%); animation:yg1-wall 8s ease-in-out infinite alternate; }
.scn-york-gates-closed .yg1-gate { position:absolute; bottom:5%; left:35%; right:35%; height:50%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border:6px solid #1a0a00; border-radius:10% 10% 0 0; box-shadow:0 8px 20px rgba(0,0,0,0.5); animation:yg1-gate 6s ease-in-out infinite; }
.scn-york-gates-closed .yg1-banner { position:absolute; top:10%; left:20%; width:20px; height:30px; background:linear-gradient(180deg, #b87878 0%, #804848 100%); border-radius:0 0 20% 20%; transform-origin:top center; animation:yg1-banner 12s ease-in-out infinite alternate; }
.scn-york-gates-closed .yg1-figure { position:absolute; bottom:8%; left:48%; width:18px; height:36px; background:linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:yg1-figure 3s ease-in-out infinite alternate; }
.scn-york-gates-closed .yg1-ground { position:absolute; bottom:0; left:0; right:0; height:8%; background:linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%); border-radius:0 0 20% 20%; animation:yg1-ground 10s ease-in-out infinite alternate; }
@keyframes yg1-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes yg1-cloud { 0% { transform:translateX(-50px); opacity:0.6; } 50% { transform:translateX(50px); opacity:0.3; } 100% { transform:translateX(120px); opacity:0.6; } }
@keyframes yg1-wall { 0% { transform:translateY(0); box-shadow:inset 0 10px 30px rgba(0,0,0,0.6); } 50% { transform:translateY(-2px); box-shadow:inset 0 12px 35px rgba(0,0,0,0.7); } 100% { transform:translateY(0); box-shadow:inset 0 10px 30px rgba(0,0,0,0.6); } }
@keyframes yg1-gate { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.02); } 100% { transform:scaleY(1); } }
@keyframes yg1-banner { 0% { transform:rotate(-10deg); } 50% { transform:rotate(10deg); } 100% { transform:rotate(-10deg); } }
@keyframes yg1-figure { 0% { transform:translateX(-2px) translateY(0) rotate(-2deg); } 50% { transform:translateX(2px) translateY(-1px) rotate(2deg); } 100% { transform:translateX(-2px) translateY(0) rotate(-2deg); } }
@keyframes yg1-ground { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }

/* Scene 1: montgomery-insists-title – overcast, tense camp */
.scn-montgomery-insists-title {
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 50%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 100%, #4a4a5a 0%, transparent 70%);
}
.scn-montgomery-insists-title .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%);
  animation: mit-sky 20s ease-in-out infinite alternate;
}
.scn-montgomery-insists-title .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 30% 70% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: mit-ground 15s ease-in-out infinite alternate;
}
.scn-montgomery-insists-title .tent {
  position: absolute; bottom: 35%; left: 50%; width: 120px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #6a5a4a 0%, #3a2a1a 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: mit-tent 8s ease-in-out infinite;
}
.scn-montgomery-insists-title .figure-montgomery {
  position: absolute; bottom: 25%; left: 40%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mit-figure 6s ease-in-out infinite;
}
.scn-montgomery-insists-title .banner {
  position: absolute; bottom: 40%; right: 30%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform-origin: bottom;
  animation: mit-banner 4s ease-in-out infinite alternate;
}
.scn-montgomery-insists-title .banner::after {
  content: ''; position: absolute; top: 0; left: 4px; width: 30px; height: 20px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 0 50% 50% 0 / 0 100% 100% 0;
}
.scn-montgomery-insists-title .brazier {
  position: absolute; bottom: 28%; left: 55%; width: 16px; height: 20px;
  background: radial-gradient(circle, #d08040 0%, #804020 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #b06030, 0 0 40px 12px rgba(180,96,48,0.3);
  animation: mit-brazier 3s ease-in-out infinite alternate;
}
@keyframes mit-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes mit-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mit-tent { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(0.5deg); } 50% { transform: translateX(-50%) rotate(-0.5deg); } 75% { transform: translateX(-50%) rotate(0.3deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes mit-figure { 0% { transform: translateX(0) rotate(-1deg); } 30% { transform: translateX(5px) rotate(0deg); } 60% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes mit-banner { 0% { transform: rotate(0deg); } 100% { transform: rotate(10deg); } }
@keyframes mit-brazier { 0% { box-shadow: 0 0 15px 4px #b06030; opacity: 0.8; } 50% { box-shadow: 0 0 28px 8px #d08040; opacity: 1; } 100% { box-shadow: 0 0 18px 5px #b06030; opacity: 0.9; } }

/* Scene 2: proclamation-fourth – bright interior, tense */
.scn-proclamation-fourth {
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 50%, #908060 100%),
              radial-gradient(ellipse at 50% 60%, #e0d0b0 0%, transparent 60%);
}
.scn-proclamation-fourth .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #b0a080 0%, #908060 100%);
  border: 2px solid #7a6a50;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.2);
  animation: pf-wall 10s ease-in-out infinite alternate;
}
.scn-proclamation-fourth .throne {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c0a060 0%, #806040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.4);
  animation: pf-throne 8s ease-in-out infinite;
}
.scn-proclamation-fourth .crown {
  position: absolute; top: 18%; left: 50%; width: 30px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #c09040 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 20px 6px #e0b060;
  animation: pf-crown 3s ease-in-out infinite alternate;
}
.scn-proclamation-fourth .figure-king {
  position: absolute; bottom: 22%; left: 42%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pf-king 5s ease-in-out infinite;
}
.scn-proclamation-fourth .figure-soldier {
  position: absolute; bottom: 18%; right: 30%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pf-soldier 4s ease-in-out infinite;
}
.scn-proclamation-fourth .torch {
  position: absolute; top: 15%; left: 25%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a2a0a 100%);
  border-radius: 2px;
  animation: pf-torch 2s ease-in-out infinite alternate;
}
.scn-proclamation-fourth .torch::after {
  content: ''; position: absolute; top: -10px; left: -5px; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd060 0%, #ff8820 60%, transparent 100%);
  border-radius: 50%;
  animation: pf-torch-flame 0.5s steps(3) infinite;
}
.scn-proclamation-fourth .light-ray {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(180deg, rgba(255,235,180,0.15) 0%, transparent 40%);
  animation: pf-light 6s ease-in-out infinite alternate;
}
@keyframes pf-wall { 0% { filter: brightness(0.9); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.95); } }
@keyframes pf-throne { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes pf-crown { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes pf-king { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pf-soldier { 0% { transform: translateX(0) rotate(2deg); } 30% { transform: translateX(-6px) rotate(-2deg); } 60% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pf-torch { 0% { transform: rotate(0deg); } 100% { transform: rotate(3deg); } }
@keyframes pf-torch-flame { 0% { opacity: 0.8; transform: scale(1); } 33% { opacity: 1; transform: scale(1.2); } 66% { opacity: 0.9; transform: scale(0.9); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes pf-light { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

/* Scene 3: coventry-march – bright interior, tense, farewell */
.scn-coventry-march {
  background: linear-gradient(180deg, #b8a888 0%, #988868 50%, #786848 100%),
              radial-gradient(ellipse at 50% 80%, #c8b898 0%, transparent 60%);
}
.scn-coventry-march .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  animation: cm-floor 12s ease-in-out infinite alternate;
}
.scn-coventry-march .archway {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 130px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
  animation: cm-archway 10s ease-in-out infinite;
}
.scn-coventry-march .figure-henry {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cm-henry 4s ease-in-out infinite;
}
.scn-coventry-march .figure-warwick {
  position: absolute; bottom: 20%; right: 32%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cm-warwick 5s ease-in-out infinite;
}
.scn-coventry-march .figure-oxford {
  position: absolute; bottom: 18%; right: 10%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cm-oxford 6s ease-in-out infinite;
}
.scn-coventry-march .lantern {
  position: absolute; top: 12%; left: 20%; width: 14px; height: 14px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px #d0a060;
  animation: cm-lantern 4s ease-in-out infinite alternate;
}
@keyframes cm-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cm-archway { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.02); } 100% { transform: translateX(-50%) scaleX(1); } }
@keyframes cm-henry { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(-8px) rotate(1deg); } 50% { transform: translateX(-16px) rotate(0deg); } 75% { transform: translateX(-8px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cm-warwick { 0% { transform: translateX(0) rotate(1deg); } 30% { transform: translateX(6px) rotate(-1deg); } 60% { transform: translateX(12px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cm-oxford { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(10px) rotate(1deg); } 80% { transform: translateX(20px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cm-lantern { 0% { box-shadow: 0 0 20px 5px #d0a060; opacity: 0.7; } 50% { box-shadow: 0 0 40px 12px #e0b070; opacity: 1; } 100% { box-shadow: 0 0 25px 6px #d0a060; opacity: 0.8; } }

/* Scene 4: final-scene-headings – dim interior, calm */
.scn-final-scene-headings {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 70%, #3a3a4a 0%, transparent 70%);
}
.scn-final-scene-headings .table {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: fsh-table 20s ease-in-out infinite alternate;
}
.scn-final-scene-headings .book {
  position: absolute; bottom: 35%; left: 40%; width: 60px; height: 45px;
  background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: fsh-book 8s ease-in-out infinite;
}
.scn-final-scene-headings .candle {
  position: absolute; bottom: 40%; right: 25%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #c0a070 0%, #806040 100%);
  border-radius: 2px;
  animation: fsh-candle 5s ease-in-out infinite;
}
.scn-final-scene-headings .candle::after {
  content: ''; position: absolute; top: -8px; left: -4px; width: 16px; height: 16px;
  background: radial-gradient(circle, #ffd060 0%, #ff8820 60%, transparent 100%);
  border-radius: 50%;
  animation: fsh-flame 2s ease-in-out infinite alternate;
}
.scn-final-scene-headings .hand {
  position: absolute; bottom: 30%; left: 30%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fsh-hand 6s ease-in-out infinite;
}
.scn-final-scene-headings .scroll {
  position: absolute; bottom: 32%; left: 50%; width: 40px; height: 8px;
  background: linear-gradient(180deg, #b0a080 0%, #908060 100%);
  border-radius: 10%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: fsh-scroll 10s ease-in-out infinite alternate;
}
.scn-final-scene-headings .glow-ambient {
  position: absolute; top: 20%; left: 20%; width: 60%; height: 30%;
  background: radial-gradient(ellipse, rgba(200,160,100,0.08) 0%, transparent 70%);
  animation: fsh-glow 12s ease-in-out infinite alternate;
}
@keyframes fsh-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes fsh-book { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(0.5deg); } 60% { transform: translateY(0) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fsh-candle { 0% { transform: rotate(0deg); } 50% { transform: rotate(0.5deg); } 100% { transform: rotate(-0.5deg); } }
@keyframes fsh-flame { 0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.8; } }
@keyframes fsh-hand { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(8px) rotate(2deg); } 60% { transform: translateX(16px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fsh-scroll { 0% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(-5deg) scaleX(1.05); } 100% { transform: rotate(-5deg) scaleX(1); } }
@keyframes fsh-glow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

.scn-margaret-rages { background: linear-gradient(180deg, #3d2b1f 0%, #5a3d2e 50%, #7a5a4a 100%), radial-gradient(ellipse at 50% 100%, #8b6b5a 0%, transparent 70%); position: relative; overflow: hidden; width: 100%; height: 100%; }
.scn-margaret-rages .mr-bg     { position: absolute; inset: 0; background: linear-gradient(180deg, #2c1f14 0%, #4a3628 100%); }
.scn-margaret-rages .mr-wall   { position: absolute; top: 0; left: 0; right: 0; bottom: 30%; background: linear-gradient(90deg, #6b4f3e 0%, #8c6b56 50%, #6b4f3e 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.4); animation: mr-wall 10s ease-in-out infinite alternate; }
.scn-margaret-rages .mr-floor  { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #4a3628 0%, #3a2a1e 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-margaret-rages .mr-window { position: absolute; top: 20%; left: 60%; width: 80px; height: 90px; background: linear-gradient(180deg, #ffd9b0 0%, #ffb080 100%); border-radius: 4px; box-shadow: 0 0 40px 10px rgba(255,200,150,.6), inset 0 0 20px rgba(255,255,200,.3); animation: mr-window 4s ease-in-out infinite alternate; }
.scn-margaret-rages .mr-table  { position: absolute; bottom: 20%; left: 30%; width: 120px; height: 50px; background: linear-gradient(180deg, #7a5a4a 0%, #5a3d2e 100%); border-radius: 6px 6px 2px 2px; box-shadow: 0 6px 12px rgba(0,0,0,.4); transform: rotate(-2deg); animation: mr-table 8s ease-in-out infinite; }
.scn-margaret-rages .mr-figure { position: absolute; bottom: 28%; left: 40%; width: 40px; height: 70px; background: linear-gradient(180deg, #2c1f14 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mr-figure 2s ease-in-out infinite; }
.scn-margaret-rages .mr-shadow { position: absolute; bottom: 0; left: 35%; width: 60px; height: 20px; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(8px); animation: mr-shadow 2s ease-in-out infinite; }
.scn-margaret-rages .mr-candle { position: absolute; bottom: 42%; left: 65%; width: 8px; height: 16px; background: linear-gradient(180deg, #f4c542 0%, #d4a030 50%, #a07020 100%); border-radius: 2px 2px 1px 1px; box-shadow: 0 0 24px 8px rgba(244,197,66,.6); animation: mr-candle 3s ease-in-out infinite alternate; }
@keyframes mr-wall     { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes mr-window   { 0% { opacity:.7; box-shadow: 0 0 30px 8px rgba(255,200,150,.5) } 50% { opacity:1; box-shadow: 0 0 50px 15px rgba(255,200,150,.8) } 100% { opacity:.8; box-shadow: 0 0 35px 10px rgba(255,200,150,.6) } }
@keyframes mr-table     { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(0deg) translateY(-2px) } }
@keyframes mr-figure    { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(-1px) rotate(-1deg) } 75% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes mr-shadow    { 0%,100% { transform: scale(1) } 50% { transform: scale(1.1) translateX(2px) } }
@keyframes mr-candle    { 0% { opacity:.6; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:.8; transform: scaleY(.95) } }

.scn-sandal-castle-quarrel { background: linear-gradient(180deg, #1a1a2e 0%, #2b2b44 40%, #3a3a5a 100%), radial-gradient(ellipse at 50% 100%, #4a4a6a 0%, transparent 70%); position: relative; overflow: hidden; width: 100%; height: 100%; }
.scn-sandal-castle-quarrel .sc-bg       { position: absolute; inset: 0; background: linear-gradient(90deg, #1c1c32 0%, #2a2a48 50%, #1c1c32 100%); }
.scn-sandal-castle-quarrel .sc-floor    { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a42 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-sandal-castle-quarrel .sc-pillar-l { position: absolute; top: 0; left: 5%; width: 20px; height: 100%; background: linear-gradient(90deg, #4a4a6a 0%, #6a6a8a 50%, #4a4a6a 100%); box-shadow: 0 0 40px rgba(0,0,0,.3); }
.scn-sandal-castle-quarrel .sc-pillar-r { position: absolute; top: 0; right: 5%; width: 20px; height: 100%; background: linear-gradient(90deg, #4a4a6a 0%, #6a6a8a 50%, #4a4a6a 100%); box-shadow: 0 0 40px rgba(0,0,0,.3); }
.scn-sandal-castle-quarrel .sc-table    { position: absolute; bottom: 20%; left: 50%; width: 140px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,.5); }
.scn-sandal-castle-quarrel .sc-figure-1 { position: absolute; bottom: 22%; left: 30%; width: 35px; height: 65px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-fig1 3s ease-in-out infinite; }
.scn-sandal-castle-quarrel .sc-figure-2 { position: absolute; bottom: 22%; right: 30%; width: 35px; height: 65px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-fig2 3.5s ease-in-out infinite; }
.scn-sandal-castle-quarrel .sc-torch    { position: absolute; top: 15%; left: 50%; width: 6px; height: 20px; transform: translateX(-50%); background: linear-gradient(180deg, #e8a040 0%, #b87020 100%); border-radius: 2px; box-shadow: 0 0 30px 10px rgba(232,160,64,.5); animation: sc-torch 2s ease-in-out infinite alternate; }
@keyframes sc-fig1  { 0% { transform: translateY(0) rotate(2deg) } 25% { transform: translateY(-2px) rotate(-3deg) } 50% { transform: translateY(-1px) rotate(0deg) } 75% { transform: translateY(-3px) rotate(4deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes sc-fig2  { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-3px) rotate(3deg) } 60% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes sc-torch { 0% { opacity:.6; transform: scaleY(1) translateX(-50%) } 50% { opacity:1; transform: scaleY(1.1) translateX(-50%) } 100% { opacity:.7; transform: scaleY(.9) translateX(-50%) } }

.scn-york-prepares-battle { background: linear-gradient(180deg, #2c1e14 0%, #4a3828 50%, #6a5038 100%), radial-gradient(ellipse at 50% 100%, #8a6850 0%, transparent 70%); position: relative; overflow: hidden; width: 100%; height: 100%; }
.scn-york-prepares-battle .yp-bg     { position: absolute; inset: 0; background: linear-gradient(180deg, #1c120a 0%, #2c1e14 100%); }
.scn-york-prepares-battle .yp-floor  { position: absolute; bottom: 0; left: 0; right: 0; height: 28%; background: linear-gradient(180deg, #4a3828 0%, #3a2a1e 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-york-prepares-battle .yp-table  { position: absolute; bottom: 20%; left: 50%; width: 160px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5038 0%, #4a3828 100%); border-radius: 6px; box-shadow: 0 8px 16px rgba(0,0,0,.4); }
.scn-york-prepares-battle .yp-york   { position: absolute; bottom: 24%; left: 25%; width: 40px; height: 68px; background: linear-gradient(180deg, #2c1e14 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: yp-york 5s ease-in-out infinite; }
.scn-york-prepares-battle .yp-richard { position: absolute; bottom: 22%; right: 20%; width: 36px; height: 62px; background: linear-gradient(180deg, #1c120a 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: yp-richard 6s ease-in-out infinite; }
.scn-york-prepares-battle .yp-edward { position: absolute; bottom: 24%; left: 60%; width: 38px; height: 65px; background: linear-gradient(180deg, #2c1e14 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: yp-edward 4s ease-in-out infinite; }
.scn-york-prepares-battle .yp-candle  { position: absolute; bottom: 38%; left: 50%; width: 6px; height: 14px; transform: translateX(-50%); background: linear-gradient(180deg, #f0c040 0%, #c09020 100%); border-radius: 1px; box-shadow: 0 0 24px 8px rgba(240,192,64,.5); animation: yp-candle 2.5s ease-in-out infinite alternate; }
@keyframes yp-york    { 0% { transform: translateY(0) rotate(-1deg) } 30% { transform: translateY(-2px) rotate(2deg) } 60% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes yp-richard { 0% { transform: translateY(0) rotate(0) } 40% { transform: translateY(-3px) rotate(-3deg) } 80% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes yp-edward  { 0% { transform: translateY(0) rotate(2deg) } 25% { transform: translateY(-2px) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(0) } 75% { transform: translateY(-3px) rotate(3deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes yp-candle  { 0% { opacity:.5; transform: scaleY(1) translateX(-50%) } 50% { opacity:1; transform: scaleY(1.08) translateX(-50%) } 100% { opacity:.6; transform: scaleY(.92) translateX(-50%) } }

.scn-clifford-kills-rutland { background: linear-gradient(180deg, #3a4045 0%, #4a555b 40%, #5c686c 100%), radial-gradient(ellipse at 50% 100%, #6a7a7e 0%, transparent 70%); position: relative; overflow: hidden; width: 100%; height: 100%; }
.scn-clifford-kills-rutland .ckr-sky     { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #4a5055 0%, #6a7277 100%); animation: ckr-sky 20s ease-in-out infinite alternate; }
.scn-clifford-kills-rutland .ckr-ground  { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a4042 0%, #2a3033 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-clifford-kills-rutland .ckr-clifford { position: absolute; bottom: 20%; left: 20%; width: 55px; height: 90px; background: linear-gradient(180deg, #1c1e20 0%, #0a0c0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ckr-clifford 8s ease-in-out infinite; }
.scn-clifford-kills-rutland .ckr-rutland  { position: absolute; bottom: 22%; left: 50%; width: 30px; height: 50px; background: linear-gradient(180deg, #3a3e42 0%, #1c1e20 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ckr-rutland 6s ease-in-out infinite; }
.scn-clifford-kills-rutland .ckr-tree    { position: absolute; top: 5%; right: 10%; width: 14px; height: 60%; background: linear-gradient(180deg, #2a2e30 0%, #1a1c1e 100%); border-radius: 4px; transform: rotate(5deg); box-shadow: 0 0 20px rgba(0,0,0,.3); }
.scn-clifford-kills-rutland .ckr-blood   { position: absolute; bottom: 25%; left: 45%; width: 20px; height: 8px; background: radial-gradient(ellipse, #7a3a3a 0%, #5a2a2a 70%); border-radius: 50%; filter: blur(2px); animation: ckr-blood 12s ease-in-out infinite; }
@keyframes ckr-sky      { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ckr-clifford { 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 ckr-rutland  { 0% { transform: translateY(0) rotate(0); opacity:.8 } 25% { transform: translateY(-3px) rotate(-3deg); opacity:.6 } 50% { transform: translateY(-1px) rotate(0); opacity:.4 } 75% { transform: translateY(-5px) rotate(2deg); opacity:.2 } 100% { transform: translateY(0) rotate(0); opacity:0 } }
@keyframes ckr-blood    { 0%,100% { opacity:.5; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } }

.scn-parliament-opening-somerset-head {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #5a4a2a 30%, #8a7a4a 60%, #5a4a2a 100%),
    radial-gradient(ellipse at 70% 30%, #c0a060 0%, transparent 50%);
}
.scn-parliament-opening-somerset-head .bg-arches {
  position: absolute; inset: 0 0 20% 0;
  background: repeating-linear-gradient(90deg, transparent 0, transparent 12%, #4a3a1a 12%, #4a3a1a 13%, transparent 13%, transparent 25%);
  opacity: 0.5;
  animation: po-arches 20s ease-in-out infinite alternate;
}
.scn-parliament-opening-somerset-head .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: po-floor 10s ease-in-out infinite;
}
.scn-parliament-opening-somerset-head .throne {
  position: absolute; bottom: 20%; left: 45%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #7a5a2a 0%, #4a2a0a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  transform: translateX(-50%);
  animation: po-throne 8s ease-in-out infinite;
}
.scn-parliament-opening-somerset-head .figure {
  position: absolute; bottom: 22%; left: 48%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: 50% 100%;
  animation: po-figure-throw 4s ease-in-out infinite;
}
.scn-parliament-opening-somerset-head .head {
  position: absolute; bottom: 32%; left: 52%; width: 14px; height: 16px;
  background: radial-gradient(circle, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.6);
  animation: po-head-drop 4s ease-in-out infinite;
}
.scn-parliament-opening-somerset-head .window {
  position: absolute; top: 8%; right: 20%; width: 30px; height: 50px;
  background: radial-gradient(circle, #ffe0a0 0%, #c8a060 60%, transparent 100%);
  border-radius: 10%;
  box-shadow: 0 0 40px 20px rgba(255,224,160,0.3);
  animation: po-window-pulse 6s ease-in-out infinite alternate;
}
.scn-parliament-opening-somerset-head .lightbeam {
  position: absolute; top: 10%; right: 18%; width: 40px; height: 100%;
  background: linear-gradient(180deg, rgba(255,224,160,0.4) 0%, rgba(255,224,160,0) 100%);
  transform: rotate(15deg);
  animation: po-beam-sweep 8s ease-in-out infinite alternate;
}
@keyframes po-arches { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.5; } }
@keyframes po-floor { 0% { box-shadow: inset 0 10px 30px rgba(0,0,0,0.6); } 50% { box-shadow: inset 0 8px 20px rgba(0,0,0,0.4); } 100% { box-shadow: inset 0 10px 30px rgba(0,0,0,0.6); } }
@keyframes po-throne { 0%, 100% { transform: translateX(-50%); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes po-figure-throw {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-4px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes po-head-drop {
  0% { transform: translateY(-20px) scale(0.8); opacity: 0.5; }
  50% { transform: translateY(0) scale(1); opacity: 1; }
  100% { transform: translateY(-10px) scale(0.9); opacity: 0.8; }
}
@keyframes po-window-pulse {
  0% { box-shadow: 0 0 30px 10px rgba(255,224,160,0.2); opacity: 0.7; }
  50% { box-shadow: 0 0 60px 20px rgba(255,224,160,0.5); opacity: 1; }
  100% { box-shadow: 0 0 40px 15px rgba(255,224,160,0.3); opacity: 0.8; }
}
@keyframes po-beam-sweep {
  0% { transform: rotate(10deg) scaleX(1); opacity: 0.3; }
  50% { transform: rotate(20deg) scaleX(1.2); opacity: 0.6; }
  100% { transform: rotate(15deg) scaleX(1); opacity: 0.4; }
}

.scn-warwick-s-standing-vow {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #6a4a2a 40%, #4a3a1a 100%),
    radial-gradient(ellipse at 50% 100%, #8a6a3a 0%, transparent 60%);
}
.scn-warwick-s-standing-vow .bg-columns {
  position: absolute; inset: 0 0 15% 0;
  background: repeating-linear-gradient(90deg, transparent 0, transparent 5%, #5a4a2a 5%, #5a4a2a 6%, transparent 6%, transparent 15%);
  opacity: 0.4;
  animation: wa-columns 30s linear infinite;
}
.scn-warwick-s-standing-vow .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #5a4a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: wa-floor 12s ease-in-out infinite;
}
.scn-warwick-s-standing-vow .warwick {
  position: absolute; bottom: 17%; left: 40%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: 50% 100%;
  animation: wa-warwick-vow 5s ease-in-out infinite;
}
.scn-warwick-s-standing-vow .norfolk {
  position: absolute; bottom: 17%; left: 55%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%;
  transform-origin: 50% 100%;
  animation: wa-norfolk-nod 6s ease-in-out infinite;
}
.scn-warwick-s-standing-vow .banner {
  position: absolute; top: 10%; left: 35%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #a06030 0%, #704020 100%);
  border-radius: 0 0 10% 10%;
  clip-path: polygon(0 0, 100% 0, 100% 85%, 50% 100%, 0 85%);
  animation: wa-banner-wave 4s ease-in-out infinite alternate;
}
.scn-warwick-s-standing-vow .torch {
  position: absolute; top: 15%; right: 30%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  animation: wa-torch-glow 2s ease-in-out infinite;
}
.scn-warwick-s-standing-vow .glow {
  position: absolute; top: 10%; right: 28%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: wa-glow-pulse 3s ease-in-out infinite alternate;
}
@keyframes wa-columns { 0% { background-position: 0 0; } 100% { background-position: 50px 0; } }
@keyframes wa-floor { 0% { box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); } 50% { box-shadow: inset 0 6px 10px rgba(0,0,0,0.3); } 100% { box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); } }
@keyframes wa-warwick-vow {
  0% { transform: rotate(-10deg) translateY(0); }
  30% { transform: rotate(15deg) translateY(-5px); }
  70% { transform: rotate(-5deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes wa-norfolk-nod {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(5deg); }
  50% { transform: rotate(-5deg); }
  75% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes wa-banner-wave {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes wa-torch-glow {
  0% { box-shadow: 0 0 5px 2px #ffa040; }
  50% { box-shadow: 0 0 15px 5px #ffa040; }
  100% { box-shadow: 0 0 8px 3px #ffa040; }
}
@keyframes wa-glow-pulse {
  0% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.9); }
}

.scn-king-henry-enters-parliament {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #5a4a2a 40%, #4a3a1a 100%),
    radial-gradient(ellipse at 30% 20%, #c0a060 0%, transparent 50%);
}
.scn-king-henry-enters-parliament .bg-wall {
  position: absolute; inset: 0 0 10% 0;
  background: repeating-linear-gradient(0deg, transparent 0, transparent 10%, #4a3a1a 10%, #4a3a1a 11%, transparent 11%, transparent 20%);
  opacity: 0.3;
  animation: he-wall 25s linear infinite;
}
.scn-king-henry-enters-parliament .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #5a4a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.6);
  animation: he-floor 14s ease-in-out infinite;
}
.scn-king-henry-enters-parliament .throne {
  position: absolute; bottom: 12%; left: 55%; width: 55px; height: 75px;
  background: linear-gradient(180deg, #8a6a3a 0%, #4a2a0a 100%);
  border-radius: 15% 15% 5% 5%; box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  transform: translateX(-50%);
  animation: he-throne 9s ease-in-out infinite;
}
.scn-king-henry-enters-parliament .henry {
  position: absolute; bottom: 14%; left: 30%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 45% 45% 25% 25% / 60% 60% 25% 25%;
  animation: he-henry-enter 6s ease-in-out infinite;
}
.scn-king-henry-enters-parliament .warwick {
  position: absolute; bottom: 14%; left: 50%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%;
  animation: he-warwick-bow 7s ease-in-out infinite;
}
.scn-king-henry-enters-parliament .northumberland {
  position: absolute; bottom: 14%; left: 65%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%;
  animation: he-northumberland-gesture 5s ease-in-out infinite;
}
.scn-king-henry-enters-parliament .clifford {
  position: absolute; bottom: 14%; left: 72%; width: 18px; height: 46px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%;
  animation: he-clifford-mourn 8s ease-in-out infinite;
}
@keyframes he-wall { 0% { background-position: 0 0; } 100% { background-position: 0 30px; } }
@keyframes he-floor { 0% { box-shadow: inset 0 6px 15px rgba(0,0,0,0.6); } 50% { box-shadow: inset 0 4px 10px rgba(0,0,0,0.4); } 100% { box-shadow: inset 0 6px 15px rgba(0,0,0,0.6); } }
@keyframes he-throne { 0%, 100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes he-henry-enter {
  0% { transform: translateX(-30px) rotate(-3deg); opacity: 0.7; }
  50% { transform: translateX(0) rotate(0deg); opacity: 1; }
  100% { transform: translateX(10px) rotate(2deg); opacity: 0.9; }
}
@keyframes he-warwick-bow {
  0% { transform: rotate(0deg); }
  30% { transform: rotate(10deg); }
  60% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes he-northumberland-gesture {
  0% { transform: rotate(-5deg); }
  25% { transform: rotate(10deg); }
  50% { transform: rotate(-10deg); }
  75% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes he-clifford-mourn {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.95); }
  100% { transform: scaleY(1); }
}

.scn-york-claims-crown {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #6a4a2a 40%, #4a3a1a 100%),
    radial-gradient(ellipse at 40% 30%, #c0a060 0%, transparent 60%);
}
.scn-york-claims-crown .bg-chamber {
  position: absolute; inset: 0 0 12% 0;
  background: repeating-linear-gradient(90deg, transparent 0, transparent 8%, #5a4a2a 8%, #5a4a2a 9%, transparent 9%, transparent 18%);
  opacity: 0.4;
  animation: yo-chamber 35s linear infinite;
}
.scn-york-claims-crown .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #5a4a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: yo-floor 15s ease-in-out infinite;
}
.scn-york-claims-crown .york {
  position: absolute; bottom: 14%; left: 48%; width: 22px; height: 54px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 45% 45% 25% 25% / 60% 60% 25% 25%;
  transform-origin: 50% 100%;
  animation: yo-york-raise 5s ease-in-out infinite;
}
.scn-york-claims-crown .crown {
  position: absolute; bottom: 38%; left: 48%; width: 18px; height: 12px;
  background: radial-gradient(circle, #e0b060 0%, #b08040 100%);
  clip-path: polygon(0 100%, 20% 0, 40% 100%, 60% 0, 80% 100%, 100% 0, 100% 100%);
  animation: yo-crown-glow 6s ease-in-out infinite alternate;
}
.scn-york-claims-crown .westmoreland {
  position: absolute; bottom: 14%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%;
  animation: yo-westmoreland-point 7s ease-in-out infinite;
}
.scn-york-claims-crown .northumberland {
  position: absolute; bottom: 14%; left: 60%; width: 21px; height: 52px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%;
  animation: yo-northumberland-sword 8s ease-in-out infinite;
}
.scn-york-claims-crown .chair {
  position: absolute; bottom: 12%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  transform: scale(0.95);
  animation: yo-chair 10s ease-in-out infinite;
}
@keyframes yo-chamber { 0% { background-position: 0 0; } 100% { background-position: 60px 0; } }
@keyframes yo-floor { 0% { box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); } 50% { box-shadow: inset 0 6px 10px rgba(0,0,0,0.3); } 100% { box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); } }
@keyframes yo-york-raise {
  0% { transform: rotate(-5deg) translateY(0); }
  30% { transform: rotate(10deg) translateY(-6px); }
  70% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes yo-crown-glow {
  0% { filter: brightness(0.8); transform: scale(0.9); }
  50% { filter: brightness(1.3); transform: scale(1.1); }
  100% { filter: brightness(1); transform: scale(1); }
}
@keyframes yo-westmoreland-point {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(8deg); }
  50% { transform: rotate(-5deg); }
  75% { transform: rotate(5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes yo-northumberland-sword {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-5px) rotate(-10deg); }
  50% { transform: translateX(0) rotate(5deg); }
  75% { transform: translateX(3px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes yo-chair {
  0% { transform: scale(0.95); }
  50% { transform: scale(1.02); }
  100% { transform: scale(0.95); }
}

.scn-warwick-plans-surprise{background:linear-gradient(160deg,#3a3a4a 0%,#2a2a3a 60%,#1a1a2a 100%),radial-gradient(ellipse at 30% 20%,#4a4a5a 0%,transparent 70%)}
.scn-warwick-plans-surprise .tent{position:absolute;inset:5% 15% 25%;background:linear-gradient(180deg,#5a5a5a 0%,#3a3a3a 100%);border-radius:40% 40% 10% 10%;box-shadow:0 -8px 20px rgba(0,0,0,.6);animation:wps-t 14s ease-in-out infinite alternate}
.scn-warwick-plans-surprise .table{position:absolute;bottom:35%;left:25%;width:50%;height:16%;background:linear-gradient(180deg,#6b5b3a 0%,#4a3a2a 100%);border-radius:4% 4% 2% 2%;box-shadow:0 4px 10px rgba(0,0,0,.4)}
.scn-warwick-plans-surprise .map{position:absolute;bottom:37%;left:32%;width:36%;height:10%;background:linear-gradient(135deg,#c8b08a 0%,#a08060 50%,#c8b08a 100%);border-radius:2%;clip-path:polygon(0 0,100% 0,95% 100%,5% 100%);animation:wps-m 6s ease-in-out infinite}
.scn-warwick-plans-surprise .warwick{position:absolute;bottom:35%;left:22%;width:10%;height:28%;background:linear-gradient(180deg,#2a2a3a 0%,#15151a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:wps-w 3s ease-in-out infinite alternate}
.scn-warwick-plans-surprise .clarence{position:absolute;bottom:35%;right:22%;width:10%;height:28%;background:linear-gradient(180deg,#3a2a2a 0%,#1a1a1a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:wps-c 3.6s ease-in-out infinite alternate}
.scn-warwick-plans-surprise .candle{position:absolute;bottom:40%;left:48%;width:2%;height:10%;background:linear-gradient(180deg,#f0e0c0 0%,#a08060 100%);border-radius:20%;box-shadow:0 0 12px 4px rgba(240,200,160,.5);animation:wps-cl 2s ease-in-out infinite alternate}
@keyframes wps-t{0%{opacity:.85;transform:scale(1)}50%{opacity:.95;transform:scale(1.01)}100%{opacity:.85;transform:scale(1)}}
@keyframes wps-m{0%{transform:scale(1) rotate(0deg)}50%{transform:scale(1.02) rotate(0.5deg)}100%{transform:scale(1) rotate(0deg)}}
@keyframes wps-w{0%{transform:rotate(-3deg) scale(1)}50%{transform:rotate(1deg) scale(1.02)}100%{transform:rotate(-2deg) scale(1)}}
@keyframes wps-c{0%{transform:rotate(2deg) scale(1)}50%{transform:rotate(-1deg) scale(1.02)}100%{transform:rotate(1deg) scale(1)}}
@keyframes wps-cl{0%{box-shadow:0 0 8px 2px rgba(240,200,160,.4);opacity:.6}50%{box-shadow:0 0 18px 6px rgba(240,200,160,.8);opacity:1}100%{box-shadow:0 0 10px 3px rgba(240,200,160,.5);opacity:.7}}

.scn-item-halberds{background:linear-gradient(180deg,#0d0d1a 0%,#1a1a2e 40%,#2a2a40 100%),radial-gradient(ellipse at 50% 80%,#2d2d44 0%,transparent 70%)}
.scn-item-halberds .tent{position:absolute;bottom:20%;left:10%;width:40%;height:50%;background:linear-gradient(160deg,#3a3a3a 0%,#1a1a1a 100%);border-radius:30% 30% 5% 5%;box-shadow:-8px 0 20px rgba(0,0,0,.7);animation:ith-t 20s ease-in-out infinite alternate}
.scn-item-halberds .moon{position:absolute;top:8%;right:18%;width:14%;height:14%;background:radial-gradient(circle at 40% 40%,#e0e8f0 0%,#b0b8c8 100%);border-radius:50%;box-shadow:0 0 30px 12px rgba(200,210,230,.3);animation:ith-m 30s linear infinite}
.scn-item-halberds .watchman{position:absolute;bottom:18%;left:30%;width:8%;height:32%;background:linear-gradient(180deg,#1a1a2a 0%,#0a0a15 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:ith-w 4s ease-in-out infinite alternate}
.scn-item-halberds .halberd{position:absolute;bottom:20%;left:30%;width:2%;height:50%;background:linear-gradient(180deg,#6a5a3a 0%,#3a2a1a 100%);border-radius:10% / 10%;animation:ith-h 2s ease-in-out infinite}
.scn-item-halberds .halberd::before{content:'';position:absolute;top:-8%;left:-6%;width:14%;height:8%;background:#6a5a3a;clip-path:polygon(50% 0%,0% 100%,100% 100%);transform:rotate(180deg)}
.scn-item-halberds .ground{position:absolute;bottom:0;left:0;right:0;height:20%;background:linear-gradient(0deg,#1a1a1a 0%,#2a2a2a 100%);box-shadow:inset 0 10px 30px rgba(0,0,0,.5)}
@keyframes ith-t{0%{transform:scale(1);opacity:.8}50%{transform:scale(1.02);opacity:.95}100%{transform:scale(1);opacity:.8}}
@keyframes ith-m{0%{transform:translateX(-10px)}50%{transform:translateX(10px)}100%{transform:translateX(-10px)}}
@keyframes ith-w{0%{transform:rotate(-4deg)}50%{transform:rotate(2deg)}100%{transform:rotate(-3deg)}}
@keyframes ith-h{0%{transform:rotate(0deg)}50%{transform:rotate(3deg)}100%{transform:rotate(0deg)}}

.scn-item-crown{background:linear-gradient(180deg,#0a0a12 0%,#15151f 40%,#1f1f2f 100%),radial-gradient(ellipse at 50% 90%,#2a2a3a 0%,transparent 70%)}
.scn-item-crown .tent{position:absolute;bottom:15%;left:8%;width:50%;height:55%;background:linear-gradient(170deg,#3a3a3a 0%,#151515 100%);border-radius:20% 20% 5% 5%;box-shadow:8px 4px 20px rgba(0,0,0,.8);animation:itc-t 18s ease-in-out infinite alternate}
.scn-item-crown .edward{position:absolute;bottom:18%;left:25%;width:8%;height:30%;background:linear-gradient(180deg,#2a2a3a 0%,#0a0a1a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform:rotate(-5deg);animation:itc-e 3s ease-in-out infinite}
.scn-item-crown .warwick{position:absolute;bottom:18%;right:20%;width:9%;height:34%;background:linear-gradient(180deg,#1a1a2a 0%,#050510 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:itc-w 4.2s ease-in-out infinite alternate}
.scn-item-crown .crown{position:absolute;bottom:25%;left:32%;width:6%;height:5%;background:radial-gradient(circle at 50% 60%,#f0d080 0%,#c89850 70%);border-radius:50%;box-shadow:0 0 15px 4px rgba(240,208,128,.6);animation:itc-cr 2s ease-in-out infinite alternate}
.scn-item-crown .moon{position:absolute;top:8%;left:12%;width:12%;height:12%;background:radial-gradient(circle at 50% 50%,#c0c8d0 0%,#808890 100%);border-radius:50%;box-shadow:0 0 40px 16px rgba(160,170,180,.2);animation:itc-m 25s linear infinite}
@keyframes itc-t{0%{opacity:.7;transform:scale(1) skew(0deg)}50%{opacity:.9;transform:scale(1.02) skew(1deg)}100%{opacity:.7;transform:scale(1) skew(0deg)}}
@keyframes itc-e{0%{transform:rotate(-5deg) translateY(0)}50%{transform:rotate(-3deg) translateY(-3px)}100%{transform:rotate(-5deg) translateY(0)}}
@keyframes itc-w{0%{transform:rotate(2deg) scale(1)}50%{transform:rotate(-2deg) scale(1.03)}100%{transform:rotate(1deg) scale(1)}}
@keyframes itc-cr{0%{box-shadow:0 0 10px 2px rgba(240,208,128,.4)}50%{box-shadow:0 0 25px 8px rgba(240,208,128,.8)}100%{box-shadow:0 0 12px 3px rgba(240,208,128,.5)}}
@keyframes itc-m{0%{transform:translateX(-5px)}50%{transform:translateX(5px)}100%{transform:translateX(-5px)}}

.scn-london-palace-rivers{background:linear-gradient(180deg,#f5f0e0 0%,#e8e0c8 40%,#d8d0b8 100%),radial-gradient(ellipse at 50% 100%,#fff8e0 0%,transparent 70%)}
.scn-london-palace-rivers .wall{position:absolute;inset:0 0 30% 0;background:linear-gradient(180deg,#e8e0c8 0%,#c8c0a8 100%);border-bottom:2px solid #b0a890}
.scn-london-palace-rivers .floor{position:absolute;bottom:0;left:0;right:0;height:30%;background:linear-gradient(180deg,#c8b898 0%,#a09070 100%);box-shadow:inset 0 20px 40px rgba(0,0,0,.15)}
.scn-london-palace-rivers .column{position:absolute;bottom:30%;width:6%;height:40%;background:linear-gradient(90deg,#d8d0b8 0%,#e8e0c8 30%,#c8c0a8 100%);border-radius:4%;box-shadow:2px 0 10px rgba(0,0,0,.1)}
.scn-london-palace-rivers .column:first-of-type{left:15%}
.scn-london-palace-rivers .column:last-of-type{right:15%}
.scn-london-palace-rivers .queen{position:absolute;bottom:25%;left:38%;width:7%;height:25%;background:linear-gradient(180deg,#703050 0%,#401020 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:lpr-q 4s ease-in-out infinite alternate}
.scn-london-palace-rivers .rivers{position:absolute;bottom:25%;right:38%;width:7%;height:25%;background:linear-gradient(180deg,#2a4a3a 0%,#1a2a1a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:lpr-r 3.6s ease-in-out infinite alternate}
.scn-london-palace-rivers .window{position:absolute;top:15%;left:50%;width:22%;height:30%;transform:translateX(-50%);background:radial-gradient(ellipse at 50% 30%,#fff8e0 0%,#d8d0b8 100%);border:4px solid #b0a890;border-radius:8% 8% 4% 4%;box-shadow:inset 0 0 30px rgba(255,255,200,.3);animation:lpr-w 8s ease-in-out infinite alternate}
@keyframes lpr-q{0%{transform:rotate(-2deg) scale(1)}50%{transform:rotate(0deg) scale(1.02)}100%{transform:rotate(2deg) scale(1)}}
@keyframes lpr-r{0%{transform:rotate(3deg) scale(1)}50%{transform:rotate(0deg) scale(1.02)}100%{transform:rotate(-3deg) scale(1)}}
@keyframes lpr-w{0%{opacity:.85;box-shadow:inset 0 0 20px rgba(255,255,200,.2)}50%{opacity:1;box-shadow:inset 0 0 40px rgba(255,255,200,.5)}100%{opacity:.9;box-shadow:inset 0 0 25px rgba(255,255,200,.3)}}

.scn-edward-courts-lady-grey {
  background:
    linear-gradient(180deg, #d9c9a0 0%, #f0e0c0 30%, #e8d8b0 60%, #c0b080 100%),
    radial-gradient(ellipse at 70% 20%, #fdeed0 0%, transparent 60%);
}
.scn-edward-courts-lady-grey .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%);
  opacity: 0.4;
}
.scn-edward-courts-lady-grey .sun {
  position: absolute; top: 5%; right: 15%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff8e0 0%, #ffd060 50%, transparent 70%);
  border-radius: 50%;
  animation: ec-sun 6s ease-in-out infinite alternate;
}
.scn-edward-courts-lady-grey .wall {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-edward-courts-lady-grey .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #8b7a5a 0%, #b0a080 100%);
}
.scn-edward-courts-lady-grey .figure-edward {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ec-edward 4s ease-in-out infinite;
}
.scn-edward-courts-lady-grey .figure-lady {
  position: absolute; bottom: 20%; left: 60%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ec-lady 5s ease-in-out infinite;
}
.scn-edward-courts-lady-grey .shadow {
  position: absolute; bottom: 10%; left: 25%; width: 120px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  transform: skewX(-20deg);
  animation: ec-shadow 6s ease-in-out infinite alternate;
}
@keyframes ec-sun {
  0% { transform: scale(1); opacity:0.9; }
  50% { transform: scale(1.05); opacity:1; }
  100% { transform: scale(0.95); opacity:0.85; }
}
@keyframes ec-edward {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-3px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes ec-lady {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(1deg) translateY(0); }
}
@keyframes ec-shadow {
  0% { transform: skewX(-20deg) scaleX(1); opacity:0.5; }
  50% { transform: skewX(-25deg) scaleX(1.1); opacity:0.6; }
  100% { transform: skewX(-18deg) scaleX(0.9); opacity:0.4; }
}

.scn-lady-grey-rejects {
  background:
    linear-gradient(180deg, #b0a080 0%, #8b7a5a 50%, #6b5a3a 100%),
    radial-gradient(ellipse at 30% 50%, #f0d080 0%, transparent 70%);
}
.scn-lady-grey-rejects .bg-wall {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.5);
}
.scn-lady-grey-rejects .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #4a3a1a 0%, #6a5a3a 100%);
}
.scn-lady-grey-rejects .bar-left,
.scn-lady-grey-rejects .bar-right,
.scn-lady-grey-rejects .bar-mid {
  position: absolute; bottom: 25%; width: 8px; height: 55%;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 2px;
}
.scn-lady-grey-rejects .bar-left { left: 35%; animation: lr-bar 10s ease-in-out infinite; }
.scn-lady-grey-rejects .bar-mid { left: 48%; animation: lr-bar 10s ease-in-out infinite 0.5s; }
.scn-lady-grey-rejects .bar-right { left: 61%; animation: lr-bar 10s ease-in-out infinite 1s; }
.scn-lady-grey-rejects .sunbeam {
  position: absolute; top: 0; left: 40%; width: 60px; height: 120%;
  background: linear-gradient(135deg, rgba(255,220,150,0.3) 0%, transparent 70%);
  transform: rotate(20deg);
  transform-origin: top left;
  animation: lr-sunbeam 8s ease-in-out infinite alternate;
}
.scn-lady-grey-rejects .figure-lady {
  position: absolute; bottom: 25%; left: 37%; width: 22px; height: 65px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lr-lady 4s ease-in-out infinite;
}
.scn-lady-grey-rejects .figure-edward {
  position: absolute; bottom: 25%; right: 25%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lr-edward 5s ease-in-out infinite;
}
@keyframes lr-sunbeam {
  0% { opacity:0.5; transform: rotate(15deg) translateX(0); }
  50% { opacity:0.8; transform: rotate(25deg) translateX(10px); }
  100% { opacity:0.4; transform: rotate(20deg) translateX(0); }
}
@keyframes lr-lady {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-4px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes lr-edward {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(5px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes lr-bar {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}

.scn-lady-grey-sovereign-fit {
  background:
    linear-gradient(180deg, #d8c8a8 0%, #c0b090 50%, #a09070 100%),
    radial-gradient(ellipse at 50% 30%, #ffe0b0 0%, transparent 60%);
}
.scn-lady-grey-sovereign-fit .bg-palace {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, #b0a080 0%, #d0c0a0 100%);
  opacity: 0.6;
}
.scn-lady-grey-sovereign-fit .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #8b7a5a 0%, #b0a080 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.3);
}
.scn-lady-grey-sovereign-fit .throne {
  position: absolute; bottom: 38%; left: 45%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  animation: sf-throne 7s ease-in-out infinite alternate;
}
.scn-lady-grey-sovereign-fit .figure-lady {
  position: absolute; bottom: 38%; left: 30%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sf-lady 4s ease-in-out infinite;
}
.scn-lady-grey-sovereign-fit .figure-edward {
  position: absolute; bottom: 38%; left: 55%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sf-edward 5s ease-in-out infinite;
}
.scn-lady-grey-sovereign-fit .figure-gloucester {
  position: absolute; bottom: 38%; left: 15%; width: 26px; height: 70px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sf-gloucester 6s ease-in-out infinite;
}
.scn-lady-grey-sovereign-fit .window-light {
  position: absolute; top: 10%; left: 35%; width: 80px; height: 100px;
  background: linear-gradient(135deg, rgba(255,240,200,0.4) 0%, transparent 70%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  opacity: 0.6;
  animation: sf-light 8s ease-in-out infinite alternate;
}
@keyframes sf-throne {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(0.98); }
}
@keyframes sf-lady {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(0deg); }
}
@keyframes sf-edward {
  0% { transform: translateX(0); }
  50% { transform: translateX(2px); }
  100% { transform: translateX(0); }
}
@keyframes sf-gloucester {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(1deg) scale(1.02); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes sf-light {
  0% { opacity:0.4; transform: scaleX(1); }
  50% { opacity:0.8; transform: scaleX(1.1); }
  100% { opacity:0.3; transform: scaleX(0.9); }
}

.scn-gloucester-left-alone {
  background:
    linear-gradient(180deg, #b0a090 0%, #908070 50%, #706050 100%),
    radial-gradient(ellipse at 50% 30%, #d0c0b0 0%, transparent 60%);
}
.scn-gloucester-left-alone .bg-hall {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, #807060 0%, #a09080 100%);
  opacity: 0.5;
}
.scn-gloucester-left-alone .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #5a4a3a 0%, #7a6a5a 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.4);
}
.scn-gloucester-left-alone .pillar-left,
.scn-gloucester-left-alone .pillar-right {
  position: absolute; bottom: 30%; width: 30px; height: 70%;
  background: linear-gradient(90deg, #8a7a6a 0%, #6a5a4a 50%, #8a7a6a 100%);
  border-radius: 5px;
  box-shadow: 0 0 20px rgba(0,0,0,0.3);
}
.scn-gloucester-left-alone .pillar-left {
  left: 15%;
  animation: gla-pillar 15s ease-in-out infinite;
}
.scn-gloucester-left-alone .pillar-right {
  right: 15%;
  animation: gla-pillar 15s ease-in-out infinite 3s;
}
.scn-gloucester-left-alone .figure-gloucester {
  position: absolute; bottom: 25%; left: 42%; width: 28px; height: 75px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gla-figure 4s ease-in-out infinite;
}
.scn-gloucester-left-alone .shadow {
  position: absolute; bottom: 15%; left: 35%; width: 160px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  transform: skewX(-15deg);
  animation: gla-shadow 6s ease-in-out infinite alternate;
}
.scn-gloucester-left-alone .door {
  position: absolute; bottom: 30%; right: 5%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 5px 5px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: gla-door 8s ease-in-out infinite;
}
@keyframes gla-figure {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes gla-shadow {
  0% { transform: skewX(-15deg) scaleX(1); opacity:0.5; }
  50% { transform: skewX(-20deg) scaleX(1.2); opacity:0.7; }
  100% { transform: skewX(-10deg) scaleX(0.9); opacity:0.3; }
}
@keyframes gla-door {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes gla-pillar {
  0% { transform: scaleY(1) translateX(0); }
  50% { transform: scaleY(1.01) translateX(1px); }
  100% { transform: scaleY(1) translateX(0); }
}
/* end per-scene blocks */
