/* 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-bardolph-pax-condemned { background: linear-gradient(180deg, #3a2a1a 0%, #5a4030 40%, #7a6050 100%), radial-gradient(ellipse at 50% 0%, #8a7050 0%, transparent 70%); }
.scn-bardolph-pax-condemned .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.4); }
.scn-bardolph-pax-condemned .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); }
.scn-bardolph-pax-condemned .gallows { position:absolute; bottom:30%; left:50%; width:80px; height:120px; transform:translateX(-50%); background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%); border-radius: 6px 6px 0 0; box-shadow: 0 0 20px rgba(0,0,0,.6); }
.scn-bardolph-pax-condemned .noose { position:absolute; bottom:40%; left:50%; width:4px; height:60px; background: #8a7a6a; transform:translateX(-50%); animation: bp-noose 4s ease-in-out infinite; }
.scn-bardolph-pax-condemned .noose::after { content:''; position:absolute; bottom:0; left:50%; width:16px; height:16px; border-radius:50%; background: #6a5a4a; transform:translateX(-50%); }
.scn-bardolph-pax-condemned .figure-judge { position:absolute; bottom:31%; left:25%; width:30px; height:60px; background: linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; box-shadow: 0 0 10px rgba(0,0,0,.5); }
.scn-bardolph-pax-condemned .figure-bardolph { position:absolute; bottom:31%; left:55%; width:28px; height:55px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: bp-kneel 6s ease-in-out infinite; }
.scn-bardolph-pax-condemned .torch { position:absolute; bottom:50%; left:15%; width:8px; height:40px; background: linear-gradient(180deg, #b08040 0%, #6a4a2a 100%); border-radius: 4px; }
.scn-bardolph-pax-condemned .torch-glow { position:absolute; bottom:48%; left:15%; width:60px; height:60px; background: radial-gradient(circle, rgba(200,160,80,.3) 0%, transparent 70%); border-radius:50%; transform:translate(-50%, 50%); animation: bp-glows 3s ease-in-out infinite alternate; }
@keyframes bp-noose { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(4px); } }
@keyframes bp-kneel { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(3deg); } }
@keyframes bp-glows { 0% { opacity:.6; transform: translate(-50%, 50%) scale(1); } 100% { opacity:1; transform: translate(-50%, 50%) scale(1.2); } }

.scn-pistol-figo-leek { background: linear-gradient(180deg, #8a7040 0%, #b09060 40%, #d0b080 100%), radial-gradient(ellipse at 50% 100%, #c8a870 0%, transparent 70%); }
.scn-pistol-figo-leek .tavern-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #7a6a4a 0%, #9a8a6a 50%, #7a6a4a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.2); }
.scn-pistol-figo-leek .table { position:absolute; bottom:25%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.4); }
.scn-pistol-figo-leek .mug { position:absolute; bottom:32%; left:30%; width:16px; height:22px; background: linear-gradient(180deg, #c8a870 0%, #a88850 100%); border-radius: 0 0 40% 40%; box-shadow: 2px 0 4px rgba(0,0,0,.3); }
.scn-pistol-figo-leek .pistol-body { position:absolute; bottom:26%; left:45%; width:32px; height:70px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: pf-sway 5s ease-in-out infinite; }
.scn-pistol-figo-leek .pistol-arm { position:absolute; bottom:50%; left:60%; width:8px; height:40px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 40% 40% 30% 30%; transform-origin: top left; animation: pf-arm 2s linear infinite; }
.scn-pistol-figo-leek .fig-hand { position:absolute; bottom:54%; left:66%; width:14px; height:14px; background: #8a6a4a; border-radius: 50%; box-shadow: 0 0 4px rgba(0,0,0,.4); animation: pf-fig 1.6s ease-in-out infinite alternate; }
.scn-pistol-figo-leek .other-figure { position:absolute; bottom:26%; left:20%; width:30px; height:65px; background: linear-gradient(180deg, #5a5040 0%, #3a3020 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; }
.scn-pistol-figo-leek .candle { position:absolute; bottom:35%; left:70%; width:6px; height:18px; background: linear-gradient(180deg, #e0c080 0%, #b88840 100%); border-radius: 2px; animation: pf-flicker 2s ease-in-out infinite alternate; }
@keyframes pf-sway { 0%,100% { transform: rotate(0); } 50% { transform: rotate(4deg); } }
@keyframes pf-arm { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(20deg) translateX(4px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes pf-fig { 0% { transform: scale(1) rotate(0); } 100% { transform: scale(1.2) rotate(-10deg); } }
@keyframes pf-flicker { 0% { opacity:.7; transform: scaleY(1); } 100% { opacity:1; transform: scaleY(1.1); } }

.scn-gower-exposes-pistol { background: linear-gradient(180deg, #9a8860 0%, #b8a070 40%, #d0b890 100%), radial-gradient(ellipse at 50% 100%, #c8a870 0%, transparent 70%); }
.scn-gower-exposes-pistol .street-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #5a5040 0%, #7a6a5a 50%, #5a5040 100%); }
.scn-gower-exposes-pistol .house-left { position:absolute; bottom:20%; left:5%; width:35%; height:60%; background: linear-gradient(180deg, #a89870 0%, #8a7850 100%); border-radius: 6px 6px 0 0; box-shadow: -2px 0 12px rgba(0,0,0,.3); }
.scn-gower-exposes-pistol .house-right { position:absolute; bottom:20%; right:5%; width:30%; height:50%; background: linear-gradient(180deg, #a89870 0%, #8a7850 100%); border-radius: 6px 6px 0 0; box-shadow: 2px 0 12px rgba(0,0,0,.3); }
.scn-gower-exposes-pistol .pistol-figure { position:absolute; bottom:21%; left:40%; width:34px; height:72px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: ge-strut 4s ease-in-out infinite; }
.scn-gower-exposes-pistol .gower-figure { position:absolute; bottom:21%; left:55%; width:30px; height:68px; background: linear-gradient(180deg, #5a5040 0%, #3a3020 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: ge-point 2s ease-in-out infinite alternate; }
.scn-gower-exposes-pistol .gower-arm { position:absolute; bottom:50%; left:64%; width:6px; height:30px; background: #5a5040; border-radius: 40% 40% 30% 30%; transform-origin: top left; animation: ge-arm 2s ease-in-out infinite alternate; }
.scn-gower-exposes-pistol .cape { position:absolute; bottom:21%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #8a5a3a 0%, #6a3a1a 100%); border-radius: 60% 60% 30% 30% / 80% 80% 30% 30%; transform-origin: top; animation: ge-cape 5s ease-in-out infinite; }
.scn-gower-exposes-pistol .flag-banner { position:absolute; bottom:40%; right:10%; width:60px; height:30px; background: linear-gradient(180deg, #b06848 0%, #905030 100%); border-radius: 0 0 40% 40%; animation: ge-flag 6s ease-in-out infinite alternate; }
@keyframes ge-strut { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(2deg); } }
@keyframes ge-point { 0% { transform: rotate(0) translateX(0); } 100% { transform: rotate(-10deg) translateX(4px); } }
@keyframes ge-arm { 0% { transform: rotate(-40deg); } 100% { transform: rotate(20deg); } }
@keyframes ge-cape { 0%,100% { transform: rotate(0) scaleX(1); } 50% { transform: rotate(5deg) scaleX(0.9); } }
@keyframes ge-flag { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }

.scn-fluellen-king-bridge { background: linear-gradient(180deg, #7a9ab0 0%, #a0c0d0 50%, #d0e0e8 100%), radial-gradient(ellipse at 50% 0%, #b8d8e8 0%, transparent 70%); }
.scn-fluellen-king-bridge .sky { position:absolute; inset:0; background: linear-gradient(180deg, #6a8aa0 0%, #90b0c0 40%, #b0d0d8 100%); animation: fk-sky 10s ease-in-out infinite alternate; }
.scn-fluellen-king-bridge .river { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a7a8a 0%, #6a9aaa 50%, #8abaca 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.1); animation: fk-river 8s ease-in-out infinite alternate; }
.scn-fluellen-king-bridge .bridge-arch { position:absolute; bottom:20%; left:20%; right:20%; height:25%; background: linear-gradient(180deg, #6a7a6a 0%, #8a9a8a 50%, #6a7a6a 100%); border-radius: 0 0 50% 50% / 0 0 80% 80%; box-shadow: 0 8px 12px rgba(0,0,0,.3); }
.scn-fluellen-king-bridge .bridge-deck { position:absolute; bottom:35%; left:18%; right:18%; height:8%; background: linear-gradient(180deg, #9aaa9a 0%, #7a8a7a 100%); border-radius: 2px; }
.scn-fluellen-king-bridge .fluellen-figure { position:absolute; bottom:36%; left:30%; width:28px; height:60px; background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: fk-stand 6s ease-in-out infinite; }
.scn-fluellen-king-bridge .flag { position:absolute; bottom:54%; left:28%; width:40px; height:24px; background: linear-gradient(180deg, #8a6848 0%, #6a4830 100%); border-radius: 0 40% 40% 0; transform-origin: left; animation: fk-flag 4s ease-in-out infinite alternate; }
.scn-fluellen-king-bridge .sunburst { position:absolute; top:8%; left:60%; width:80px; height:80px; background: radial-gradient(circle, rgba(240,220,180,.6) 0%, transparent 70%); border-radius:50%; animation: fk-sun 12s ease-in-out infinite alternate; }
.scn-fluellen-king-bridge .cloud-drift { position:absolute; top:10%; left:20%; width:100px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter: blur(8px); animation: fk-drift 30s linear infinite; }
@keyframes fk-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes fk-river { 0% { background-position: 0 0; transform: scaleY(1); } 50% { background-position: 20px 0; transform: scaleY(1.01); } 100% { background-position: 0 0; transform: scaleY(1); } }
@keyframes fk-stand { 0%,100% { transform: translateX(0); } 50% { transform: translateX(2px); } }
@keyframes fk-flag { 0% { transform: rotate(0) scaleX(1); } 100% { transform: rotate(10deg) scaleX(0.9); } }
@keyframes fk-sun { 0% { transform: translate(0, 0) scale(1); opacity:.6; } 100% { transform: translate(-10px, -5px) scale(1.1); opacity:.8; } }
@keyframes fk-drift { 0% { transform: translateX(-100px); } 100% { transform: translateX(120vw); } }

.scn-ante-chamber-the-strawberry {
  background:
    linear-gradient(180deg, #e8dcc0 0%, #d4b888 40%, #a07848 100%),
    radial-gradient(ellipse at 70% 30%, #f0e0b0 0%, transparent 60%);
}
.scn-ante-chamber-the-strawberry .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d4b888 0%, #b09060 100%); opacity: 0.6;
}
.scn-ante-chamber-the-strawberry .window-frame {
  position: absolute; top: 10%; left: 30%; width: 30%; height: 50%; background: #6a4a2a; border-radius: 8px; box-shadow: inset 0 0 0 4px #4a2a1a, 0 8px 20px rgba(0,0,0,0.3);
}
.scn-ante-chamber-the-strawberry .window-pane {
  position: absolute; top: 12%; left: 32%; width: 26%; height: 46%; background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 100%); border-radius: 4px; opacity: 0.9; box-shadow: inset 0 0 40px #fff8e0, 0 0 20px rgba(240,232,208,0.6);
  animation: as-window-light 6s ease-in-out infinite alternate;
}
.scn-ante-chamber-the-strawberry .sunbeam {
  position: absolute; top: 12%; left: 32%; width: 26%; height: 100%; background: linear-gradient(135deg, rgba(255,240,200,0.25) 0%, transparent 70%);
  transform: skewX(-15deg); filter: blur(6px); animation: as-sunbeam 8s linear infinite;
}
.scn-ante-chamber-the-strawberry .pot {
  position: absolute; bottom: 30%; left: 40%; width: 12%; height: 15%; background: linear-gradient(180deg, #c07040 0%, #8a5020 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
}
.scn-ante-chamber-the-strawberry .strawberry {
  position: absolute; bottom: 44%; left: 44%; width: 4%; height: 4%; background: radial-gradient(circle, #c8553d 0%, #a0461a 70%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(200,85,61,0.5);
  animation: as-berry 4s ease-in-out infinite;
}
.scn-ante-chamber-the-strawberry .vine-left {
  position: absolute; bottom: 42%; left: 38%; width: 8%; height: 2%; background: linear-gradient(90deg, #3a5a2a 0%, #5a7a3a 100%); border-radius: 50% / 40%; transform: rotate(-20deg); animation: as-vine 6s ease-in-out infinite alternate;
}
.scn-ante-chamber-the-strawberry .vine-right {
  position: absolute; bottom: 40%; left: 46%; width: 8%; height: 2%; background: linear-gradient(90deg, #5a7a3a 0%, #3a5a2a 100%); border-radius: 50% / 40%; transform: rotate(25deg); animation: as-vine 6s ease-in-out infinite alternate-reverse;
}
@keyframes as-window-light {
  0% { opacity: 0.85; box-shadow: inset 0 0 30px #fff8e0; }
  50% { opacity: 1; box-shadow: inset 0 0 50px #fff8e0; }
  100% { opacity: 0.9; box-shadow: inset 0 0 20px #fff8e0; }
}
@keyframes as-sunbeam {
  0% { transform: translateX(-5%) skewX(-15deg); opacity: 0.4; }
  25% { transform: translateX(0) skewX(-15deg); opacity: 0.7; }
  50% { transform: translateX(5%) skewX(-15deg); opacity: 0.5; }
  75% { transform: translateX(0) skewX(-15deg); opacity: 0.8; }
  100% { transform: translateX(-5%) skewX(-15deg); opacity: 0.4; }
}
@keyframes as-berry {
  0% { transform: scale(1); }
  50% { transform: scale(1.2) rotate(10deg); }
  100% { transform: scale(1); }
}
@keyframes as-vine {
  0% { transform: rotate(-20deg) scaleX(1); }
  50% { transform: rotate(-15deg) scaleX(1.1); }
  100% { transform: rotate(-20deg) scaleX(1); }
}

.scn-ante-chamber-king-indifferent {
  background:
    linear-gradient(180deg, #9aa8b8 0%, #687888 40%, #384858 100%),
    radial-gradient(ellipse at 50% 0%, #b0c0d0 0%, transparent 70%);
}
.scn-ante-chamber-king-indifferent .back-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #687888 0%, #485868 100%); opacity: 0.8;
}
.scn-ante-chamber-king-indifferent .window-frame {
  position: absolute; top: 5%; left: 10%; width: 25%; height: 60%; background: #5a4a3a; border-radius: 8px; box-shadow: inset 0 0 0 4px #3a2a1a, 0 8px 20px rgba(0,0,0,0.3);
}
.scn-ante-chamber-king-indifferent .window-pane {
  position: absolute; top: 7%; left: 12%; width: 21%; height: 56%; background: linear-gradient(180deg, #d0d8e8 0%, #b0b8c8 100%); border-radius: 4px; opacity: 0.7; box-shadow: inset 0 0 40px #e8f0ff, 0 0 20px rgba(208,216,232,0.5);
  animation: ak-window 10s ease-in-out infinite alternate;
}
.scn-ante-chamber-king-indifferent .throne {
  position: absolute; bottom: 10%; left: 50%; width: 25%; height: 40%; background: linear-gradient(180deg, #6a5030 0%, #3a2a18 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; transform: translateX(-50%);
}
.scn-ante-chamber-king-indifferent .king {
  position: absolute; bottom: 22%; left: 50%; width: 12%; height: 30%; transform: translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ak-king-breath 6s ease-in-out infinite;
}
.scn-ante-chamber-king-indifferent .royal-robe {
  position: absolute; bottom: 10%; left: 44%; width: 22%; height: 20%; background: linear-gradient(180deg, #4a2a4a 0%, #2a1a2a 100%); border-radius: 10% 10% 50% 50% / 20% 20% 60% 60%; transform: rotate(5deg);
  animation: ak-robe 12s ease-in-out infinite alternate;
}
.scn-ante-chamber-king-indifferent .crown-glow {
  position: absolute; bottom: 50%; left: 50%; width: 8%; height: 6%; transform: translateX(-50%); background: radial-gradient(circle, #d0b060 0%, #b09040 60%, transparent 100%); border-radius: 50%;
  animation: ak-crown 4s ease-in-out infinite alternate;
}
.scn-ante-chamber-king-indifferent .dust-mote {
  position: absolute; top: 30%; left: 20%; width: 1%; height: 1%; background: rgba(255,255,255,0.4); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(255,255,255,0.3);
  animation: ak-mote 15s linear infinite;
}
@keyframes ak-window {
  0% { opacity: 0.6; box-shadow: inset 0 0 30px #e8f0ff; }
  50% { opacity: 0.8; box-shadow: inset 0 0 50px #e8f0ff; }
  100% { opacity: 0.7; box-shadow: inset 0 0 20px #e8f0ff; }
}
@keyframes ak-king-breath {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes ak-robe {
  0% { transform: rotate(5deg) scaleX(1); }
  50% { transform: rotate(3deg) scaleX(1.05); }
  100% { transform: rotate(5deg) scaleX(1); }
}
@keyframes ak-crown {
  0% { opacity: 0.7; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.1) rotate(5deg); }
  100% { opacity: 0.8; transform: translateX(-50%) scale(1); }
}
@keyframes ak-mote {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% { transform: translate(50px, -30px) scale(0.5); opacity: 0; }
}

.scn-ante-chamber-offer-received {
  background:
    linear-gradient(180deg, #b8c8a8 0%, #889888 40%, #586858 100%),
    radial-gradient(ellipse at 30% 20%, #d0e0c0 0%, transparent 60%);
}
.scn-ante-chamber-offer-received .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #889888 0%, #687868 100%); opacity: 0.7;
}
.scn-ante-chamber-offer-received .window-frame {
  position: absolute; top: 8%; left: 60%; width: 25%; height: 55%; background: #5a4a3a; border-radius: 8px; box-shadow: inset 0 0 0 4px #3a2a1a, 0 8px 20px rgba(0,0,0,0.3);
}
.scn-ante-chamber-offer-received .window-pane {
  position: absolute; top: 10%; left: 62%; width: 21%; height: 51%; background: linear-gradient(180deg, #e0e8d0 0%, #c0c8b0 100%); border-radius: 4px; opacity: 0.8; box-shadow: inset 0 0 40px #f0f8e0, 0 0 20px rgba(224,232,208,0.6);
  animation: ao-window 8s ease-in-out infinite alternate;
}
.scn-ante-chamber-offer-received .kneeling-figure {
  position: absolute; bottom: 10%; left: 25%; width: 14%; height: 35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%);
  animation: ao-kneel 6s ease-in-out infinite;
}
.scn-ante-chamber-offer-received .standing-figure {
  position: absolute; bottom: 10%; left: 65%; width: 16%; height: 45%; background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ao-stand 8s ease-in-out infinite alternate;
}
.scn-ante-chamber-offer-received .scroll {
  position: absolute; bottom: 35%; left: 30%; width: 10%; height: 4%; background: linear-gradient(90deg, #c8b080 0%, #e0c890 50%, #c8b080 100%); border-radius: 20% / 40%; transform: rotate(-15deg);
  animation: ao-scroll 12s ease-in-out infinite alternate;
}
.scn-ante-chamber-offer-received .hand-extended {
  position: absolute; bottom: 42%; left: 58%; width: 4%; height: 6%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 50% 50% 40% 40%;
  animation: ao-hand 4s ease-in-out infinite;
}
@keyframes ao-window {
  0% { opacity: 0.75; box-shadow: inset 0 0 30px #f0f8e0; }
  50% { opacity: 0.9; box-shadow: inset 0 0 50px #f0f8e0; }
  100% { opacity: 0.8; box-shadow: inset 0 0 20px #f0f8e0; }
}
@keyframes ao-kneel {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg) scaleY(1.02); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes ao-stand {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ao-scroll {
  0% { transform: rotate(-15deg) scaleX(1); }
  50% { transform: rotate(-10deg) scaleX(1.1); }
  100% { transform: rotate(-15deg) scaleX(1); }
}
@keyframes ao-hand {
  0% { transform: translate(0, 0) rotate(0deg); }
  50% { transform: translate(5px, -3px) rotate(10deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}

.scn-ante-chamber-french-ambassador {
  background:
    linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 70% 20%, #5a5a6a 0%, transparent 60%);
}
.scn-ante-chamber-french-ambassador .dark-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%); opacity: 0.8;
}
.scn-ante-chamber-french-ambassador .window-frame {
  position: absolute; top: 5%; left: 10%; width: 20%; height: 55%; background: #4a3a2a; border-radius: 8px; box-shadow: inset 0 0 0 4px #2a1a0a, 0 8px 20px rgba(0,0,0,0.5);
}
.scn-ante-chamber-french-ambassador .window-pane {
  position: absolute; top: 7%; left: 12%; width: 16%; height: 51%; background: linear-gradient(180deg, #808090 0%, #606070 100%); border-radius: 4px; opacity: 0.6; box-shadow: inset 0 0 30px #a0a0b0, 0 0 15px rgba(128,128,144,0.4);
  animation: af-window 5s ease-in-out infinite alternate;
}
.scn-ante-chamber-french-ambassador .ambassador {
  position: absolute; bottom: 10%; left: 45%; width: 15%; height: 45%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: af-ambassador 3s ease-in-out infinite;
}
.scn-ante-chamber-french-ambassador .hat {
  position: absolute; bottom: 52%; left: 44%; width: 18%; height: 8%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 40% 40% 10% 10% / 80% 80% 20% 20%; transform: rotate(-5deg);
  animation: af-hat 4s ease-in-out infinite alternate;
}
.scn-ante-chamber-french-ambassador .shadow-fall {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 30%; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.6) 100%);
  animation: af-shadow 6s ease-in-out infinite alternate;
}
.scn-ante-chamber-french-ambassador .clock {
  position: absolute; top: 10%; right: 15%; width: 8%; height: 12%; background: radial-gradient(circle, #a08060 0%, #604020 100%); border-radius: 50%; box-shadow: 0 0 10px rgba(0,0,0,0.5);
}
.scn-ante-chamber-french-ambassador .pendulum {
  position: absolute; top: 18%; right: 17%; width: 2%; height: 8%; background: #403020; border-radius: 20%; transform-origin: top center;
  animation: af-pendulum 2s ease-in-out infinite alternate;
}
@keyframes af-window {
  0% { opacity: 0.5; box-shadow: inset 0 0 20px #a0a0b0; }
  50% { opacity: 0.7; box-shadow: inset 0 0 40px #a0a0b0; }
  100% { opacity: 0.6; box-shadow: inset 0 0 25px #a0a0b0; }
}
@keyframes af-ambassador {
  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 af-hat {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes af-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}
@keyframes af-pendulum {
  0% { transform: rotate(-10deg); }
  100% { transform: rotate(10deg); }
}

/* henry-woos-kate-english */
.scn-henry-woos-kate-english {
  background: linear-gradient(180deg, #f5e6c8 0%, #e8d5a0 40%, #d4b87a 70%, #c8a060 100%),
              radial-gradient(ellipse at 60% 30%, #fff8e0 0%, transparent 50%);
}
.scn-henry-woos-kate-english .bg-warm { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #fef3d6 0%, transparent 80%); animation: hwk-sky 10s ease-in-out infinite alternate; }
.scn-henry-woos-kate-english .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b89060 0%, #8a6a3a 100%); border-radius: 60% 60% 0 0 / 40% 40% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,0.15); }
.scn-henry-woos-kate-english .throne { position:absolute; bottom:18%; left:25%; width:60px; height:70px; background: linear-gradient(135deg, #a08050, #705030); border-radius: 10% 10% 30% 30%; box-shadow: 0 8px 16px rgba(0,0,0,0.3); animation: hwk-throne 6s ease-in-out infinite; }
.scn-henry-woos-kate-english .henry-figure { position:absolute; bottom:22%; left:30%; width:20px; height:45px; background: linear-gradient(180deg, #6a4a3a, #3a2a1a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hwk-bow 4s ease-in-out infinite; }
.scn-henry-woos-kate-english .kate-figure { position:absolute; bottom:22%; right:30%; width:18px; height:42px; background: linear-gradient(180deg, #c8a080, #8a6040); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hwk-curtsey 4s ease-in-out infinite 1.5s; }
.scn-henry-woos-kate-english .henry-arm { position:absolute; bottom:30%; left:36%; width:6px; height:20px; background: #6a4a3a; border-radius: 40%; transform-origin: top left; animation: hwk-arm 2.5s ease-in-out infinite; }
.scn-henry-woos-kate-english .window-light { position:absolute; top:5%; right:10%; width:80px; height:60px; background: radial-gradient(ellipse, #fff8d0 0%, #e0c080 50%, transparent 70%); filter: blur(12px); animation: hwk-light 8s ease-in-out infinite alternate; }
.scn-henry-woos-kate-english .candle { position:absolute; bottom:20%; left:45%; width:4px; height:18px; background: linear-gradient(180deg, #ffe080, #d09030); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 8px rgba(255,224,128,0.6); animation: hwk-candle 3s ease-in-out infinite; }
@keyframes hwk-sky { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes hwk-throne { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes hwk-bow { 0% { transform: rotate(0deg) } 25% { transform: rotate(-20deg) translateY(-2px) } 50% { transform: rotate(0deg) } 75% { transform: rotate(10deg) translateY(-2px) } 100% { transform: rotate(0deg) } }
@keyframes hwk-curtsey { 0% { transform: rotate(0deg) } 25% { transform: rotate(5deg) translateX(2px) scaleY(0.95) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-5deg) translateX(-2px) scaleY(0.95) } 100% { transform: rotate(0deg) } }
@keyframes hwk-arm { 0%,100% { transform: rotate(-30deg) translateY(0) } 50% { transform: rotate(20deg) translateY(-5px) } }
@keyframes hwk-light { 0% { opacity:0.7; transform: scale(0.95) } 100% { opacity:1; transform: scale(1.05) } }
@keyframes hwk-candle { 0%,100% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 15px 5px rgba(255,224,128,0.5) } 50% { transform: scaleY(1.1) scaleX(0.9); box-shadow: 0 0 25px 10px rgba(255,224,128,0.7) } }

/* kate-french-confusion */
.scn-kate-french-confusion {
  background: linear-gradient(180deg, #f2e8d0 0%, #e0d0b0 40%, #c8b890 70%, #b8a070 100%),
              radial-gradient(ellipse at 70% 40%, #fff8e0 0%, transparent 60%);
}
.scn-kate-french-confusion .bg-bright { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #fdf6e3 0%, transparent); animation: kfc-sky 12s ease-in-out infinite alternate; }
.scn-kate-french-confusion .wall-panel { position:absolute; bottom:20%; left:10%; right:10%; height:60%; background: linear-gradient(180deg, #e0c8a0, #b89870); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 -15px 20px rgba(0,0,0,0.1); }
.scn-kate-french-confusion .kate-stand { position:absolute; bottom:22%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #c08060, #8a5030); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kfc-stand 5s ease-in-out infinite; }
.scn-kate-french-confusion .henry-gesture { position:absolute; bottom:22%; right:25%; width:22px; height:48px; background: linear-gradient(180deg, #6a4a3a, #3a2a1a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kfc-gesture 3.5s ease-in-out infinite 0.5s; }
.scn-kate-french-confusion .question-mark { position:absolute; top:15%; left:45%; width:12px; height:20px; background: linear-gradient(180deg, #c06040, #8a3020); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); animation: kfc-question 4s ease-in-out infinite; }
.scn-kate-french-confusion .desk { position:absolute; bottom:10%; left:35%; right:35%; height:12%; background: linear-gradient(180deg, #a08060, #705040); border-radius: 20% 20% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
.scn-kate-french-confusion .book { position:absolute; bottom:15%; left:45%; width:20px; height:6px; background: #c0a060; border-radius: 10%; transform: rotate(-10deg); animation: kfc-book 6s ease-in-out infinite; }
.scn-kate-french-confusion .fleur { position:absolute; top:8%; right:15%; width:14px; height:18px; background: radial-gradient(circle, #d0b080, #b09060); border-radius: 50% 50% 30% 30%; transform: rotate(20deg); animation: kfc-fleur 8s ease-in-out infinite; }
@keyframes kfc-sky { 0%,100% { opacity:0.85 } 50% { opacity:1 } }
@keyframes kfc-stand { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(3deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-4px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes kfc-gesture { 0%,100% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(20deg) translateY(-4px) } 50% { transform: rotate(-10deg) translateY(-2px) } 75% { transform: rotate(30deg) translateY(-6px) } }
@keyframes kfc-question { 0%,100% { opacity:0.7; transform: rotate(10deg) scale(1) } 50% { opacity:1; transform: rotate(25deg) scale(1.2) } }
@keyframes kfc-book { 0%,100% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(5deg) translateX(3px) } }
@keyframes kfc-fleur { 0%,100% { transform: rotate(20deg) scale(1) } 50% { transform: rotate(40deg) scale(1.1) } }

/* henry-plain-wooing */
.scn-henry-plain-wooing {
  background: linear-gradient(180deg, #f5eddb 0%, #e8dcc0 40%, #d8c8a0 70%, #c8b080 100%),
              radial-gradient(ellipse at 50% 20%, #fff8e6 0%, transparent 50%);
}
.scn-henry-plain-wooing .bg-cream { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #fcf5e6 0%, transparent 90%); animation: hpw-sky 14s ease-in-out infinite alternate; }
.scn-henry-plain-wooing .chair { position:absolute; bottom:18%; left:22%; width:40px; height:50px; background: linear-gradient(135deg, #b09870, #8a7050); border-radius: 20% 20% 40% 40%; box-shadow: 0 8px 12px rgba(0,0,0,0.2); }
.scn-henry-plain-wooing .henry-sit { position:absolute; bottom:18%; left:30%; width:22px; height:40px; background: linear-gradient(180deg, #6a4a3a, #3a2a1a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hpw-sit 6s ease-in-out infinite; }
.scn-henry-plain-wooing .kate-sit { position:absolute; bottom:18%; right:28%; width:20px; height:38px; background: linear-gradient(180deg, #c8a080, #8a6040); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hpw-sit 6s ease-in-out infinite 2s; }
.scn-henry-plain-wooing .table { position:absolute; bottom:8%; left:35%; right:35%; height:10%; background: linear-gradient(180deg, #c8a060, #a08040); border-radius: 30% 30% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.3); }
.scn-henry-plain-wooing .cup { position:absolute; bottom:12%; left:48%; width:8px; height:10px; background: #e0c080; border-radius: 20% 20% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: hpw-cup 5s ease-in-out infinite; }
.scn-henry-plain-wooing .window-arch { position:absolute; top:5%; left:35%; right:35%; height:30%; background: radial-gradient(ellipse at 50% 0%, #fff8e0 0%, #e8d8b0 60%, transparent 80%); border-radius: 50% 50% 0 0; box-shadow: 0 0 30px 10px rgba(255,248,224,0.4); animation: hpw-arch 10s ease-in-out infinite alternate; }
@keyframes hpw-sky { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes hpw-sit { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(3deg) translateY(-2px) } 50% { transform: rotate(-2deg) translateY(1px) } 75% { transform: rotate(4deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes hpw-cup { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(10deg) } }
@keyframes hpw-arch { 0% { opacity:0.7; transform: scaleX(0.95) } 100% { opacity:1; transform: scaleX(1) } }

/* henry-leap-frog */
.scn-henry-leap-frog {
  background: linear-gradient(180deg, #f3e8d0 0%, #e0d0b5 40%, #c8b890 70%, #b8a070 100%),
              radial-gradient(ellipse at 40% 60%, #fff8e0 0%, transparent 60%);
}
.scn-henry-leap-frog .bg-bright { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #fcf5e6 0%, transparent 80%); animation: hlf-sky 8s ease-in-out infinite alternate; }
.scn-henry-leap-frog .floor-strip { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(90deg, #b89060 0%, #a08050 50%, #b89060 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.1); }
.scn-henry-leap-frog .henry-jump { position:absolute; bottom:15%; left:30%; width:22px; height:40px; background: linear-gradient(180deg, #6a4a3a, #3a2a1a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hlf-jump 2s ease-in-out infinite; }
.scn-henry-leap-frog .kate-clap { position:absolute; bottom:15%; right:30%; width:20px; height:42px; background: linear-gradient(180deg, #c8a080, #8a6040); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hlf-clap 2s ease-in-out infinite 1s; }
.scn-henry-leap-frog .shadow { position:absolute; bottom:12%; left:28%; width:26px; height:6px; background: rgba(0,0,0,0.2); border-radius: 50%; filter: blur(3px); animation: hlf-shadow 2s ease-in-out infinite; }
.scn-henry-leap-frog .lantern-swing { position:absolute; top:10%; left:50%; width:8px; height:18px; background: radial-gradient(ellipse, #ffee80, #d09030); border-radius: 30% 30% 40% 40%; box-shadow: 0 0 30px 10px rgba(255,238,128,0.5); transform-origin: top center; animation: hlf-swing 3s ease-in-out infinite; }
.scn-henry-leap-frog .ribbon { position:absolute; top:30%; left:20%; width:40px; height:4px; background: linear-gradient(90deg, #c06040, #e08050, #c06040); border-radius: 40%; transform: rotate(-20deg); animation: hlf-ribbon 4s ease-in-out infinite; }
@keyframes hlf-sky { 0%,100% { opacity:0.75 } 50% { opacity:1 } }
@keyframes hlf-jump { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-20px) rotate(-15deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-10px) rotate(10deg) } }
@keyframes hlf-clap { 0%,100% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(5px) rotate(10deg) } 70% { transform: translateX(-5px) rotate(-10deg) } }
@keyframes hlf-shadow { 0%,100% { transform: scaleX(1); opacity:0.5 } 25% { transform: scaleX(0.6); opacity:0.3 } 50% { transform: scaleX(1); opacity:0.5 } 75% { transform: scaleX(0.8); opacity:0.4 } }
@keyframes hlf-swing { 0%,100% { transform: rotate(-20deg) } 50% { transform: rotate(20deg) } }
@keyframes hlf-ribbon { 0%,100% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-10deg) translateX(10px) } }

.scn-bardolph-execution-report {
  background: linear-gradient(180deg,#1a0a00 0%,#3a1a0a 50%,#0a0500 100%), radial-gradient(ellipse at 60% 80%, #d06030 0%, transparent 60%);
}
.scn-bardolph-execution-report .tent {
  position:absolute;inset:0;background:linear-gradient(135deg,#2a1a0a 0%,#4a2a1a 100%);clip-path:polygon(20% 0,80% 0,100% 100%,0 100%);animation:be-sway 6s ease-in-out infinite;
}
.scn-bardolph-execution-report .fire {
  position:absolute;bottom:10%;left:30%;width:20px;height:30px;background:radial-gradient(circle at 50% 100%,#ff8030,#d06030 70%);border-radius:50% 50% 0 0;box-shadow:0 0 30px 10px #d06030;animation:be-flicker 1.6s ease-in-out infinite alternate;
}
.scn-bardolph-execution-report .figure-guard {
  position:absolute;bottom:10%;left:45%;width:20px;height:40px;background:linear-gradient(180deg,#1a1a1a 0%,#0a0a0a 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform-origin:bottom;animation:be-step 4s ease-in-out infinite;
}
.scn-bardolph-execution-report .figure-prisoner {
  position:absolute;bottom:8%;left:55%;width:18px;height:38px;background:linear-gradient(180deg,#2a1a0a 0%,#1a0a00 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform-origin:bottom;animation:be-step 4s ease-in-out infinite 2s;
}
.scn-bardolph-execution-report .chain {
  position:absolute;bottom:18%;left:45%;width:30px;height:2px;background:#6a5a4a;animation:be-sway 6s ease-in-out infinite;
}
.scn-bardolph-execution-report .glow {
  position:absolute;bottom:20%;left:30%;width:80px;height:80px;background:radial-gradient(circle,#ff8030 0%,transparent 70%);border-radius:50%;mix-blend-mode:screen;animation:be-glow 3s ease-in-out infinite alternate;
}
@keyframes be-sway { 0% { transform:rotate(-2deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(-2deg) } }
@keyframes be-flicker { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes be-step { 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 25% { transform:translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform:translateX(4px) translateY(0) rotate(-1deg) } 75% { transform:translateX(6px) translateY(-1px) rotate(1deg) } 100% { transform:translateX(8px) translateY(0) rotate(0) } }
@keyframes be-glow { 0% { opacity:0.5;transform:scale(1) } 50% { opacity:0.9;transform:scale(1.2) } 100% { opacity:0.6;transform:scale(1.05) } }

.scn-montjoy-herald-defiance {
  background: linear-gradient(180deg,#87CEEB 0%,#FFF0A0 60%,#E0B060 100%), radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 50%);
}
.scn-montjoy-herald-defiance .sky {
  position:absolute;inset:0 0 50% 0;background:linear-gradient(180deg,#87CEEB 0%,#FFF0A0 100%);animation:mh-sky 10s ease-in-out infinite alternate;
}
.scn-montjoy-herald-defiance .sun {
  position:absolute;top:10%;right:20%;width:60px;height:60px;background:radial-gradient(circle,#FFD700,#FFA500 60%);border-radius:50%;box-shadow:0 0 50px 20px #FFA500;animation:mh-sun 20s linear infinite;
}
.scn-montjoy-herald-defiance .ground {
  position:absolute;bottom:0;left:0;right:0;height:50%;background:linear-gradient(180deg,#8B7355 0%,#6B5B45 100%);border-radius:20% 30% 0 0;
}
.scn-montjoy-herald-defiance .herald {
  position:absolute;bottom:15%;left:35%;width:22px;height:44px;background:linear-gradient(180deg,#C0C0C0 0%,#808080 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform-origin:bottom;animation:mh-stand 4s ease-in-out infinite;
}
.scn-montjoy-herald-defiance .banner {
  position:absolute;bottom:20%;left:30%;width:10px;height:30px;background:#D2B48C;transform:rotate(10deg);animation:mh-wave 3s ease-in-out infinite;
}
.scn-montjoy-herald-defiance .lance {
  position:absolute;bottom:18%;left:28%;width:2px;height:50px;background:#808080;transform:rotate(15deg);transform-origin:bottom;animation:mh-wave 3s ease-in-out infinite -1s;
}
@keyframes mh-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes mh-sun { 0% { transform:translateX(0) } 100% { transform:translateX(100px) } }
@keyframes mh-stand { 0% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-3px) rotate(2deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes mh-wave { 0% { transform:rotate(10deg) } 50% { transform:rotate(15deg) } 100% { transform:rotate(10deg) } }

.scn-henry-answer-montjoy {
  background: linear-gradient(180deg,#87CEEB 0%,#E0D0A0 60%,#A08060 100%), radial-gradient(ellipse at 80% 20%, #FFD700 0%, transparent 40%);
}
.scn-henry-answer-montjoy .sky {
  position:absolute;inset:0 0 40% 0;background:linear-gradient(180deg,#6495ED 0%,#E0D0A0 100%);animation:ha-sky 12s ease-in-out infinite alternate;
}
.scn-henry-answer-montjoy .sun {
  position:absolute;top:5%;left:10%;width:50px;height:50px;background:radial-gradient(circle,#FFD700,#FFA500 50%);border-radius:50%;box-shadow:0 0 40px 15px #FFA500;animation:ha-sun 25s linear infinite;
}
.scn-henry-answer-montjoy .ground {
  position:absolute;bottom:0;left:0;right:0;height:60%;background:linear-gradient(180deg,#7B6B5A 0%,#5B4B3A 100%);border-radius:30% 20% 0 0;
}
.scn-henry-answer-montjoy .king {
  position:absolute;bottom:20%;left:45%;width:24px;height:48px;background:linear-gradient(180deg,#4B3B2A 0%,#2B1B0A 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform-origin:bottom;animation:ha-turn 6s ease-in-out infinite;
}
.scn-henry-answer-montjoy .tent {
  position:absolute;bottom:30%;left:20%;width:70px;height:50px;background:linear-gradient(180deg,#7B6B5A 0%,#5B4B3A 70%);clip-path:polygon(30% 0,70% 0,90% 100%,10% 100%);animation:ha-sway 8s ease-in-out infinite;
}
.scn-henry-answer-montjoy .flag {
  position:absolute;bottom:35%;left:22%;width:8px;height:20px;background:#DAA520;transform:rotate(0deg);transform-origin:bottom;animation:ha-wave 4s ease-in-out infinite;
}
@keyframes ha-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ha-sun { 0% { transform:translateY(0) } 100% { transform:translateY(-30px) } }
@keyframes ha-turn { 0% { transform:translateX(0) rotate(0) } 50% { transform:translateX(5px) rotate(5deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes ha-sway { 0% { transform:rotate(-2deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(-2deg) } }
@keyframes ha-wave { 0% { transform:rotate(-5deg) } 50% { transform:rotate(5deg) } 100% { transform:rotate(-5deg) } }

.scn-henry-god-hand {
  background: linear-gradient(180deg,#2C2C5A 0%,#4A3B6B 50%,#1A1A3A 100%), radial-gradient(ellipse at 50% 100%, #4A3B6B 0%, transparent 70%);
}
.scn-henry-god-hand .sky-dusk {
  position:absolute;inset:0 0 30% 0;background:linear-gradient(180deg,#6B5B8B 0%,#2C2C5A 100%);animation:hg-sky 15s ease-in-out infinite alternate;
}
.scn-henry-god-hand .river {
  position:absolute;bottom:0;left:0;right:0;height:30%;background:linear-gradient(180deg,#3B4B7B 0%,#2B3B6B 100%);border-radius:0 0 50% 50%;animation:hg-flow 10s linear infinite;
}
.scn-henry-god-hand .bridge {
  position:absolute;bottom:25%;left:20%;right:20%;height:15px;background:linear-gradient(180deg,#5B4B3A 0%,#3B2B1A 100%);border-radius:50% 50% 0 0;box-shadow:0 4px 8px rgba(0,0,0,.5);
}
.scn-henry-god-hand .figure-henry {
  position:absolute;bottom:20%;left:35%;width:16px;height:32px;background:linear-gradient(180deg,#1A1A2A 0%,#0A0A1A 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform-origin:bottom;animation:hg-walk 5s ease-in-out infinite;
}
.scn-henry-god-hand .figure-brother {
  position:absolute;bottom:20%;left:50%;width:16px;height:32px;background:linear-gradient(180deg,#2A2A3A 0%,#1A1A2A 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform-origin:bottom;animation:hg-walk 5s ease-in-out infinite -2s;
}
.scn-henry-god-hand .campfire {
  position:absolute;bottom:15%;left:60%;width:14px;height:20px;background:radial-gradient(circle at 50% 100%,#FF8040,#D06030 70%);border-radius:50% 50% 0 0;box-shadow:0 0 20px 8px #D06030;animation:hg-fire 1.5s ease-in-out infinite alternate;
}
.scn-henry-god-hand .tent-small {
  position:absolute;bottom:22%;left:65%;width:30px;height:20px;background:linear-gradient(180deg,#3B3B5B 0%,#2B2B4B 100%);clip-path:polygon(20% 0,80% 0,100% 100%,0 100%);
}
@keyframes hg-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes hg-flow { 0% { transform:translateX(0) } 50% { transform:translateX(10px) } 100% { transform:translateX(0) } }
@keyframes hg-walk { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 25% { transform:translateX(4px) translateY(-1px) rotate(2deg) } 50% { transform:translateX(8px) translateY(0) rotate(-2deg) } 75% { transform:translateX(12px) translateY(-1px) rotate(2deg) } 100% { transform:translateX(16px) translateY(0) rotate(0) } }
@keyframes hg-fire { 0% { opacity:0.7;transform:scaleY(1) } 50% { opacity:1;transform:scaleY(1.2) } 100% { opacity:0.8;transform:scaleY(0.9) } }

.scn-henry-wooing-consent {
  background: linear-gradient(180deg, #d4b896 0%, #c09b7a 40%, #a88262 100%), radial-gradient(ellipse at 70% 30%, #e8d4b8 0%, transparent 60%);
}
.scn-henry-wooing-consent .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #cba980 0%, #b89070 40%, #9a7a5a 100%);
  animation: hw-room 8s ease-in-out infinite alternate;
}
.scn-henry-wooing-consent .window {
  position: absolute; top: 8%; right: 12%; width: 30%; height: 45%;
  background: radial-gradient(ellipse at center, #fff6e8 0%, #f0d4b0 50%, transparent 70%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 20px rgba(255,230,180,0.5);
  animation: hw-window 6s ease-in-out infinite;
}
.scn-henry-wooing-consent .window-light {
  position: absolute; top: 8%; right: 12%; width: 30%; height: 45%;
  background: linear-gradient(135deg, rgba(255,240,200,0.3) 0%, transparent 70%);
  filter: blur(12px);
  animation: hw-light 10s linear infinite;
}
.scn-henry-wooing-consent .henry-figure {
  position: absolute; bottom: 12%; left: 20%; width: 22%; height: 52%;
  background: linear-gradient(180deg, #3a2c1e 0%, #2a1e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hw-henry 4s ease-in-out infinite;
}
.scn-henry-wooing-consent .kate-silhouette {
  position: absolute; bottom: 15%; right: 28%; width: 18%; height: 48%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: hw-kate 5s ease-in-out infinite;
}
.scn-henry-wooing-consent .hand-extended {
  position: absolute; bottom: 35%; left: 38%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #c8a88a 0%, #a8886a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform: rotate(-15deg);
  animation: hw-hand 3s ease-in-out infinite alternate;
}
.scn-henry-wooing-consent .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, rgba(60,40,20,0.6) 0%, transparent 100%);
  animation: hw-shadow 8s ease-in-out infinite;
}
.scn-henry-wooing-consent .dust-mote {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, #fff8e0 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-henry-wooing-consent .mote1 {
  top: 20%; left: 40%;
  animation: hw-mote1 12s linear infinite;
}
.scn-henry-wooing-consent .mote2 {
  top: 35%; left: 60%;
  animation: hw-mote2 15s linear infinite reverse;
}
@keyframes hw-room { 0%,100% { opacity:0.85; } 50% { opacity:1; } }
@keyframes hw-window { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.96); } }
@keyframes hw-light { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }
@keyframes hw-henry { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(-2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-3px) rotate(0deg); } }
@keyframes hw-kate { 0%,100% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-3px) rotate(1deg); } 66% { transform: translateX(2px) rotate(-1deg); } }
@keyframes hw-hand { 0% { transform: rotate(-15deg) translateY(0); } 100% { transform: rotate(-10deg) translateY(-4px); } }
@keyframes hw-shadow { 0%,100% { opacity:0.6; } 50% { opacity:0.4; } }
@keyframes hw-mote1 { 0% { transform: translate(0,0) scale(1); opacity:0.5; } 25% { transform: translate(20px,-15px) scale(1.3); opacity:0.8; } 50% { transform: translate(40px,5px) scale(0.9); opacity:0.4; } 75% { transform: translate(60px,-10px) scale(1.1); opacity:0.7; } 100% { transform: translate(80px,0) scale(1); opacity:0.5; } }
@keyframes hw-mote2 { 0% { transform: translate(0,0) scale(1); opacity:0.4; } 33% { transform: translate(-15px,20px) scale(1.2); opacity:0.7; } 66% { transform: translate(-30px,5px) scale(0.8); opacity:0.3; } 100% { transform: translate(-45px,0) scale(1); opacity:0.4; } }

.scn-item-flower-de-luce {
  background: linear-gradient(180deg, #cba280 0%, #b8916e 50%, #a07856 100%), radial-gradient(ellipse at 60% 20%, #e8d0b0 0%, transparent 70%);
}
.scn-item-flower-de-luce .tabletop {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #8a6a4a 0%, #b89878 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.3);
}
.scn-item-flower-de-luce .book {
  position: absolute; bottom: 20%; left: 50%; width: 40%; height: 20%;
  transform: translateX(-50%) rotate(-2deg);
  background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 4%;
  box-shadow: 2px 4px 10px rgba(0,0,0,0.5);
}
.scn-item-flower-de-luce .fleur-de-lis {
  position: absolute; bottom: 28%; left: 50%; width: 18%; height: 30%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 20%, #f0d090 0%, #d4a860 40%, #b88a40 100%);
  clip-path: polygon(50% 0%, 60% 20%, 80% 20%, 70% 35%, 90% 50%, 70% 50%, 50% 80%, 30% 50%, 10% 50%, 30% 35%, 20% 20%, 40% 20%);
  animation: fl-fleur 5s ease-in-out infinite;
}
.scn-item-flower-de-luce .stem {
  position: absolute; bottom: 18%; left: 50%; width: 4%; height: 20%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a7a3a 0%, #3a5a2a 100%);
  border-radius: 20%;
  animation: fl-stem 4s ease-in-out infinite alternate;
}
.scn-item-flower-de-luce .shadow-cast {
  position: absolute; bottom: 12%; left: 35%; width: 30%; height: 10%;
  background: radial-gradient(ellipse, rgba(40,20,10,0.6) 0%, transparent 80%);
  filter: blur(8px);
  animation: fl-shadow 6s ease-in-out infinite;
}
.scn-item-flower-de-luce .highlight {
  position: absolute; bottom: 40%; left: 42%; width: 16%; height: 8%;
  background: radial-gradient(circle, rgba(255,230,170,0.7) 0%, transparent 80%);
  filter: blur(6px);
  animation: fl-highlight 3s ease-in-out infinite alternate;
}
.scn-item-flower-de-luce .glow {
  position: absolute; bottom: 30%; left: 50%; width: 12%; height: 12%;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,210,120,0.5) 0%, transparent 70%);
  filter: blur(10px);
  animation: fl-glow 4s ease-in-out infinite;
}
@keyframes fl-fleur { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05) rotate(2deg); } }
@keyframes fl-stem { 0% { transform: translateX(-50%) scaleY(1); } 100% { transform: translateX(-50%) scaleY(1.03); } }
@keyframes fl-shadow { 0%,100% { opacity:0.6; } 50% { opacity:0.3; } }
@keyframes fl-highlight { 0% { opacity:0.3; transform: translateX(0); } 100% { opacity:0.8; transform: translateX(5px); } }
@keyframes fl-glow { 0%,100% { opacity:0.4; } 50% { opacity:0.8; } }

.scn-kate-french-flattery {
  background: linear-gradient(180deg, #d8be9e 0%, #c0a080 40%, #a88662 100%), radial-gradient(ellipse at 30% 40%, #e8d4b8 0%, transparent 60%);
}
.scn-kate-french-flattery .chamber-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #c8a880 0%, #b8906a 50%, #9a7a5a 100%);
  animation: kf-bg 10s ease-in-out infinite alternate;
}
.scn-kate-french-flattery .arch {
  position: absolute; top: 5%; left: 15%; width: 70%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, #dcc8ae 0%, transparent 70%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.1);
  animation: kf-arch 7s ease-in-out infinite;
}
.scn-kate-french-flattery .henry-profile {
  position: absolute; bottom: 12%; left: 25%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #3a2c1e 0%, #2a1e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  animation: kf-henry 4s ease-in-out infinite;
}
.scn-kate-french-flattery .kate-profile {
  position: absolute; bottom: 15%; right: 25%; width: 18%; height: 48%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  animation: kf-kate 5s ease-in-out infinite;
}
.scn-kate-french-flattery .candle {
  position: absolute; bottom: 20%; left: 50%; width: 4%; height: 18%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0d8a0 0%, #d4a860 60%, #8a5a2a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: kf-candle 3s ease-in-out infinite alternate;
}
.scn-kate-french-flattery .candle-glow {
  position: absolute; bottom: 25%; left: 50%; width: 20%; height: 20%;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 70%);
  filter: blur(12px);
  animation: kf-glow 4s ease-in-out infinite;
}
.scn-kate-french-flattery .shadow-henry {
  position: absolute; bottom: 8%; left: 20%; width: 30%; height: 15%;
  background: radial-gradient(ellipse, rgba(30,15,5,0.5) 0%, transparent 80%);
  filter: blur(6px);
  animation: kf-shadow1 5s ease-in-out infinite;
}
.scn-kate-french-flattery .shadow-kate {
  position: absolute; bottom: 8%; right: 20%; width: 28%; height: 12%;
  background: radial-gradient(ellipse, rgba(30,15,5,0.4) 0%, transparent 80%);
  filter: blur(6px);
  animation: kf-shadow2 6s ease-in-out infinite reverse;
}
.scn-kate-french-flattery .warm-haze {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,200,150,0.15) 0%, transparent 70%);
  filter: blur(20px);
  animation: kf-haze 8s ease-in-out infinite alternate;
}
@keyframes kf-bg { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes kf-arch { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } }
@keyframes kf-henry { 0%,100% { transform: scaleX(-1) translateX(0) rotate(0deg); } 50% { transform: scaleX(-1) translateX(5px) rotate(2deg); } }
@keyframes kf-kate { 0%,100% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-4px) rotate(1deg); } 66% { transform: translateX(2px) rotate(-1deg); } }
@keyframes kf-candle { 0% { transform: translateX(-50%) scaleY(1); } 100% { transform: translateX(-50%) scaleY(1.04); } }
@keyframes kf-glow { 0%,100% { opacity:0.5; } 50% { opacity:0.9; } }
@keyframes kf-shadow1 { 0%,100% { opacity:0.4; } 50% { opacity:0.2; } }
@keyframes kf-shadow2 { 0%,100% { opacity:0.3; } 50% { opacity:0.5; } }
@keyframes kf-haze { 0% { opacity:0.3; } 100% { opacity:0.6; } }

.scn-henry-confesses-love {
  background: linear-gradient(180deg, #d8be9e 0%, #c0a080 50%, #a88662 100%), radial-gradient(ellipse at 70% 30%, #e8d4b8 0%, transparent 70%);
}
.scn-henry-confesses-love .close-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 40%, #c8a880 0%, #9a7a5a 100%);
  animation: hc-bg 12s ease-in-out infinite alternate;
}
.scn-henry-confesses-love .henry-shoulder {
  position: absolute; bottom: 0; left: 25%; width: 50%; height: 60%;
  background: linear-gradient(135deg, #3a2c1e 0%, #2a1e12 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  animation: hc-shoulder 6s ease-in-out infinite;
}
.scn-henry-confesses-love .henry-head {
  position: absolute; bottom: 48%; left: 38%; width: 24%; height: 32%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hc-head 4s ease-in-out infinite;
}
.scn-henry-confesses-love .hand-on-heart {
  position: absolute; bottom: 28%; left: 42%; width: 10%; height: 16%;
  background: linear-gradient(180deg, #c8a88a 0%, #a8886a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform: rotate(10deg);
  animation: hc-hand 3s ease-in-out infinite alternate;
}
.scn-henry-confesses-love .light-source {
  position: absolute; top: 10%; left: 60%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at center, #fff6e8 0%, #f0d4b0 30%, transparent 70%);
  filter: blur(15px);
  animation: hc-light 8s ease-in-out infinite alternate;
}
.scn-henry-confesses-love .light-ray {
  position: absolute; top: 10%; left: 60%; width: 30%; height: 40%;
  background: linear-gradient(135deg, rgba(255,235,200,0.2) 0%, transparent 60%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  filter: blur(10px);
  animation: hc-ray 6s ease-in-out infinite;
}
.scn-henry-confesses-love .blush-accent {
  position: absolute; bottom: 55%; left: 43%; width: 12%; height: 8%;
  background: radial-gradient(circle, #c87858 0%, transparent 80%);
  filter: blur(5px);
  opacity: 0.5;
  animation: hc-blush 4s ease-in-out infinite;
}
@keyframes hc-bg { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes hc-shoulder { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(0.98); } }
@keyframes hc-head { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(0deg); } }
@keyframes hc-hand { 0% { transform: rotate(10deg) translateY(0); } 100% { transform: rotate(12deg) translateY(-6px); } }
@keyframes hc-light { 0% { opacity:0.4; } 100% { opacity:0.8; } }
@keyframes hc-ray { 0%,100% { opacity:0.2; } 50% { opacity:0.5; } }
@keyframes hc-blush { 0%,100% { opacity:0.3; } 50% { opacity:0.7; } }

/* Scene 1 - southampton-council-scroop-rebuked */
.scn-southampton-council-scroop-rebuked {
  background: 
    linear-gradient(135deg, #4a3a2a 0%, #7a6a5a 30%, #8a7a6a 60%, #5a4a3a 100%),
    radial-gradient(ellipse at 60% 30%, #b0a090 0%, transparent 70%);
}
.scn-southampton-council-scroop-rebuked .hall-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  opacity: 0.5;
  animation: scrb-bg 12s ease-in-out infinite alternate;
}
.scn-southampton-council-scroop-rebuked .column-l {
  position: absolute; left: 10%; top: 0; bottom: 0; width: 40px;
  background: linear-gradient(90deg, #6a5a4a 0%, #9a8a7a 50%, #6a5a4a 100%);
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
  border-radius: 4px;
  animation: scrb-col 6s ease-in-out infinite;
}
.scn-southampton-council-scroop-rebuked .column-r {
  position: absolute; right: 10%; top: 0; bottom: 0; width: 40px;
  background: linear-gradient(90deg, #6a5a4a 0%, #9a8a7a 50%, #6a5a4a 100%);
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  border-radius: 4px;
  animation: scrb-col 6s ease-in-out infinite reverse;
}
.scn-southampton-council-scroop-rebuked .table {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 20px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  animation: scrb-table 8s ease-in-out infinite alternate;
}
.scn-southampton-council-scroop-rebuked .figure-accuser {
  position: absolute; bottom: 22%; left: 35%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scrb-accuser 4s ease-in-out infinite;
}
.scn-southampton-council-scroop-rebuked .figure-accused {
  position: absolute; bottom: 22%; right: 35%; width: 28px; height: 76px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scrb-accused 5s ease-in-out infinite;
}
.scn-southampton-council-scroop-rebuked .light-ray {
  position: absolute; top: 10%; left: 45%; width: 10%; height: 60%;
  background: linear-gradient(180deg, rgba(255,255,240,0.4) 0%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  animation: scrb-ray 3s ease-in-out infinite alternate;
}
.scn-southampton-council-scroop-rebuked .shadow-left {
  position: absolute; bottom: 20%; left: 0; width: 30%; height: 30%;
  background: linear-gradient(90deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: scrb-shadow 7s ease-in-out infinite;
}
@keyframes scrb-bg { 0%,100%{opacity:0.5} 50%{opacity:0.7} }
@keyframes scrb-col { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-4px)} }
@keyframes scrb-table { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@keyframes scrb-accuser { 0%,100%{transform:translateX(0) rotate(-1deg)} 50%{transform:translateX(4px) rotate(2deg)} }
@keyframes scrb-accused { 0%,100%{transform:translateX(0) rotate(1deg)} 33%{transform:translateX(-3px) rotate(-2deg)} 66%{transform:translateX(2px) rotate(0)} }
@keyframes scrb-ray { 0%,100%{opacity:0.6} 50%{opacity:1} }
@keyframes scrb-shadow { 0%,100%{opacity:0.5} 50%{opacity:0.8} }

/* Scene 2 - southampton-council-arrests */
.scn-southampton-council-arrests {
  background: 
    linear-gradient(135deg, #4a3a2a 0%, #7a6a5a 30%, #8a7a6a 60%, #5a4a3a 100%),
    radial-gradient(ellipse at 60% 30%, #b0a090 0%, transparent 70%);
}
.scn-southampton-council-arrests .hall-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  opacity: 0.5;
  animation: arst-bg 12s ease-in-out infinite alternate;
}
.scn-southampton-council-arrests .table {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 20px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  animation: arst-table 8s ease-in-out infinite alternate;
}
.scn-southampton-council-arrests .figure-king {
  position: absolute; bottom: 22%; left: 20%; width: 36px; height: 90px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: arst-king 6s ease-in-out infinite;
}
.scn-southampton-council-arrests .figure-guard-l {
  position: absolute; bottom: 22%; left: 40%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: arst-guard 4s ease-in-out infinite;
}
.scn-southampton-council-arrests .figure-guard-r {
  position: absolute; bottom: 22%; right: 40%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: arst-guard 4s ease-in-out infinite reverse;
}
.scn-southampton-council-arrests .figure-kneeling {
  position: absolute; bottom: 18%; right: 30%; width: 26px; 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: arst-kneel 5s ease-in-out infinite;
}
.scn-southampton-council-arrests .chain {
  position: absolute; bottom: 24%; left: 42%; width: 40px; height: 4px;
  background: repeating-linear-gradient(90deg, #9a8a7a 0px, #9a8a7a 4px, transparent 4px, transparent 8px);
  border-radius: 2px;
  animation: arst-chain 3s ease-in-out infinite;
}
.scn-southampton-council-arrests .light-ray {
  position: absolute; top: 10%; left: 45%; width: 10%; height: 60%;
  background: linear-gradient(180deg, rgba(255,255,240,0.4) 0%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  animation: arst-ray 3s ease-in-out infinite alternate;
}
@keyframes arst-bg { 0%,100%{opacity:0.5} 50%{opacity:0.7} }
@keyframes arst-table { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@keyframes arst-king { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-3px) rotate(1deg)} }
@keyframes arst-guard { 0%,100%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-2px) rotate(1deg)} }
@keyframes arst-kneel { 0%,100%{transform:translateY(0)} 33%{transform:translateY(-2px)} 66%{transform:translateY(1px)} }
@keyframes arst-chain { 0%,100%{transform:translateX(0)} 50%{transform:translateX(3px)} }
@keyframes arst-ray { 0%,100%{opacity:0.6} 50%{opacity:1} }

/* Scene 3 - southampton-council-sentence */
.scn-southampton-council-sentence {
  background: 
    linear-gradient(135deg, #4a3a2a 0%, #7a6a5a 30%, #8a7a6a 60%, #5a4a3a 100%),
    radial-gradient(ellipse at 40% 30%, #b0a090 0%, transparent 70%);
}
.scn-southampton-council-sentence .hall-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  opacity: 0.5;
  animation: snt-bg 14s ease-in-out infinite alternate;
}
.scn-southampton-council-sentence .throne {
  position: absolute; bottom: 15%; left: 15%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #9a8a7a 0%, #6a5a4a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 8px 8px 16px rgba(0,0,0,0.4);
  animation: snt-throne 10s ease-in-out infinite;
}
.scn-southampton-council-sentence .figure-king {
  position: absolute; bottom: 25%; left: 20%; width: 36px; height: 90px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: snt-king 4s ease-in-out infinite;
}
.scn-southampton-council-sentence .figure-herald {
  position: absolute; bottom: 22%; left: 35%; width: 28px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: snt-herald 5s ease-in-out infinite;
}
.scn-southampton-council-sentence .figure-kneeling-1 {
  position: absolute; bottom: 18%; right: 35%; width: 26px; 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: snt-kneel1 6s ease-in-out infinite;
}
.scn-southampton-council-sentence .figure-kneeling-2 {
  position: absolute; bottom: 18%; right: 20%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: snt-kneel2 7s ease-in-out infinite;
}
.scn-southampton-council-sentence .light-ray {
  position: absolute; top: 5%; left: 50%; width: 12%; height: 70%;
  background: linear-gradient(180deg, rgba(255,255,240,0.5) 0%, transparent 100%);
  clip-path: polygon(40% 0%, 60% 0%, 100% 100%, 0% 100%);
  animation: snt-ray 3s ease-in-out infinite alternate;
}
.scn-southampton-council-sentence .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: snt-shadow 8s ease-in-out infinite;
}
@keyframes snt-bg { 0%,100%{opacity:0.5} 50%{opacity:0.7} }
@keyframes snt-throne { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-4px)} }
@keyframes snt-king { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-2px) rotate(1deg)} }
@keyframes snt-herald { 0%,100%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-1px) rotate(2deg)} }
@keyframes snt-kneel1 { 0%,100%{transform:translateY(0)} 33%{transform:translateY(-3px)} 66%{transform:translateY(1px)} }
@keyframes snt-kneel2 { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@keyframes snt-ray { 0%,100%{opacity:0.5} 50%{opacity:1} }
@keyframes snt-shadow { 0%,100%{opacity:0.6} 50%{opacity:0.9} }

/* Scene 4 - london-tavern-falstaff-death */
.scn-london-tavern-falstaff-death {
  background: 
    linear-gradient(180deg, #b0a090 0%, #c0b0a0 40%, #d0c0b0 70%, #e0d0c0 100%),
    radial-gradient(ellipse at 80% 30%, #f0e0d0 0%, transparent 70%);
}
.scn-london-tavern-falstaff-death .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c0b0a0 0%, #e0d0c0 100%);
  animation: falt-sky 20s ease-in-out infinite alternate;
}
.scn-london-tavern-falstaff-death .tavern-wall {
  position: absolute; bottom: 10%; left: 0; width: 70%; height: 60%;
  background: linear-gradient(90deg, #8a7a6a 0%, #a09080 100%);
  border-radius: 0 10% 0 0;
  box-shadow: inset -4px 0 12px rgba(0,0,0,0.3);
  animation: falt-wall 12s ease-in-out infinite;
}
.scn-london-tavern-falstaff-death .tavern-door {
  position: absolute; bottom: 10%; left: 25%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: falt-door 5s ease-in-out infinite;
}
.scn-london-tavern-falstaff-death .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  animation: falt-ground 18s ease-in-out infinite alternate;
}
.scn-london-tavern-falstaff-death .figure-falstaff {
  position: absolute; bottom: 15%; left: 15%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: falt-falstaff 6s ease-in-out infinite;
}
.scn-london-tavern-falstaff-death .figure-pistol {
  position: absolute; bottom: 16%; left: 50%; width: 28px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: falt-pistol 4s ease-in-out infinite;
}
.scn-london-tavern-falstaff-death .figure-hostess {
  position: absolute; bottom: 16%; right: 20%; width: 30px; height: 75px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: falt-hostess 5s ease-in-out infinite;
}
.scn-london-tavern-falstaff-death .sun-halo {
  position: absolute; top: 10%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,240,200,0.6) 0%, rgba(255,240,200,0.2) 40%, transparent 70%);
  border-radius: 50%;
  animation: falt-sun 8s ease-in-out infinite alternate;
}
.scn-london-tavern-falstaff-death .shadow-figure {
  position: absolute; bottom: 15%; left: 10%; width: 40px; height: 20px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(4px);
  animation: falt-shade 7s ease-in-out infinite;
}
@keyframes falt-sky { 0%,100%{opacity:0.8} 50%{opacity:1} }
@keyframes falt-wall { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@keyframes falt-door { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-1px) rotate(1deg)} }
@keyframes falt-ground { 0%,100%{opacity:0.9} 50%{opacity:1} }
@keyframes falt-falstaff { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-3px) rotate(-2deg)} }
@keyframes falt-pistol { 0%,100%{transform:translateY(0) rotate(1deg)} 33%{transform:translateY(-2px) rotate(-1deg)} 66%{transform:translateY(1px) rotate(0)} }
@keyframes falt-hostess { 0%,100%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-2px) rotate(2deg)} }
@keyframes falt-sun { 0%,100%{opacity:0.6} 50%{opacity:1} }
@keyframes falt-shade { 0%,100%{opacity:0.2} 50%{opacity:0.4} }

/* presence-chamber-king-enters (calm / bright-interior) */
.scn-presence-chamber-king-enters {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #dac29c 50%, #c4a87a 100%),
    radial-gradient(ellipse at 50% 100%, #e8d4b0 0%, transparent 70%);
}
.scn-presence-chamber-king-enters .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e4d2ae 0%, #c8b48c 100%);
  animation: pc-ke-wall 20s ease-in-out infinite alternate;
}
.scn-presence-chamber-king-enters .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5a3e 100%);
  border-radius: 4% 4% 0 0;
}
.scn-presence-chamber-king-enters .throne {
  position: absolute; bottom: 28%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b0986c 0%, #7a6548 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: pc-ke-throne 6s ease-in-out infinite;
}
.scn-presence-chamber-king-enters .king {
  position: absolute; bottom: 32%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2e1e 0%, #1f160d 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  animation: pc-ke-king 8s ease-in-out infinite;
}
.scn-presence-chamber-king-enters .banner {
  position: absolute; top: 10%; right: 20%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #b87878 0%, #8c5a5a 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  animation: pc-ke-banner 12s ease-in-out infinite alternate;
}
.scn-presence-chamber-king-enters .light-ray {
  position: absolute; top: 0; left: 35%; width: 30%; height: 80%;
  background: linear-gradient(180deg, rgba(255,250,230,0.25) 0%, transparent 100%);
  filter: blur(10px);
  animation: pc-ke-light 14s ease-in-out infinite alternate;
}
@keyframes pc-ke-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pc-ke-throne {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes pc-ke-king {
  0% { transform: translateX(-50%) rotate(-1deg); }
  30% { transform: translateX(-50%) rotate(0deg); }
  60% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes pc-ke-banner {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(4deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes pc-ke-light {
  0% { opacity: 0.3; transform: scaleX(0.95); }
  50% { opacity: 0.6; transform: scaleX(1.05); }
  100% { opacity: 0.4; transform: scaleX(0.95); }
}

/* presence-chamber-salique-law (tense / bright-interior) */
.scn-presence-chamber-salique-law {
  background:
    linear-gradient(180deg, #ead9b0 0%, #cbb58a 50%, #a88e64 100%),
    radial-gradient(ellipse at 30% 60%, #f2e2c8 0%, transparent 60%);
}
.scn-presence-chamber-salique-law .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d6c39e 0%, #b8a07a 100%);
  animation: pc-sl-wall 4s ease-in-out infinite alternate;
}
.scn-presence-chamber-salique-law .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a6848 0%, #5a4a30 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-presence-chamber-salique-law .lectern {
  position: absolute; bottom: 22%; left: 50%; width: 50px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8b6f4a 0%, #5a462e 100%);
  border-radius: 8% 8% 3% 3%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: pc-sl-lectern 3s ease-in-out infinite;
}
.scn-presence-chamber-salique-law .document {
  position: absolute; bottom: 35%; left: 50%; width: 28px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #f5eed0 0%, #d9cba0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: pc-sl-doc 2s ease-in-out infinite alternate;
}
.scn-presence-chamber-salique-law .figure {
  position: absolute; bottom: 24%; left: 40%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #2e2a24 0%, #15120d 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  animation: pc-sl-fig 3.5s ease-in-out infinite;
}
.scn-presence-chamber-salique-law .candle {
  position: absolute; bottom: 30%; left: 55%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #f5e8c0 0%, #c8a870 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 14px 6px rgba(200,160,80,0.6), 0 0 28px 12px rgba(200,160,80,0.3);
  animation: pc-sl-candle 1.6s ease-in-out infinite alternate;
}
.scn-presence-chamber-salique-law .shadow-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 60%, transparent 0%, rgba(0,0,0,0.2) 50%, transparent 100%);
  animation: pc-sl-shadow 5s ease-in-out infinite alternate;
}
@keyframes pc-sl-wall {
  0% { filter: brightness(0.95); }
  50% { filter: brightness(1.05); }
  100% { filter: brightness(0.95); }
}
@keyframes pc-sl-lectern {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes pc-sl-doc {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(4deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes pc-sl-fig {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(4px) rotate(4deg); }
  50% { transform: translateX(8px) rotate(-2deg); }
  75% { transform: translateX(4px) rotate(3deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes pc-sl-candle {
  0% { opacity: 0.7; box-shadow: 0 0 10px 4px rgba(200,160,80,0.5); }
  50% { opacity: 1; box-shadow: 0 0 20px 8px rgba(200,160,80,0.7); }
  100% { opacity: 0.8; box-shadow: 0 0 12px 5px rgba(200,160,80,0.5); }
}
@keyframes pc-sl-shadow {
  0% { opacity: 0.1; }
  50% { opacity: 0.5; }
  100% { opacity: 0.1; }
}

/* presence-chamber-cantery-exposition (calm / bright-interior) */
.scn-presence-chamber-cantery-exposition {
  background:
    linear-gradient(180deg, #f4e7ce 0%, #dcccae 50%, #bfa98a 100%),
    radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 60%);
}
.scn-presence-chamber-cantery-exposition .bg-window {
  position: absolute; top: 0; left: 20%; width: 60%; height: 60%;
  background:
    linear-gradient(135deg, #aaccdd 0%, #88aac0 100%),
    radial-gradient(circle at 30% 20%, rgba(255,255,200,0.15) 0%, transparent 50%);
  border-radius: 2%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.2);
  animation: pc-ce-window 18s ease-in-out infinite alternate;
}
.scn-presence-chamber-cantery-exposition .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #8a745a 0%, #6b543e 100%);
}
.scn-presence-chamber-cantery-exposition .podium {
  position: absolute; bottom: 24%; left: 50%; width: 60px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a58a64 0%, #7a6242 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 16px rgba(0,0,0,0.3);
  animation: pc-ce-podium 7s ease-in-out infinite;
}
.scn-presence-chamber-cantery-exposition .cantery {
  position: absolute; bottom: 32%; left: 50%; width: 24px; height: 44px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3e32 0%, #261e16 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  animation: pc-ce-cantery 9s ease-in-out infinite;
}
.scn-presence-chamber-cantery-exposition .listener-a {
  position: absolute; bottom: 24%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3b3228 0%, #1c1610 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  animation: pc-ce-listen 11s ease-in-out infinite alternate;
}
.scn-presence-chamber-cantery-exposition .listener-b {
  position: absolute; bottom: 24%; right: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3b3228 0%, #1c1610 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  animation: pc-ce-listen 11s ease-in-out infinite alternate-reverse;
}
.scn-presence-chamber-cantery-exposition .light-beam {
  position: absolute; top: 0; left: 35%; width: 30%; height: 70%;
  background: linear-gradient(180deg, rgba(255,248,210,0.2) 0%, transparent 100%);
  filter: blur(15px);
  animation: pc-ce-beam 16s ease-in-out infinite alternate;
}
@keyframes pc-ce-window {
  0% { filter: brightness(0.9); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(0.95); }
}
@keyframes pc-ce-podium {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes pc-ce-cantery {
  0% { transform: translateX(-50%) rotate(-1deg) scaleY(1); }
  30% { transform: translateX(-50%) rotate(0deg) scaleY(1.01); }
  60% { transform: translateX(-50%) rotate(1deg) scaleY(1); }
  100% { transform: translateX(-50%) rotate(0deg) scaleY(1); }
}
@keyframes pc-ce-listen {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(1px) rotate(-1deg); }
}
@keyframes pc-ce-beam {
  0% { opacity: 0.2; transform: scaleX(0.95); }
  50% { opacity: 0.5; transform: scaleX(1.05); }
  100% { opacity: 0.3; transform: scaleX(0.95); }
}

/* presence-chamber-right-conscience (tense / bright-interior) */
.scn-presence-chamber-right-conscience {
  background:
    linear-gradient(180deg, #dac29e 0%, #b09774 50%, #8a6e4e 100%),
    radial-gradient(ellipse at 40% 50%, #f2dbbc 0%, transparent 70%);
}
.scn-presence-chamber-right-conscience .bg-columns {
  position: absolute; inset: 0 0 20% 0;
  background:
    linear-gradient(90deg, #b8a284 0%, transparent 5%, transparent 95%, #b8a284 100%),
    linear-gradient(180deg, #ccb494 0%, #a08668 100%);
  animation: pc-rc-columns 6s ease-in-out infinite alternate;
}
.scn-presence-chamber-right-conscience .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6b543e 0%, #4a3828 100%);
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.6);
}
.scn-presence-chamber-right-conscience .king {
  position: absolute; bottom: 20%; left: 50%; width: 28px; height: 48px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2e1e 0%, #1f160d 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: pc-rc-king 3s ease-in-out infinite alternate;
}
.scn-presence-chamber-right-conscience .flag {
  position: absolute; bottom: 28%; left: 60%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 0 0 10% 10% / 0 0 30% 30%;
  transform-origin: top left;
  animation: pc-rc-flag 1.6s ease-in-out infinite alternate;
}
.scn-presence-chamber-right-conscience .courtier {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3b3228 0%, #1c1610 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  animation: pc-rc-courtier 2.5s ease-in-out infinite;
}
.scn-presence-chamber-right-conscience .torch {
  position: absolute; bottom: 26%; right: 20%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #f5e8c0 0%, #c8a870 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 18px 8px rgba(200,160,80,0.7), 0 0 36px 16px rgba(200,160,80,0.3);
  animation: pc-rc-torch 1.8s ease-in-out infinite alternate;
}
.scn-presence-chamber-right-conscience .shadow {
  position: absolute; bottom: 20%; left: 40%; width: 120px; height: 50px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: pc-rc-shadow 4s ease-in-out infinite alternate;
}
@keyframes pc-rc-columns {
  0% { filter: brightness(0.9); }
  50% { filter: brightness(1.05); }
  100% { filter: brightness(0.85); }
}
@keyframes pc-rc-king {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02) rotate(1deg); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes pc-rc-flag {
  0% { transform: rotate(-8deg); }
  50% { transform: rotate(12deg); }
  100% { transform: rotate(-8deg); }
}
@keyframes pc-rc-courtier {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(3deg); }
  50% { transform: translateY(0) rotate(-2deg); }
  75% { transform: translateY(-1px) rotate(4deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes pc-rc-torch {
  0% { opacity: 0.6; box-shadow: 0 0 14px 6px rgba(200,160,80,0.6); }
  50% { opacity: 1; box-shadow: 0 0 24px 12px rgba(200,160,80,0.8); }
  100% { opacity: 0.7; box-shadow: 0 0 16px 8px rgba(200,160,80,0.6); }
}
@keyframes pc-rc-shadow {
  0% { opacity: 0.2; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.2); }
  100% { opacity: 0.3; transform: scaleX(1); }
}

.scn-harfleur-gates-ultimatum {
  background: linear-gradient(180deg, #7da0c0 0%, #5a7fa0 40%, #c8a050 70%, #b08040 100%),
              radial-gradient(ellipse at 30% 80%, #d4b060 0%, transparent 60%);
}
.scn-harfleur-gates-ultimatum .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #a0c8e8 0%, #7da0c0 50%, transparent 100%);
  opacity: 0.9;
  animation: hg-sky 8s ease-in-out infinite alternate;
}
.scn-harfleur-gates-ultimatum .walls {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 40%;
  background: linear-gradient(135deg, #b89050 0%, #8a6a30 30%, #7a5a28 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4);
}
.scn-harfleur-gates-ultimatum .gate {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 8% 8% 2% 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: hg-gate 15s ease-in-out infinite;
}
.scn-harfleur-gates-ultimatum .herald {
  position: absolute; bottom: 25%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%;
  transform-origin: bottom center;
  animation: hg-herald 4s ease-in-out infinite;
}
.scn-harfleur-gates-ultimatum .banner {
  position: absolute; bottom: 55%; left: 34%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #c8553d 0%, #a0402e 100%);
  border-radius: 0 20% 20% 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: hg-banner 2s ease-in-out infinite alternate;
}
.scn-harfleur-gates-ultimatum .dust {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 10%;
  background: radial-gradient(ellipse at 20% 100%, rgba(200,180,120,0.4) 0%, transparent 70%);
  animation: hg-dust 6s linear infinite;
}
.scn-harfleur-gates-ultimatum .shadow {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
}
@keyframes hg-sky     { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes hg-gate    { 0% { transform:translateX(-50%) scaleX(1); } 50% { transform:translateX(-50%) scaleX(0.98) translateY(2px); } 100% { transform:translateX(-50%) scaleX(1); } }
@keyframes hg-herald  { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(3px) rotate(-2deg); } 50% { transform:translateX(6px) rotate(1deg); } 75% { transform:translateX(3px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes hg-banner  { 0% { transform:rotate(-5deg); } 50% { transform:rotate(3deg) scaleY(1.05); } 100% { transform:rotate(-3deg); } }
@keyframes hg-dust    { 0% { opacity:0.2; transform:translateX(0); } 50% { opacity:0.5; transform:translateX(10px); } 100% { opacity:0.1; transform:translateX(20px); } }

/* ---------------------------------------------------------------- */
.scn-harfleur-violence-threat {
  background: linear-gradient(180deg, #7a3e2a 0%, #a05a30 40%, #d08040 70%, #e0a050 100%),
              radial-gradient(ellipse at 50% 60%, #ffa040 0%, transparent 70%);
}
.scn-harfleur-violence-threat .bg-fire {
  position: absolute; inset:0;
  background: radial-gradient(ellipse at 60% 80%, #ff8020 0%, #c04010 30%, transparent 60%);
  opacity:0.6;
  animation: hvt-fire 2s ease-in-out infinite alternate;
}
.scn-harfleur-violence-threat .soldier {
  position: absolute; bottom: 20%; left: 45%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 40% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hvt-soldier 3s ease-in-out infinite;
}
.scn-harfleur-violence-threat .sword {
  position: absolute; bottom: 50%; left: 52%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 10%;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  box-shadow: 0 0 6px rgba(255,200,100,0.5);
  animation: hvt-sword 2s ease-in-out infinite alternate;
}
.scn-harfleur-violence-threat .flame-core {
  position: absolute; bottom: 15%; left: 30%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #ffd040 0%, #ff8020 50%, transparent 80%);
  animation: hvt-flame 1.6s ease-in-out infinite alternate;
}
.scn-harfleur-violence-threat .smoke {
  position: absolute; top: 30%; left: 20%; right: 20%; height: 40%;
  background: radial-gradient(ellipse at 30% 40%, rgba(100,80,60,0.3) 0%, transparent 70%);
  filter: blur(12px);
  animation: hvt-smoke 6s linear infinite;
}
.scn-harfleur-violence-threat .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0;
}
@keyframes hvt-fire   { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes hvt-soldier{ 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-4px) rotate(3deg) scaleX(1.02); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes hvt-sword  { 0% { transform:rotate(-15deg) scaleY(1); } 50% { transform:rotate(-25deg) scaleY(1.1); } 100% { transform:rotate(-15deg) scaleY(1); } }
@keyframes hvt-flame  { 0% { transform:scaleY(1) translateY(0); opacity:0.8; } 50% { transform:scaleY(1.3) translateY(-5px); opacity:1; } 100% { transform:scaleY(0.9) translateY(2px); opacity:0.7; } }
@keyframes hvt-smoke  { 0% { transform:translateY(0) scaleX(1); opacity:0.3; } 50% { transform:translateY(-10px) scaleX(1.1); opacity:0.6; } 100% { transform:translateY(0) scaleX(1); opacity:0.2; } }

/* ---------------------------------------------------------------- */
.scn-harfleur-mercy-appeal {
  background: linear-gradient(180deg, #b0d0e0 0%, #e8d8a0 40%, #f0e0b0 70%, #c8a070 100%),
              radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%);
}
.scn-harfleur-mercy-appeal .sky-bright {
  position: absolute; inset:0;
  background: linear-gradient(180deg, #d0e4f0 0%, #f0e8c0 60%, transparent 100%);
  animation: hma-sky 6s ease-in-out infinite alternate;
}
.scn-harfleur-mercy-appeal .king {
  position: absolute; bottom: 25%; left: 50%; width: 24px; height: 44px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: hma-king 3s ease-in-out infinite;
}
.scn-harfleur-mercy-appeal .arm-up {
  position: absolute; bottom: 55%; left: 52%; width: 6px; height: 20px;
  background: #2a1a0a;
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  transform: rotate(30deg);
  animation: hma-arm 2s ease-in-out infinite alternate;
}
.scn-harfleur-mercy-appeal .clouds {
  position: absolute; top: 15%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 20% 50%, rgba(255,255,255,0.5) 0%, transparent 60%),
              radial-gradient(ellipse at 70% 30%, rgba(255,255,240,0.4) 0%, transparent 50%);
  filter: blur(8px);
  animation: hma-clouds 20s linear infinite;
}
.scn-harfleur-mercy-appeal .wind-sweep {
  position: absolute; top: 40%; left: 0; right: 0; height: 6px;
  background: linear-gradient(90deg, transparent, rgba(200,180,120,0.3) 40%, transparent 60%);
  animation: hma-wind 3s ease-in-out infinite alternate;
}
.scn-harfleur-mercy-appeal .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 30% 30%;
}
@keyframes hma-sky   { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes hma-king  { 0% { transform:translateX(-50%) rotate(0deg); } 50% { transform:translateX(-50%) rotate(2deg) translateY(-2px); } 100% { transform:translateX(-50%) rotate(-1deg); } }
@keyframes hma-arm   { 0% { transform:rotate(25deg); } 50% { transform:rotate(35deg) scaleY(1.1); } 100% { transform:rotate(28deg); } }
@keyframes hma-clouds{ 0% { transform:translateX(0); } 50% { transform:translateX(15px); } 100% { transform:translateX(-10px); } }
@keyframes hma-wind  { 0% { transform:translateX(-10px); opacity:0.2; } 50% { transform:translateX(5px); opacity:0.5; } 100% { transform:translateX(-5px); opacity:0.3; } }

/* ---------------------------------------------------------------- */
.scn-harfleur-surrender {
  background: linear-gradient(180deg, #98b8d0 0%, #c8a860 40%, #d8b060 70%, #e0c080 100%),
              radial-gradient(ellipse at 50% 80%, #ffe0a0 0%, transparent 70%);
}
.scn-harfleur-surrender .sky-soft {
  position: absolute; inset:0;
  background: linear-gradient(180deg, #b0cce0 0%, #d8c898 60%, transparent 100%);
  animation: hs-sky 10s ease-in-out infinite alternate;
}
.scn-harfleur-surrender .walls {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 40%;
  background: linear-gradient(135deg, #b89050 0%, #8a6a30 30%, #7a5a28 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
  opacity:0.9;
}
.scn-harfleur-surrender .gate-open {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 8% 8% 2% 2%;
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: hs-gate 6s ease-in-out infinite alternate;
}
.scn-harfleur-surrender .king-party {
  position: absolute; bottom: 25%; left: 40%; width: 24px; height: 42px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: hs-king 4s ease-in-out infinite;
}
.scn-harfleur-surrender .flag {
  position: absolute; bottom: 55%; left: 42%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #5e1a1d 0%, #4a1012 100%);
  border-radius: 0 20% 20% 0;
  transform-origin: top left;
  animation: hs-flag 3s ease-in-out infinite alternate;
}
.scn-harfleur-surrender .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-harfleur-surrender .light-beam {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  filter: blur(10px);
  animation: hs-beam 8s ease-in-out infinite alternate;
}
@keyframes hs-sky  { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes hs-gate { 0% { transform:translateX(-50%) scaleX(1); } 50% { transform:translateX(-50%) scaleX(1.05) translateY(2px); } 100% { transform:translateX(-50%) scaleX(0.98); } }
@keyframes hs-king { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(-3px) rotate(-2deg); } 50% { transform:translateX(-6px) rotate(2deg); } 75% { transform:translateX(-3px) rotate(0deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes hs-flag { 0% { transform:rotate(-10deg); } 50% { transform:rotate(5deg) scaleY(1.1); } 100% { transform:rotate(-5deg); } }
@keyframes hs-beam { 0% { opacity:0.3; transform:scaleY(1); } 50% { opacity:0.6; transform:scaleY(1.2); } 100% { opacity:0.2; transform:scaleY(0.9); } }

.scn-burgundy-conjure { 
  background: linear-gradient(180deg, #f5e6d0 0%, #e3c9a8 30%, #d4b68a 70%) , radial-gradient(ellipse at 30% 80%, #d4b68a 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-burgundy-conjure .bg-wall {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #f5e6d0 0%, #ece0c0 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.05);
}
.scn-burgundy-conjure .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #c8a67a 0%, #b0885e 100%);
  border-radius: 60% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.08);
}
.scn-burgundy-conjure .circle-magic {
  position: absolute; bottom: 28%; left: 50%; transform: translate(-50%, -50%);
  width: 180px; height: 180px;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 50%, rgba(200,120,100,0.2) 0%, rgba(200,120,100,0.05) 70%, transparent 100%);
  border: 2px dashed #a0461a;
  box-shadow: 0 0 30px rgba(160,70,26,0.3);
  animation: bc-pulse 6s ease-in-out infinite;
}
.scn-burgundy-conjure .figure-maid {
  position: absolute; bottom: 25%; left: 50%; width: 32px; height: 80px; 
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4a373 0%, #b07d5a 50%, #8a5e3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.2);
  animation: bc-figure 8s ease-in-out infinite;
}
.scn-burgundy-conjure .blindfold {
  position: absolute; bottom: 62%; left: 50%; width: 24px; height: 10px;
  transform: translateX(-50%) rotate(10deg);
  background: #702243;
  border-radius: 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: bc-blindfold 4s ease-in-out infinite alternate;
}
.scn-burgundy-conjure .rose {
  position: absolute; width: 16px; height: 16px;
  border-radius: 50%;
  background: radial-gradient(circle at 40% 40%, #5e1a1d 0%, #702243 50%, #8b2d45 100%);
  box-shadow: 0 0 8px rgba(110,30,50,0.4);
}
.scn-burgundy-conjure .rose-1 {
  bottom: 30%; left: 30%;
  animation: bc-rose 7s ease-in-out infinite;
}
.scn-burgundy-conjure .rose-2 {
  bottom: 35%; right: 25%;
  animation: bc-rose 7s ease-in-out infinite reverse;
  width: 20px; height: 20px;
}
.scn-burgundy-conjure .sparkle {
  position: absolute; top: 40%; left: 45%; width: 6px; height: 6px;
  background: #ffeaa7;
  border-radius: 50%;
  box-shadow: 0 0 12px #ffeaa7, 0 0 24px #fdcb6e;
  animation: bc-sparkle 3s ease-in-out infinite;
}
@keyframes bc-pulse {
  0% { transform: translate(-50%, -50%) scale(1); opacity: 0.7; }
  50% { transform: translate(-50%, -50%) scale(1.05); opacity: 1; }
  100% { transform: translate(-50%, -50%) scale(1); opacity: 0.7; }
}
@keyframes bc-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  25% { transform: translateX(-50%) translateY(-4px) rotate(0deg); }
  50% { transform: translateX(-40%) translateY(-2px) rotate(2deg); }
  75% { transform: translateX(-60%) translateY(-4px) rotate(0deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
}
@keyframes bc-blindfold {
  0% { transform: translateX(-50%) rotate(10deg) scaleX(1); opacity: 0.8; }
  50% { transform: translateX(-50%) rotate(-5deg) scaleX(1.1); opacity: 1; }
  100% { transform: translateX(-50%) rotate(10deg) scaleX(1); opacity: 0.8; }
}
@keyframes bc-rose {
  0% { transform: translateY(0) rotate(0deg) scale(0.9); opacity: 0.6; }
  50% { transform: translateY(-12px) rotate(20deg) scale(1.1); opacity: 1; }
  100% { transform: translateY(0) rotate(0deg) scale(0.9); opacity: 0.6; }
}
@keyframes bc-sparkle {
  0% { opacity: 0; transform: scale(0); }
  50% { opacity: 0.8; transform: scale(1); }
  100% { opacity: 0; transform: scale(0); }
}

.scn-item-conjure-circle {
  background: linear-gradient(180deg, #fdf6e3 0%, #f5e6d0 50%, #e3c9a8 100%) , radial-gradient(ellipse at 70% 30%, #e3c9a8 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-item-conjure-circle .bg-wall {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fdf6e3 0%, #f0dfc0 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.03);
}
.scn-item-conjure-circle .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #d4b68a 0%, #b59a73 100%);
  border-radius: 30% 70% 0 0 / 40% 20% 0 0;
}
.scn-item-conjure-circle .circle-magic {
  position: absolute; bottom: 30%; left: 50%; transform: translate(-50%, -50%);
  width: 200px; height: 200px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(200, 130, 100, 0.15) 0%, transparent 80%);
  border: 2px dashed #a0461a;
  box-shadow: 0 0 40px rgba(160, 70, 26, 0.2);
  animation: ic-pulse 8s ease-in-out infinite;
}
.scn-item-conjure-circle .figure-wink-left {
  position: absolute; bottom: 35%; left: 38%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #d4a373 0%, #b07d5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ic-wink-left 6s ease-in-out infinite;
}
.scn-item-conjure-circle .figure-wink-right {
  position: absolute; bottom: 35%; right: 38%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #c8966a 0%, #a07050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ic-wink-right 6s ease-in-out infinite reverse;
}
.scn-item-conjure-circle .hearts {
  position: absolute; width: 12px; height: 12px;
  background: #b87878;
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(184, 120, 120, 0.4);
}
.scn-item-conjure-circle .heart-1 {
  bottom: 60%; left: 35%;
  animation: ic-heart 6s ease-in-out infinite;
}
.scn-item-conjure-circle .heart-2 {
  bottom: 55%; right: 30%;
  width: 16px; height: 16px;
  animation: ic-heart 6s ease-in-out infinite reverse;
}
@keyframes ic-pulse {
  0% { transform: translate(-50%, -50%) scale(1); opacity: 0.6; }
  50% { transform: translate(-50%, -50%) scale(1.03); opacity: 0.9; }
  100% { transform: translate(-50%, -50%) scale(1); opacity: 0.6; }
}
@keyframes ic-wink-left {
  0% { transform: rotate(0deg) scaleY(1); }
  25% { transform: rotate(-10deg) scaleY(0.95); }
  50% { transform: rotate(0deg) scaleY(1); }
  75% { transform: rotate(10deg) scaleY(0.95); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes ic-wink-right {
  0% { transform: rotate(0deg) scaleY(1); }
  25% { transform: rotate(10deg) scaleY(0.95); }
  50% { transform: rotate(0deg) scaleY(1); }
  75% { transform: rotate(-10deg) scaleY(0.95); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes ic-heart {
  0% { transform: translateY(0) scale(0.8); opacity: 0.3; }
  50% { transform: translateY(-20px) scale(1.1); opacity: 0.8; }
  100% { transform: translateY(0) scale(0.8); opacity: 0.3; }
}

.scn-item-fly {
  background: linear-gradient(180deg, #fef9ef 0%, #f5e6d0 50%, #e3c9a8 100%) , radial-gradient(ellipse at 50% 100%, #e3c9a8 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-item-fly .bg-wall {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fef9ef 0%, #f0dfc0 100%);
}
.scn-item-fly .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #d4b68a 0%, #b59a73 100%);
  border-radius: 60% 40% 0 0 / 20% 20% 0 0;
}
.scn-item-fly .fly-body {
  position: absolute; top: 30%; left: 40%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  z-index: 2;
  animation: if-buzz 1.5s ease-in-out infinite alternate;
}
.scn-item-fly .fly-wing {
  position: absolute; top: 28%; width: 40px; height: 20px;
  background: rgba(255,255,255,0.4);
  border-radius: 50%;
  filter: blur(2px);
  z-index: 1;
  animation: if-wing 1.5s ease-in-out infinite alternate;
}
.scn-item-fly .wing-left {
  left: 36%; transform: rotate(-30deg);
}
.scn-item-fly .wing-right {
  left: 44%; transform: rotate(30deg);
  animation-delay: 0.15s;
}
.scn-item-fly .fly-eye {
  position: absolute; top: 30%; width: 6px; height: 6px;
  background: radial-gradient(circle, #3a2218 0%, #1a1008 100%);
  border-radius: 50%;
  z-index: 3;
}
.scn-item-fly .eye-left { left: 40%; }
.scn-item-fly .eye-right { left: 50%; }
.scn-item-fly .maid-figure {
  position: absolute; bottom: 20%; left: 25%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #d4a373 0%, #b07d5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.2);
  animation: if-maid-step 5s ease-in-out infinite;
}
.scn-item-fly .sun-ray {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(135deg, rgba(255,200,50,0.05) 0%, transparent 50%, rgba(255,200,50,0.03) 100%);
  pointer-events: none;
  animation: if-sun 10s ease-in-out infinite alternate;
}
@keyframes if-buzz {
  0% { transform: translate(0, 0) rotate(-2deg); }
  100% { transform: translate(2px, -1px) rotate(2deg); }
}
@keyframes if-wing {
  0% { transform: rotate(-30deg) scaleY(0.6); opacity: 0.3; }
  100% { transform: rotate(-30deg) scaleY(1); opacity: 0.7; }
}
@keyframes if-maid-step {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(10px) translateY(-5px) rotate(3deg); }
  50% { transform: translateX(0) translateY(0); }
  75% { transform: translateX(-10px) translateY(-5px) rotate(-3deg); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes if-sun {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}

.scn-cite-maidens {
  background: linear-gradient(180deg, #f9d8a0 0%, #f5c67a 30%, #e8b050 70%) , radial-gradient(ellipse at 50% 0%, #f9d8a0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-cite-maidens .bg-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fef0d0 0%, #f9d8a0 100%);
}
.scn-cite-maidens .bg-city {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(0deg, #c8a67a 0%, #b0885e 100%);
  border-radius: 20% 20% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.1);
}
.scn-cite-maidens .maid-silhouette {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 100px;
  background: linear-gradient(180deg, #3a2218 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  z-index: 2;
  animation: cm-maid 12s ease-in-out infinite;
}
.scn-cite-maidens .city-tower {
  position: absolute; bottom: 5%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #d4b68a 0%, #b59a73 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -5px 0 10px rgba(0,0,0,0.2);
}
.scn-cite-maidens .tower-1 { left: 20%; height: 100px; animation: cm-tower 15s ease-in-out infinite; }
.scn-cite-maidens .tower-2 { left: 40%; height: 140px; animation: cm-tower 15s ease-in-out infinite reverse; }
.scn-cite-maidens .tower-3 { left: 60%; height: 110px; animation: cm-tower 15s ease-in-out infinite; }
.scn-cite-maidens .window-light {
  position: absolute; bottom: 30%; left: 35%; width: 14px; height: 18px;
  background: radial-gradient(circle, #ffeaa7 0%, #fdcb6e 100%);
  border-radius: 10%;
  box-shadow: 0 0 20px #fdcb6e, 0 0 40px rgba(253,203,110,0.3);
  animation: cm-glow 4s ease-in-out infinite alternate;
}
.scn-cite-maidens .perspective-line {
  position: absolute; bottom: 30%; width: 100%; height: 1px;
  background: rgba(180,140,80,0.3);
  transform-origin: bottom center;
}
.scn-cite-maidens .line-1 {
  bottom: 30%; left: 0;
  transform: rotate(10deg);
  animation: cm-line 8s ease-in-out infinite alternate;
}
.scn-cite-maidens .line-2 {
  bottom: 30%; right: 0;
  transform: rotate(-8deg);
  animation: cm-line 8s ease-in-out infinite alternate-reverse;
}
@keyframes cm-maid {
  0% { transform: translateX(-50%) scaleY(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scaleY(1.03); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(1); opacity: 0.9; }
}
@keyframes cm-tower {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes cm-glow {
  0% { box-shadow: 0 0 10px #fdcb6e, 0 0 30px rgba(253,203,110,0.2); opacity: 0.6; }
  50% { box-shadow: 0 0 25px #ffeaa7, 0 0 60px rgba(253,203,110,0.5); opacity: 1; }
  100% { box-shadow: 0 0 10px #fdcb6e, 0 0 30px rgba(253,203,110,0.2); opacity: 0.6; }
}
@keyframes cm-line {
  0% { transform: rotate(10deg); opacity: 0.2; }
  100% { transform: rotate(15deg); opacity: 0.5; }
}

/* chorus-night-before */
.scn-chorus-night-before {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a4a 100%),
              radial-gradient(ellipse at 50% 30%, rgba(150,140,180,.15) 0%, transparent 70%);
}
.scn-chorus-night-before .sky    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #101030 0%, #0a0a1a 100%); }
.scn-chorus-night-before .moon   { position:absolute; top:8%; left:70%; width:30px; height:30px; background: radial-gradient(circle, rgba(180,180,220,.6), rgba(180,180,220,.1) 70%); border-radius:50%; box-shadow: 0 0 40px 12px rgba(150,150,200,.2); animation: cn-moon 8s ease-in-out infinite alternate; }
.scn-chorus-night-before .hills  { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a2a1a, #0a1a0a); border-radius: 30% 70% 0 0 / 50% 60% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.6); }
.scn-chorus-night-before .campfire { position:absolute; width:16px; height:16px; border-radius:50%; background: radial-gradient(circle at 50% 50%, #ffa030, #d06020 40%, transparent 70%); box-shadow: 0 0 20px 6px rgba(255,160,48,.5); }
.scn-chorus-night-before .campfire-1 { bottom:32%; left:20%; animation: cn-fire 2s ease-in-out infinite alternate; }
.scn-chorus-night-before .campfire-2 { bottom:35%; right:25%; animation: cn-fire 2.5s ease-in-out infinite alternate-reverse; }
.scn-chorus-night-before .sentinel { position:absolute; bottom:32%; left:50%; width:14px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cn-sentinel 6s ease-in-out infinite; }
.scn-chorus-night-before .cloud  { position:absolute; top:12%; left:-60px; width:80px; height:16px; background: linear-gradient(90deg, rgba(30,30,50,.5), rgba(30,30,50,.1)); border-radius:50%; filter: blur(6px); animation: cn-cloud 40s linear infinite; }
@keyframes cn-moon     { 0% { opacity:.7; transform: translateY(0) } 50% { opacity:.9; transform: translateY(-2px) } 100% { opacity:.75; transform: translateY(1px) } }
@keyframes cn-fire     { 0% { transform: scale(1); opacity:.8 } 50% { transform: scale(1.3); opacity:1 } 100% { transform: scale(.9); opacity:.7 } }
@keyframes cn-sentinel { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(-.5deg) } }
@keyframes cn-cloud    { 0% { transform: translateX(0) } 100% { transform: translateX(130vw) } }

/* chorus-poor-english-sacrifice */
.scn-chorus-poor-english-sacrifice {
  background: linear-gradient(180deg, #0f0f1f 0%, #1a1a30 50%, #0a0a18 100%),
              radial-gradient(ellipse at 50% 20%, rgba(200,120,60,.08) 0%, transparent 70%);
}
.scn-chorus-poor-english-sacrifice .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.3) 100%); }
.scn-chorus-poor-english-sacrifice .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a2a1a, #1a1a0a); border-radius: 20% 20% 0 0; }
.scn-chorus-poor-english-sacrifice .bigfire { position:absolute; bottom:30%; left:50%; width:30px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, #ffb040, #e07020 40%, transparent 70%); box-shadow: 0 0 40px 12px rgba(255,176,64,.5); animation: cs-fire 1.8s ease-in-out infinite alternate; }
.scn-chorus-poor-english-sacrifice .figure { position:absolute; bottom:30%; width:16px; height:34px; background: linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-chorus-poor-english-sacrifice .figure-1 { left:30%; animation: cs-huddle 4s ease-in-out infinite; }
.scn-chorus-poor-english-sacrifice .figure-2 { right:30%; animation: cs-huddle 5s ease-in-out infinite reverse; }
.scn-chorus-poor-english-sacrifice .ghost   { position:absolute; width:20px; height:40px; background: radial-gradient(ellipse at 50% 30%, rgba(140,140,180,.25), rgba(140,140,180,.05) 70%); border-radius:50%; filter: blur(4px); animation: cs-ghost 12s ease-in-out infinite; }
.scn-chorus-poor-english-sacrifice .ghost-1 { top:20%; left:15%; animation-duration:14s; }
.scn-chorus-poor-english-sacrifice .ghost-2 { top:15%; right:20%; animation-duration:16s; animation-delay:-4s; }
.scn-chorus-poor-english-sacrifice .tree    { position:absolute; bottom:30%; left:70%; width:12px; height:50px; background: linear-gradient(180deg, #1a2a1a, #0a1a0a); border-radius: 30% 30% 10% 10%; transform-origin: bottom center; animation: cs-tree 20s ease-in-out infinite; }
@keyframes cs-fire   { 0% { transform: translateX(-50%) scale(1); opacity:.8 } 50% { transform: translateX(-50%) scale(1.4); opacity:1 } 100% { transform: translateX(-50%) scale(.9); opacity:.7 } }
@keyframes cs-huddle { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes cs-ghost  { 0% { transform: translateY(0) rotate(0) scale(1); opacity:.3 } 50% { transform: translateY(-8px) rotate(3deg) scale(1.1); opacity:.6 } 100% { transform: translateY(0) rotate(0) scale(1); opacity:.3 } }
@keyframes cs-tree   { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }

/* chorus-harry-in-night */
.scn-chorus-harry-in-night {
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a40 40%, #2a2a50 100%),
              radial-gradient(ellipse at 70% 30%, rgba(220,200,180,.1) 0%, transparent 60%);
}
.scn-chorus-harry-in-night .sky-night { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #101040 0%, #0a0a30 100%); }
.scn-chorus-harry-in-night .moon-light{ position:absolute; top:8%; left:65%; width:40px; height:40px; background: radial-gradient(circle, rgba(180,180,240,.5), rgba(180,180,240,.05) 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(180,180,240,.2); animation: ch-moon 12s ease-in-out infinite alternate; }
.scn-chorus-harry-in-night .ground-night{ position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a2a2a, #0a1a1a); border-radius: 40% 20% 0 0; }
.scn-chorus-harry-in-night .figure-harry{ position:absolute; bottom:28%; left:40%; width:18px; height:40px; background: linear-gradient(180deg, #3a3a5a, #1a1a3a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px 6px rgba(220,200,180,.4); transform-origin: bottom center; animation: ch-harry 10s ease-in-out infinite; }
.scn-chorus-harry-in-night .aura      { position:absolute; bottom:24%; left:39%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,220,180,.25), transparent 70%); border-radius:50%; filter: blur(8px); animation: ch-aura 6s ease-in-out infinite alternate; }
.scn-chorus-harry-in-night .soldier   { position:absolute; bottom:28%; width:14px; height:32px; background: linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-chorus-harry-in-night .soldier-1 { left:55%; animation: ch-soldier 8s ease-in-out infinite; }
.scn-chorus-harry-in-night .soldier-2 { left:30%; animation: ch-soldier 9s ease-in-out infinite reverse; }
@keyframes ch-moon    { 0% { opacity:.6; transform: scale(1) } 50% { opacity:.9; transform: scale(1.05) } 100% { opacity:.7; transform: scale(1) } }
@keyframes ch-harry   { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(0) } }
@keyframes ch-aura    { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.2) } 100% { opacity:.6; transform: scale(1.1) } }
@keyframes ch-soldier { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(-1deg) translateY(0) } }

/* agincourt-henry-conscience */
.scn-agincourt-henry-conscience {
  background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 50%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 60%, rgba(180,150,100,.08) 0%, transparent 70%);
}
.scn-agincourt-henry-conscience .tent-wall    { position:absolute; inset:10% 10% 15% 10%; background: linear-gradient(180deg, #2a2a3a, #1a1a2a); border-radius: 20% 20% 5% 5%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-agincourt-henry-conscience .candle       { position:absolute; bottom:30%; left:55%; width:8px; height:20px; background: linear-gradient(180deg, #e0a040, #a07020); border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%; box-shadow: 0 0 16px 6px rgba(200,140,60,.6); animation: ah-candle 3s ease-in-out infinite alternate; }
.scn-agincourt-henry-conscience .figure-henry { position:absolute; bottom:25%; left:40%; width:18px; height:38px; background: linear-gradient(180deg, #2a2a4a, #1a1a3a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ah-figure 8s ease-in-out infinite; }
.scn-agincourt-henry-conscience .figure-gloucester { position:absolute; bottom:25%; left:52%; width:16px; height:36px; background: linear-gradient(180deg, #2a2a3a, #1a1a2a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ah-figure 8s ease-in-out infinite reverse; }
.scn-agincourt-henry-conscience .shadow       { position:absolute; bottom:22%; left:35%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); animation: ah-shadow 6s ease-in-out infinite alternate; }
.scn-agincourt-henry-conscience .glow-pool    { position:absolute; bottom:32%; left:50%; width:40px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(200,160,80,.2), transparent 60%); filter: blur(6px); animation: ah-glow 4s ease-in-out infinite alternate; }
@keyframes ah-candle { 0% { transform: scaleY(1); opacity:.7 } 50% { transform: scaleY(1.2); opacity:1 } 100% { transform: scaleY(1); opacity:.8 } }
@keyframes ah-figure { 0% { transform: rotate(-1deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes ah-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }
@keyframes ah-glow   { 0% { opacity:.5; transform: translateX(-50%) scale(1) } 50% { opacity:.8; transform: translateX(-50%) scale(1.1) } 100% { opacity:.6; transform: translateX(-50%) scale(1) } }

.scn-french-court-dauphin-boast { background: linear-gradient(180deg, #d4c8a8 0%, #b8a888 40%, #8a7a5a 100%), radial-gradient(ellipse at 50% 0%, #fff0c0 0%, transparent 60%); }
.scn-french-court-dauphin-boast .bg-wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #d4c8a8 0%, #c4b898 60%, #a09070 100%); box-shadow: inset 0 12px 30px rgba(0,0,0,.25); }
.scn-french-court-dauphin-boast .floor { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; }
.scn-french-court-dauphin-boast .pillar-left { position:absolute; top:20%; left:12%; width:20px; height:60%; background: linear-gradient(90deg, #b0a080 0%, #d0c0a0 30%, #b0a080 70%); border-radius: 4px; box-shadow: inset -4px 0 8px rgba(0,0,0,.3); }
.scn-french-court-dauphin-boast .pillar-right { position:absolute; top:20%; right:12%; width:20px; height:60%; background: linear-gradient(90deg, #b0a080 0%, #d0c0a0 30%, #b0a080 70%); border-radius: 4px; box-shadow: inset -4px 0 8px rgba(0,0,0,.3); }
.scn-french-court-dauphin-boast .throne { position:absolute; bottom:40%; left:50%; transform:translateX(-50%); width:70px; height:50px; background: linear-gradient(180deg, #c89a6a 0%, #a07a4a 100%); border-radius: 10% 10% 50% 50% / 20% 20% 60% 60%; box-shadow: 0 6px 12px rgba(0,0,0,.4); }
.scn-french-court-dauphin-boast .figure-dauphin { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:22px; height:55px; background: linear-gradient(180deg, #c89060 0%, #8a6030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: sc1-fig 3s ease-in-out infinite alternate; }
.scn-french-court-dauphin-boast .ball { position:absolute; bottom:52%; left:56%; width:12px; height:12px; background: radial-gradient(circle, #e0c060 0%, #c0a040 70%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: sc1-ball 2s ease-in-out infinite alternate; }
.scn-french-court-dauphin-boast .banner { position:absolute; top:15%; right:18%; width:40px; height:80px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 0 0 20% 20% / 0 0 40% 40%; transform: skewY(-5deg); animation: sc1-banner 4s ease-in-out infinite; }
.scn-french-court-dauphin-boast .candle { position:absolute; bottom:35%; left:35%; width:4px; height:16px; background: linear-gradient(180deg, #e0c060 0%, #c0a040 100%); border-radius: 2px; }
.scn-french-court-dauphin-boast .candle::after { content:''; position:absolute; top:-8px; left:-3px; width:10px; height:10px; background: radial-gradient(circle, #ffd080 0%, #ffb040 60%); border-radius: 50%; box-shadow: 0 0 16px 8px rgba(255,208,128,.4); animation: sc1-candle 2s ease-in-out infinite alternate; }
@keyframes sc1-fig { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes sc1-ball { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(4px,-6px) scale(1.1); } 100% { transform: translate(-2px,-2px) scale(0.95); } }
@keyframes sc1-banner { 0% { transform: skewY(-5deg); } 50% { transform: skewY(-1deg) scaleY(1.02); } 100% { transform: skewY(-5deg); } }
@keyframes sc1-candle { 0% { opacity:.7; box-shadow:0 0 12px 4px rgba(255,208,128,.3); } 50% { opacity:1; box-shadow:0 0 24px 12px rgba(255,208,128,.6); } 100% { opacity:.8; box-shadow:0 0 16px 6px rgba(255,208,128,.4); } }

.scn-french-court-bitter-answer { background: linear-gradient(180deg, #b0a080 0%, #908060 40%, #6a5a3a 100%), radial-gradient(ellipse at 50% 0%, #e0d0b0 0%, transparent 70%); }
.scn-french-court-bitter-answer .bg-deep { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b8a888 0%, #9a8a6a 80%); box-shadow: inset 0 10px 25px rgba(0,0,0,.3); }
.scn-french-court-bitter-answer .bg-mid { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
.scn-french-court-bitter-answer .table { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:120px; height:8px; background: linear-gradient(90deg, #6a5a3a 0%, #8a7a5a 50%, #6a5a3a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-french-court-bitter-answer .figure-king { position:absolute; bottom:30%; left:40%; width:24px; height:60px; background: linear-gradient(180deg, #c89060 0%, #8a6030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: sc2-king 4s ease-in-out infinite alternate; }
.scn-french-court-bitter-answer .hands { position:absolute; bottom:28%; left:44%; width:18px; height:10px; background: linear-gradient(180deg, #c89060 0%, #a07040 100%); border-radius: 50%; transform: rotate(-10deg); animation: sc2-hands 3s ease-in-out infinite alternate; }
.scn-french-court-bitter-answer .document { position:absolute; bottom:26%; left:52%; width:30px; height:20px; background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%); border-radius: 2px; transform: rotate(5deg); box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: sc2-doc 5s ease-in-out infinite; }
.scn-french-court-bitter-answer .candle { position:absolute; bottom:38%; left:60%; width:4px; height:18px; background: linear-gradient(180deg, #e0c060 0%, #c0a040 100%); border-radius: 2px; animation: sc2-candle 2s ease-in-out infinite alternate; }
.scn-french-court-bitter-answer .candle::after { content:''; position:absolute; top:-8px; left:-3px; width:10px; height:10px; background: radial-gradient(circle, #ffd080 0%, #ffb040 60%); border-radius: 50%; box-shadow: 0 0 16px 8px rgba(255,208,128,.4); animation: sc2-flame 2s ease-in-out infinite alternate; }
@keyframes sc2-king { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes sc2-hands { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-1px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes sc2-doc { 0% { transform: rotate(5deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(5deg) scale(1); } }
@keyframes sc2-flame { 0% { opacity:.7; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.8; transform: scale(1); } }

.scn-chorus-harfleur-siege { background: linear-gradient(180deg, #708090 0%, #4a5a6a 50%, #2a3a4a 100%), radial-gradient(ellipse at 50% 60%, #5a6a7a 0%, transparent 70%); }
.scn-chorus-harfleur-siege .sky-overcast { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8090a0 0%, #506070 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: sc3-sky 15s ease-in-out infinite alternate; }
.scn-chorus-harfleur-siege .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #304050 0%, #1a2a3a 100%); border-radius: 60% 40% 0 0 / 30% 70% 0 0; box-shadow: inset 0 10px 25px rgba(0,0,0,.4); animation: sc3-sea 20s linear infinite alternate; }
.scn-chorus-harfleur-siege .ship-hull { position:absolute; bottom:30%; left:30%; width:80px; height:25px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 50% 50% / 30% 30% 60% 60%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: sc3-hull 6s ease-in-out infinite; }
.scn-chorus-harfleur-siege .ship-sail { position:absolute; bottom:48%; left:34%; width:30px; height:40px; background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%); border-radius: 50% 20% 20% 50% / 60% 30% 30% 60%; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: sc3-sail 5s ease-in-out infinite alternate; }
.scn-chorus-harfleur-siege .ship-boy { position:absolute; bottom:44%; left:42%; width:8px; height:14px; background: linear-gradient(180deg, #708090 0%, #405060 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: sc3-boy 3s ease-in-out infinite alternate; }
.scn-chorus-harfleur-siege .streamer { position:absolute; top:18%; right:25%; width:60px; height:4px; background: linear-gradient(90deg, #b87878 0%, #c8553d 100%); border-radius: 2px; transform: rotate(-20deg); animation: sc3-streamer 8s ease-in-out infinite; }
.scn-chorus-harfleur-siege .flag { position:absolute; top:20%; right:30%; width:20px; height:14px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 0 50% 50% 0 / 0 60% 60% 0; transform: rotate(-5deg); animation: sc3-flag 4s ease-in-out infinite alternate; }
@keyframes sc3-sky { 0% { opacity:.8; } 50% { opacity:.95; } 100% { opacity:.7; } }
@keyframes sc3-sea { 0% { background-position: 0% 0%; } 50% { background-position: 100% 0%; } 100% { background-position: 0% 0%; } }
@keyframes sc3-hull { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sc3-sail { 0% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(-5deg) scaleX(1.05); } 100% { transform: rotate(-10deg) scaleX(1); } }
@keyframes sc3-boy { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sc3-streamer { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(10px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes sc3-flag { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(0deg) scaleY(1.1); } 100% { transform: rotate(-5deg) scaleY(1); } }

.scn-chorus-navy-vision { background: linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 40%, #2a3a4a 100%), radial-gradient(ellipse at 50% 60%, #3a4a5a 0%, transparent 70%); }
.scn-chorus-navy-vision .sky-overcast { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #8090a0 0%, #506070 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: sc4-sky 18s ease-in-out infinite alternate; }
.scn-chorus-navy-vision .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #304050 0%, #1a2a3a 100%); border-radius: 40% 60% 0 0 / 20% 80% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,.4); animation: sc4-sea 25s linear infinite alternate; }
.scn-chorus-navy-vision .city-wall { position:absolute; bottom:38%; left:15%; width:120px; height:30px; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-chorus-navy-vision .city-towers { position:absolute; bottom:55%; left:20%; width:16px; height:35px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: sc4-tower 6s ease-in-out infinite; }
.scn-chorus-navy-vision .city-towers::before { content:''; position:absolute; left:24px; width:16px; height:35px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; }
.scn-chorus-navy-vision .ship-1 { position:absolute; bottom:26%; right:20%; width:60px; height:18px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 50% 50% / 30% 30% 60% 60%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: sc4-ship1 8s ease-in-out infinite; }
.scn-chorus-navy-vision .ship-2 { position:absolute; bottom:32%; right:8%; width:40px; height:12px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 50% 50% / 30% 30% 60% 60%; box-shadow: 0 3px 6px rgba(0,0,0,.4); animation: sc4-ship2 10s ease-in-out infinite; animation-delay: 2s; }
.scn-chorus-navy-vision .wave { position:absolute; bottom:15%; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, #1a2a3a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; filter: blur(4px); animation: sc4-wave 12s linear infinite alternate; }
@keyframes sc4-sky { 0% { opacity:.75; } 50% { opacity:.9; } 100% { opacity:.65; } }
@keyframes sc4-sea { 0% { background-position: 0% 0%; } 50% { background-position: 100% 0%; } 100% { background-position: 0% 0%; } }
@keyframes sc4-tower { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes sc4-ship1 { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sc4-ship2 { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sc4-wave { 0% { transform: translateX(0); } 100% { transform: translateX(30px); } }

/* ===== london-tavern-flea ===== */
.scn-london-tavern-flea {
  background: linear-gradient(135deg, #3a2a1a 0%, #5a3e22 40%, #4a2e1a 100%),
              radial-gradient(ellipse at 30% 20%, #d4a04a 0%, transparent 60%);
}
.scn-london-tavern-flea .tavern-wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #4a3520 0%, #3a2a15 100%);
  border-bottom: 6px solid #2c1f0e;
}
.scn-london-tavern-flea .tavern-floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #2c1f0e 0%, #1f1509 100%);
}
.scn-london-tavern-flea .window {
  position:absolute; top:12%; left:10%; width:80px; height:120px;
  background: radial-gradient(ellipse at 50% 50%, #ffe6a0 0%, #c8a060 60%, transparent 100%);
  border: 6px solid #3a2a15; border-radius:4px;
  box-shadow: inset 0 0 20px #ffe6a0, 0 0 30px rgba(255,230,160,0.3);
  animation: ltf-window 8s ease-in-out infinite alternate;
}
.scn-london-tavern-flea .sunbeam {
  position:absolute; top:12%; left:10%; width:80px; height:200px;
  background: linear-gradient(180deg, rgba(255,230,160,0.5) 0%, rgba(255,230,160,0) 80%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  transform-origin: top center;
  animation: ltf-beam 6s ease-in-out infinite alternate;
}
.scn-london-tavern-flea .table {
  position:absolute; bottom:28%; left:30%; width:120px; height:18px;
  background: linear-gradient(180deg, #6a4e2e 0%, #4a3520 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-london-tavern-flea .mug {
  position:absolute; bottom:33%; left:38%; width:20px; height:30px;
  background: linear-gradient(180deg, #7a5e3e 0%, #5a3e22 100%);
  border-radius: 4px 4px 8px 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ltf-mug 4s ease-in-out infinite;
}
.scn-london-tavern-flea .figure {
  position:absolute; bottom:28%; left:50%; width:24px; height:60px;
  background: linear-gradient(180deg, #2c1f0e 0%, #1f1509 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ltf-fig 5s ease-in-out infinite;
}
.scn-london-tavern-flea .shadow {
  position:absolute; bottom:28%; left:50%; width:40px; height:8px;
  background: radial-gradient(ellipse, #1a0f08 0%, transparent 100%);
  border-radius: 50%;
  animation: ltf-shadow 5s ease-in-out infinite;
}
@keyframes ltf-window {
  0% { opacity:0.6; transform: scaleY(1); }
  50% { opacity:1; transform: scaleY(1.05); }
  100% { opacity:0.7; transform: scaleY(1); }
}
@keyframes ltf-beam {
  0% { transform: rotate(-5deg) scaleX(1); opacity:0.5; }
  50% { transform: rotate(0deg) scaleX(1.2); opacity:0.9; }
  100% { transform: rotate(5deg) scaleX(1); opacity:0.6; }
}
@keyframes ltf-mug {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
}
@keyframes ltf-fig {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(8px) rotate(0deg); }
  50% { transform: translateX(16px) rotate(2deg); }
  75% { transform: translateX(8px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes ltf-shadow {
  0%,100% { transform: translateX(0) scale(1); opacity:0.6; }
  50% { transform: translateX(8px) scale(1.3); opacity:0.3; }
}

/* ===== france-palace-king-alarm ===== */
.scn-france-palace-king-alarm {
  background: linear-gradient(180deg, #c8a86a 0%, #936f45 30%, #5a4028 100%),
              radial-gradient(ellipse at 50% 0%, #f0d8a0 0%, transparent 60%);
}
.scn-france-palace-king-alarm .palace-wall-bg {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #b8925a 0%, #805a38 60%, #4a3018 100%);
  border-bottom: 8px solid #3a2510;
}
.scn-france-palace-king-alarm .palace-floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: repeating-linear-gradient(90deg, #5a4028 0px, #5a4028 40px, #6a5038 40px, #6a5038 80px);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-france-palace-king-alarm .throne {
  position:absolute; bottom:30%; left:50%; width:120px; height:80px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #d4b06a 0%, #a08040 50%, #704820 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: frk-throne 3s ease-in-out infinite alternate;
}
.scn-france-palace-king-alarm .king-figure {
  position:absolute; bottom:35%; left:50%; width:30px; height:70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a060 0%, #8a6030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px 2px #f0d8a0;
  animation: frk-king 4s ease-in-out infinite;
}
.scn-france-palace-king-alarm .courtier-left {
  position:absolute; bottom:30%; left:30%; width:20px; height:50px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3018 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  animation: frk-courtier 6s ease-in-out infinite;
}
.scn-france-palace-king-alarm .courtier-right {
  position:absolute; bottom:30%; right:30%; width:20px; height:50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2008 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  animation: frk-courtier 6s ease-in-out infinite reverse;
}
.scn-france-palace-king-alarm .banner {
  position:absolute; top:5%; left:15%; width:80px; height:120px;
  background: linear-gradient(180deg, #a04028 0%, #702818 50%, #501810 100%);
  clip-path: polygon(0 0, 100% 0, 100% 80%, 50% 90%, 0 80%);
  animation: frk-banner 8s ease-in-out infinite alternate;
}
.scn-france-palace-king-alarm .chandelier {
  position:absolute; top:2%; left:50%; width:60px; height:40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 0%, #f0d060 0%, #c8a040 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 20px 6px #f0d060;
  animation: frk-chandelier 3s ease-in-out infinite alternate;
}
@keyframes frk-throne {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); box-shadow: 0 8px 20px rgba(0,0,0,0.5); }
  50% { transform: translateX(-50%) scale(1.02) rotate(1deg); box-shadow: 0 12px 30px rgba(0,0,0,0.6); }
  100% { transform: translateX(-50%) scale(1) rotate(0deg); box-shadow: 0 8px 20px rgba(0,0,0,0.5); }
}
@keyframes frk-king {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes frk-courtier {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes frk-banner {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(0deg); }
  100% { transform: rotate(3deg); }
}
@keyframes frk-chandelier {
  0% { opacity:0.8; transform: translateX(-50%) scale(1); }
  100% { opacity:1; transform: translateX(-50%) scale(1.05); }
}

/* ===== france-palace-exeter-ultimatum ===== */
.scn-france-palace-exeter-ultimatum {
  background: linear-gradient(135deg, #b8905a 0%, #8a6a3a 40%, #4a3018 100%),
              radial-gradient(ellipse at 70% 30%, #f0d8a0 0%, transparent 50%);
}
.scn-france-palace-exeter-ultimatum .chamber-back {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #a08048 0%, #6a5030 100%);
  border-bottom: 8px solid #3a2510;
}
.scn-france-palace-exeter-ultimatum .chamber-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: repeating-linear-gradient(45deg, #5a4028 0px, #5a4028 30px, #6a5038 30px, #6a5038 60px);
}
.scn-france-palace-exeter-ultimatum .exeter-figure {
  position:absolute; bottom:25%; left:25%; width:26px; height:65px;
  background: linear-gradient(180deg, #305a30 0%, #1a3a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fre-exeter 5s ease-in-out infinite;
}
.scn-france-palace-exeter-ultimatum .french-king-trono {
  position:absolute; bottom:28%; right:25%; width:100px; height:70px;
  background: linear-gradient(135deg, #c8a86a 0%, #936f45 50%, #5a4028 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: fre-trono 4s ease-in-out infinite alternate;
}
.scn-france-palace-exeter-ultimatum .advisor-left {
  position:absolute; bottom:25%; left:15%; width:18px; height:50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2008 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
}
.scn-france-palace-exeter-ultimatum .scroll {
  position:absolute; bottom:32%; left:22%; width:12px; height:18px;
  background: linear-gradient(180deg, #d4b06a 0%, #a08040 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: fre-scroll 3s ease-in-out infinite alternate;
}
.scn-france-palace-exeter-ultimatum .glow {
  position:absolute; top:10%; right:15%; width:60px; height:60px;
  background: radial-gradient(circle, #f0d060 0%, transparent 70%);
  animation: fre-glow 7s ease-in-out infinite alternate;
}
@keyframes fre-exeter {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes fre-trono {
  0% { transform: scale(1); box-shadow: 0 8px 16px rgba(0,0,0,0.5); }
  100% { transform: scale(1.03); box-shadow: 0 12px 24px rgba(0,0,0,0.6); }
}
@keyframes fre-scroll {
  0% { transform: scaleY(0.8) rotate(0deg); }
  100% { transform: scaleY(1) rotate(5deg); }
}
@keyframes fre-glow {
  0% { opacity:0.5; transform: scale(0.9); }
  50% { opacity:0.9; transform: scale(1.1); }
  100% { opacity:0.6; transform: scale(0.95); }
}

/* ===== french-court-exeter-defiance ===== */
.scn-french-court-exeter-defiance {
  background: linear-gradient(180deg, #b88a52 0%, #7a5a30 40%, #3a2010 100%),
              radial-gradient(ellipse at 30% 20%, #f0d8a0 0%, transparent 60%);
}
.scn-french-court-exeter-defiance .court-bg {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #a07840 0%, #6a4828 60%, #3a2010 100%);
  border-bottom: 6px solid #2c1a0a;
}
.scn-french-court-exeter-defiance .court-floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: repeating-linear-gradient(90deg, #4a3018 0px, #4a3018 35px, #5a3a20 35px, #5a3a20 70px);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-french-court-exeter-defiance .exeter-standing {
  position:absolute; bottom:20%; left:30%; width:28px; height:70px;
  background: linear-gradient(180deg, #2a4a28 0%, #122a12 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fcd-exeter 6s ease-in-out infinite;
}
.scn-french-court-exeter-defiance .king-seated {
  position:absolute; bottom:22%; right:30%; width:90px; height:60px;
  background: linear-gradient(135deg, #c8a060 0%, #8a6030 50%, #4a3018 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  animation: fcd-king 4s ease-in-out infinite alternate;
}
.scn-french-court-exeter-defiance .guards-left {
  position:absolute; bottom:20%; left:10%; width:20px; height:60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  animation: fcd-guard 5s ease-in-out infinite;
}
.scn-french-court-exeter-defiance .guards-right {
  position:absolute; bottom:20%; right:10%; width:20px; height:60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  animation: fcd-guard 5s ease-in-out infinite reverse;
}
.scn-french-court-exeter-defiance .heraldic {
  position:absolute; top:5%; left:50%; width:70px; height:90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a04028 0%, #702818 50%, #501810 100%);
  clip-path: polygon(50% 0%, 100% 40%, 80% 100%, 20% 100%, 0% 40%);
  animation: fcd-heraldic 10s ease-in-out infinite alternate;
}
.scn-french-court-exeter-defiance .spear {
  position:absolute; bottom:25%; left:17%; width:4px; height:90px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4028 100%);
  border-radius: 2px; transform-origin: bottom center;
  animation: fcd-spear 4s ease-in-out infinite;
}
@keyframes fcd-exeter {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-5px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes fcd-king {
  0% { transform: scale(1) rotate(0deg); box-shadow: 0 10px 20px rgba(0,0,0,0.5); }
  100% { transform: scale(1.04) rotate(2deg); box-shadow: 0 15px 30px rgba(0,0,0,0.7); }
}
@keyframes fcd-guard {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes fcd-heraldic {
  0% { transform: translateX(-50%) scale(0.95); opacity:0.8; }
  50% { transform: translateX(-50%) scale(1.05); opacity:1; }
  100% { transform: translateX(-50%) scale(0.95); opacity:0.8; }
}
@keyframes fcd-spear {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}

.scn-presence-chamber-hive-metaphor {
  background: linear-gradient(135deg, #f5e6c8 0%, #e5c99a 50%, #c8a878 100%),
              radial-gradient(ellipse at 20% 80%, #f0dbb0 0%, transparent 60%),
              radial-gradient(ellipse at 80% 20%, #d9b882 0%, transparent 50%);
}
.scn-presence-chamber-hive-metaphor .bg-warm {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f5e6c8 0%, #e5c99a 40%, #c8a878 100%);
  animation: cam-bgdrift 12s ease-in-out infinite alternate;
}
.scn-presence-chamber-hive-metaphor .column-left {
  position: absolute; left: 10%; top: 5%; width: 6%; height: 90%;
  background: linear-gradient(180deg, #d9b882 0%, #b8945c 50%, #8a6e3e 100%);
  border-radius: 4% / 8%; box-shadow: 4px 0 12px rgba(0,0,0,0.2);
  animation: cam-columnglow 9s ease-in-out infinite;
}
.scn-presence-chamber-hive-metaphor .column-right {
  position: absolute; right: 10%; top: 5%; width: 6%; height: 90%;
  background: linear-gradient(180deg, #d9b882 0%, #b8945c 50%, #8a6e3e 100%);
  border-radius: 4% / 8%; box-shadow: -4px 0 12px rgba(0,0,0,0.2);
  animation: cam-columnglow 9s ease-in-out infinite 4.5s;
}
.scn-presence-chamber-hive-metaphor .throne {
  position: absolute; bottom: 15%; left: 50%; width: 30%; height: 40%;
  transform: translateX(-50%);
  background: linear-gradient(150deg, #b8945c 0%, #8a6e3e 40%, #6b5232 100%);
  border-radius: 20% 20% 5% 5% / 30% 30% 10% 10%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.4), inset 0 -5px 15px rgba(0,0,0,0.3);
  animation: cam-thronepulse 15s ease-in-out infinite;
}
.scn-presence-chamber-hive-metaphor .king-silhouette {
  position: absolute; bottom: 25%; left: 50%; width: 12%; height: 35%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 0 20px rgba(42,26,10,0.6);
  animation: cam-kingbreathe 8s ease-in-out infinite;
}
.scn-presence-chamber-hive-metaphor .banner-left {
  position: absolute; left: 20%; top: 8%; width: 8%; height: 50%;
  background: linear-gradient(180deg, #c8a878 0%, #b8945c 100%);
  border-radius: 2% / 4%; box-shadow: 2px 2px 8px rgba(0,0,0,0.2);
  animation: cam-bannersway 14s ease-in-out infinite alternate;
}
.scn-presence-chamber-hive-metaphor .banner-right {
  position: absolute; right: 20%; top: 8%; width: 8%; height: 50%;
  background: linear-gradient(180deg, #c8a878 0%, #b8945c 100%);
  border-radius: 2% / 4%; box-shadow: -2px 2px 8px rgba(0,0,0,0.2);
  animation: cam-bannersway 14s ease-in-out infinite alternate 7s;
}
.scn-presence-chamber-hive-metaphor .dust-mote {
  position: absolute; top: 30%; left: 40%; width: 4px; height: 4px;
  background: #fefae0; border-radius: 50%; opacity: 0.6;
  box-shadow: 0 0 6px #fefae0;
  animation: cam-dust 25s linear infinite;
}
@keyframes cam-bgdrift {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; }
}
@keyframes cam-columnglow {
  0% { filter: brightness(1); } 50% { filter: brightness(1.1); } 100% { filter: brightness(1); }
}
@keyframes cam-thronepulse {
  0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(1); }
}
@keyframes cam-kingbreathe {
  0% { transform: translateX(-50%) translateY(0) scale(1); } 50% { transform: translateX(-50%) translateY(-2px) scale(1.01); } 100% { transform: translateX(-50%) translateY(0) scale(1); }
}
@keyframes cam-bannersway {
  0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); }
}
@keyframes cam-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0; } 10% { opacity: 0.6; } 90% { opacity: 0.6; } 100% { transform: translate(40px, -60px) scale(0.5); opacity: 0; }
}

.scn-presence-chamber-resolve {
  background: linear-gradient(180deg, #d4c4a0 0%, #c4a878 50%, #a88a5a 100%),
              radial-gradient(ellipse at 30% 70%, #e0d0b0 0%, transparent 60%),
              radial-gradient(ellipse at 70% 30%, #b89a6a 0%, transparent 50%);
}
.scn-presence-chamber-resolve .bg-tense {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d4c4a0 0%, #c4a878 40%, #a88a5a 100%);
  animation: res-bgshake 6s ease-in-out infinite alternate;
}
.scn-presence-chamber-resolve .floor-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: res-shadowgrow 5s ease-in-out infinite alternate;
}
.scn-presence-chamber-resolve .king-standing {
  position: absolute; bottom: 20%; left: 50%; width: 15%; height: 50%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 0 30px rgba(42,26,10,0.8);
  animation: res-figuretremble 3s ease-in-out infinite;
}
.scn-presence-chamber-resolve .crown-reflection {
  position: absolute; top: 10%; left: 50%; width: 8%; height: 8%;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f5e6c8 0%, #c8a878 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px #f5e6c8, 0 0 40px rgba(245,230,200,0.5);
  animation: res-crowninglow 1.5s ease-in-out infinite alternate;
}
.scn-presence-chamber-resolve .flicker-light {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: radial-gradient(ellipse at 50% 20%, rgba(245,230,200,0.3) 0%, transparent 70%);
  animation: res-lightflicker 1.6s steps(3) infinite;
}
.scn-presence-chamber-resolve .banner-sharp {
  position: absolute; left: 15%; top: 5%; width: 6%; height: 60%;
  background: linear-gradient(180deg, #a88a5a 0%, #8a6e3e 100%);
  border-radius: 2% / 4%;
  animation: res-bannerjerk 4s ease-in-out infinite;
}
.scn-presence-chamber-resolve .scepter {
  position: absolute; bottom: 35%; right: 30%; width: 3%; height: 25%;
  background: linear-gradient(180deg, #f5e6c8 0%, #d9b882 50%, #b8945c 100%);
  border-radius: 10% / 4%;
  transform: rotate(15deg);
  box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
  animation: res-sceptertap 2s ease-in-out infinite;
}
@keyframes res-bgshake {
  0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(-3px); }
}
@keyframes res-shadowgrow {
  0% { opacity: 0.8; } 100% { opacity: 1; }
}
@keyframes res-figuretremble {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-1px) rotate(0.5deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-50%) translateY(1px) rotate(-0.5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes res-crowninglow {
  0% { opacity: 0.5; box-shadow: 0 0 10px #f5e6c8; } 100% { opacity: 1; box-shadow: 0 0 30px #f5e6c8, 0 0 60px rgba(245,230,200,0.6); }
}
@keyframes res-lightflicker {
  0% { opacity: 0.7; } 33% { opacity: 1; } 66% { opacity: 0.8; } 100% { opacity: 1; }
}
@keyframes res-bannerjerk {
  0% { transform: rotate(0deg) scale(1); } 30% { transform: rotate(5deg) scale(1.05); } 60% { transform: rotate(-5deg) scale(1.05); } 100% { transform: rotate(0deg) scale(1); }
}
@keyframes res-sceptertap {
  0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); }
}

.scn-presence-chamber-tennis-balls {
  background: linear-gradient(180deg, #d4c4a0 0%, #c4a878 50%, #a88a5a 100%),
              radial-gradient(ellipse at 50% 80%, #e0d0b0 0%, transparent 60%);
}
.scn-presence-chamber-tennis-balls .bg-tense {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d4c4a0 0%, #c4a878 40%, #a88a5a 100%);
  animation: ten-bgdrift 4s ease-in-out infinite alternate;
}
.scn-presence-chamber-tennis-balls .court-column {
  position: absolute; left: 20%; top: 0; width: 5%; height: 90%;
  background: linear-gradient(180deg, #b89a6a 0%, #8a6e3e 100%);
  border-radius: 4% / 8%;
  box-shadow: 4px 0 12px rgba(0,0,0,0.3);
}
.scn-presence-chamber-tennis-balls .ambassador-left {
  position: absolute; bottom: 20%; left: 25%; width: 10%; height: 45%;
  background: radial-gradient(ellipse at 50% 40%, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform: rotate(10deg);
  animation: ten-ambassador 3s ease-in-out infinite;
}
.scn-presence-chamber-tennis-balls .ambassador-right {
  position: absolute; bottom: 20%; right: 25%; width: 10%; height: 45%;
  background: radial-gradient(ellipse at 50% 40%, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform: rotate(-10deg);
  animation: ten-ambassador 3s ease-in-out infinite 1.5s;
}
.scn-presence-chamber-tennis-balls .tennis-ball {
  position: absolute; bottom: 60%; left: 45%; width: 6%; height: 6%;
  background: radial-gradient(circle at 40% 40%, #f5e6c8 0%, #d9b882 40%, #c8a878 100%);
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: ten-ballbounce 2s ease-in-out infinite;
}
.scn-presence-chamber-tennis-balls .tennis-ball-shadow {
  position: absolute; bottom: 55%; left: 45%; width: 6%; height: 2%;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: ten-ballshadow 2s ease-in-out infinite;
}
.scn-presence-chamber-tennis-balls .dauphin-dress {
  position: absolute; bottom: 20%; left: 18%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #8a6e3e 0%, #6b5232 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(5deg);
  box-shadow: inset -5px 0 15px rgba(0,0,0,0.3);
  animation: ten-dresssway 6s ease-in-out infinite;
}
@keyframes ten-bgdrift {
  0% { opacity: 0.9; } 100% { opacity: 1; }
}
@keyframes ten-ambassador {
  0% { transform: rotate(10deg) translateY(0); } 25% { transform: rotate(12deg) translateY(-2px); } 50% { transform: rotate(8deg) translateY(0); } 75% { transform: rotate(10deg) translateY(-1px); } 100% { transform: rotate(10deg) translateY(0); }
}
@keyframes ten-ballbounce {
  0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-20px) rotate(180deg); } 50% { transform: translateY(0) rotate(360deg); } 75% { transform: translateY(-10px) rotate(540deg); } 100% { transform: translateY(0) rotate(720deg); }
}
@keyframes ten-ballshadow {
  0% { transform: scale(1); opacity: 0.8; } 25% { transform: scale(0.8); opacity: 0.4; } 50% { transform: scale(1); opacity: 0.8; } 75% { transform: scale(0.9); opacity: 0.6; } 100% { transform: scale(1); opacity: 0.8; }
}
@keyframes ten-dresssway {
  0% { transform: rotate(5deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(5deg); }
}

.scn-presence-chamber-king-retort {
  background: linear-gradient(180deg, #d4c4a0 0%, #c4a878 50%, #a88a5a 100%),
              radial-gradient(ellipse at 70% 30%, #e8d8b8 0%, transparent 60%);
}
.scn-presence-chamber-king-retort .bg-tense {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d4c4a0 0%, #c4a878 40%, #a88a5a 100%);
  animation: ret-bgpulse 3s ease-in-out infinite alternate;
}
.scn-presence-chamber-king-retort .throne-broken {
  position: absolute; bottom: 15%; left: 40%; width: 20%; height: 30%;
  background: linear-gradient(150deg, #6b5232 0%, #4a3a1a 50%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  transform: rotate(-5deg) scale(0.9);
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: ret-throneshatter 4s ease-in-out infinite;
}
.scn-presence-chamber-king-retort .king-figure {
  position: absolute; bottom: 20%; left: 50%; width: 14%; height: 45%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 0 40px rgba(42,26,10,0.9);
  animation: ret-kingangry 1.5s ease-in-out infinite;
}
.scn-presence-chamber-king-retort .spark-embers {
  position: absolute; top: 20%; left: 20%; width: 8px; height: 8px;
  background: #f5e6c8; border-radius: 50%;
  box-shadow: 0 0 10px #f5e6c8, 0 0 20px rgba(245,230,200,0.6);
  animation: ret-sparkburst 2s ease-in-out infinite;
}
.scn-presence-chamber-king-retort .trembling-wall {
  position: absolute; right: 5%; top: 5%; width: 2%; height: 60%;
  background: linear-gradient(180deg, #b89a6a 0%, #8a6e3e 100%);
  border-radius: 4% / 8%;
  animation: ret-walltremble 1.5s linear infinite;
}
.scn-presence-chamber-king-retort .retort-light {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(ellipse at 80% 10%, rgba(245,230,200,0.4) 0%, transparent 50%);
  animation: ret-lightflash 2.4s ease-in-out infinite;
}
.scn-presence-chamber-king-retort .shadow-burst {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  animation: ret-shadowgrow 2s ease-in-out infinite alternate;
}
@keyframes ret-bgpulse {
  0% { filter: brightness(1); } 100% { filter: brightness(1.1); }
}
@keyframes ret-throneshatter {
  0% { transform: rotate(-5deg) scale(0.9); } 50% { transform: rotate(-8deg) scale(0.85); } 100% { transform: rotate(-5deg) scale(0.9); }
}
@keyframes ret-kingangry {
  0% { transform: translateX(-50%) translateY(0) scale(1); } 25% { transform: translateX(-50%) translateY(-3px) scale(1.05); } 50% { transform: translateX(-50%) translateY(0) scale(1); } 75% { transform: translateX(-50%) translateY(1px) scale(0.98); } 100% { transform: translateX(-50%) translateY(0) scale(1); }
}
@keyframes ret-sparkburst {
  0% { transform: translate(0, 0) scale(1); opacity: 0; } 20% { opacity: 1; } 80% { opacity: 1; } 100% { transform: translate(30px, -40px) scale(0); opacity: 0; }
}
@keyframes ret-walltremble {
  0% { transform: translateX(0); } 25% { transform: translateX(-2px); } 50% { transform: translateX(2px); } 75% { transform: translateX(-1px); } 100% { transform: translateX(0); }
}
@keyframes ret-lightflash {
  0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.5; }
}
@keyframes ret-shadowgrow {
  0% { opacity: 0.7; } 100% { opacity: 1; }
}

/* king-soliloquy-ceremony */
.scn-king-soliloquy-ceremony { background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0e 40%, #2a1a0a 100%), radial-gradient(ellipse at 50% 0%, #5a3a1a 0%, transparent 70%); }
.scn-king-soliloquy-ceremony .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e0a 100%); animation: ksc-bg 15s ease-in-out infinite alternate; }
.scn-king-soliloquy-ceremony .throne { position:absolute; bottom:20%; left:50%; width:120px; height:160px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: ksc-throne 8s ease-in-out infinite alternate; }
.scn-king-soliloquy-ceremony .crown { position:absolute; bottom:55%; left:50%; width:50px; height:30px; transform:translateX(-50%); background: linear-gradient(135deg, #c0a060 0%, #806040 50%, #a08050 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 20px 4px #b09050; animation: ksc-crown 3s ease-in-out infinite; }
.scn-king-soliloquy-ceremony .sceptre { position:absolute; bottom:30%; left:30%; width:6px; height:100px; background: linear-gradient(180deg, #b09050 0%, #705030 100%); border-radius: 10%; transform-origin: bottom center; animation: ksc-sceptre 6s ease-in-out infinite; }
.scn-king-soliloquy-ceremony .figure { position:absolute; bottom:18%; left:50%; width:40px; height:130px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: ksc-figure 4s ease-in-out infinite; }
.scn-king-soliloquy-ceremony .light-ray { position:absolute; top:10%; left:30%; width:200px; height:300px; background: linear-gradient(135deg, rgba(200,180,120,.15) 0%, transparent 100%); transform-origin: left top; animation: ksc-ray 12s ease-in-out infinite alternate; }
.scn-king-soliloquy-ceremony .shadow-wisp { position:absolute; bottom:10%; left:20%; width:80px; height:40px; background: radial-gradient(ellipse at center, rgba(0,0,0,.4) 0%, transparent 70%); filter: blur(8px); animation: ksc-wisp 9s ease-in-out infinite alternate; }
@keyframes ksc-bg { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.7} }
@keyframes ksc-throne { 0%{transform:translateX(-50%) scale(1)} 50%{transform:translateX(-50%) scale(1.02)} 100%{transform:translateX(-50%) scale(1)} }
@keyframes ksc-crown { 0%,100%{transform:translateX(-50%) rotate(-2deg)} 50%{transform:translateX(-50%) rotate(2deg) scale(1.05)} }
@keyframes ksc-sceptre { 0%,100%{transform:rotate(-3deg)} 50%{transform:rotate(5deg)} }
@keyframes ksc-figure { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(-3px)} }
@keyframes ksc-ray { 0%{transform:rotate(-5deg) scaleX(1)} 50%{transform:rotate(5deg) scaleX(1.2)} 100%{transform:rotate(-3deg) scaleX(1)} }
@keyframes ksc-wisp { 0%{transform:translateX(0) scale(1);opacity:.6} 100%{transform:translateX(20px) scale(1.3);opacity:.3} }

/* king-prayer-battle */
.scn-king-prayer-battle { background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0e0a 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%); }
.scn-king-prayer-battle .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); animation: kpb-sky 12s ease-in-out infinite alternate; }
.scn-king-prayer-battle .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 40% 50% 0 0 / 30% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); animation: kpb-ground 20s ease-in-out infinite alternate; }
.scn-king-prayer-battle .tent { position:absolute; bottom:35%; left:20%; width:50px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: kpb-tent 6s ease-in-out infinite; }
.scn-king-prayer-battle .flag { position:absolute; bottom:50%; left:30%; width:4px; height:30px; background: #3a2a1a; animation: kpb-flag 4s ease-in-out infinite; }
.scn-king-prayer-battle .flag::before { content:''; position:absolute; top:-2px; left:2px; width:20px; height:14px; background: linear-gradient(135deg, #a06040 0%, #704030 100%); border-radius: 0 40% 40% 0; animation: inherit; }
.scn-king-prayer-battle .kneeling-figure { position:absolute; bottom:20%; left:45%; width:22px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: kpb-kneel 5s ease-in-out infinite; }
.scn-king-prayer-battle .spear { position:absolute; bottom:18%; left:52%; width:4px; height:80px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 10%; box-shadow: 0 0 6px rgba(0,0,0,.4); animation: kpb-spear 8s ease-in-out infinite; }
.scn-king-prayer-battle .ember { position:absolute; bottom:10%; right:25%; width:6px; height:6px; background:#c07040; border-radius:50%; box-shadow: 0 0 12px 3px #b06030; animation: kpb-ember 3s ease-in-out infinite alternate; }
@keyframes kpb-sky { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.6} }
@keyframes kpb-ground { 0%{transform:translateY(0)} 50%{transform:translateY(-4px)} 100%{transform:translateY(0)} }
@keyframes kpb-tent { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@keyframes kpb-flag { 0%,100%{transform:rotate(-5deg)} 50%{transform:rotate(10deg)} }
@keyframes kpb-kneel { 0%,100%{transform:rotate(0)} 50%{transform:rotate(-5deg) translateY(-2px)} }
@keyframes kpb-spear { 0%,100%{transform:rotate(2deg)} 50%{transform:rotate(-4deg)} }
@keyframes kpb-ember { 0%{opacity:.5;transform:scale(1)} 50%{opacity:1;transform:scale(1.3)} 100%{opacity:.6;transform:scale(.9)} }

/* french-camp-morning */
.scn-french-camp-morning { background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 40%, #2a1a0a 100%), radial-gradient(ellipse at 50% 0%, #7a6a4a 0%, transparent 60%); }
.scn-french-camp-morning .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); animation: fcm-sky 14s ease-in-out infinite alternate; }
.scn-french-camp-morning .grass { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a4a2a 0%, #1a2a1a 100%); border-radius: 30% 40% 0 0 / 40% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: fcm-grass 18s ease-in-out infinite alternate; }
.scn-french-camp-morning .horse1 { position:absolute; bottom:22%; left:25%; width:50px; height:40px; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fcm-horse1 5s ease-in-out infinite; }
.scn-french-camp-morning .horse2 { position:absolute; bottom:20%; left:55%; width:60px; height:45px; background: linear-gradient(135deg, #3a2a1a 0%, #1a0e0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fcm-horse2 6s ease-in-out infinite; animation-delay: -2s; }
.scn-french-camp-morning .banner { position:absolute; bottom:35%; right:20%; width:4px; height:60px; background: #3a2a1a; animation: fcm-banner 4s ease-in-out infinite; }
.scn-french-camp-morning .banner::before { content:''; position:absolute; top:0; right:2px; width:30px; height:20px; background: linear-gradient(135deg, #a06040 0%, #704030 100%); border-radius: 0 50% 50% 0; }
.scn-french-camp-morning .campfire { position:absolute; bottom:12%; left:15%; width:20px; height:20px; background: radial-gradient(circle, #d08030 0%, #a05020 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 8px #c07030; animation: fcm-fire 2s ease-in-out infinite alternate; }
.scn-french-camp-morning .tent { position:absolute; bottom:30%; left:8%; width:40px; height:35px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: fcm-tent 8s ease-in-out infinite; }
.scn-french-camp-morning .cloud { position:absolute; top:10%; left:-10%; width:100px; height:20px; background: linear-gradient(180deg, rgba(200,180,160,.3) 0%, rgba(200,180,160,.05) 100%); border-radius:50%; filter: blur(8px); animation: fcm-cloud 40s linear infinite; }
@keyframes fcm-sky { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.6} }
@keyframes fcm-grass { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes fcm-horse1 { 0%,100%{transform:translate(0,0) rotate(-2deg)} 25%{transform:translate(5px,-2px) rotate(2deg)} 50%{transform:translate(10px,0) rotate(-1deg)} 75%{transform:translate(5px,-2px) rotate(1deg)} }
@keyframes fcm-horse2 { 0%,100%{transform:translate(0,0) rotate(2deg)} 33%{transform:translate(-5px,-3px) rotate(-3deg)} 66%{transform:translate(5px,-1px) rotate(1deg)} }
@keyframes fcm-banner { 0%,100%{transform:rotate(-6deg)} 50%{transform:rotate(8deg)} }
@keyframes fcm-fire { 0%{opacity:.7;transform:scale(1)} 50%{opacity:1;transform:scale(1.2)} 100%{opacity:.6;transform:scale(.9)} }
@keyframes fcm-tent { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@keyframes fcm-cloud { 0%{transform:translateX(0)} 100%{transform:translateX(120vw)} }

/* french-vaunting */
.scn-french-vaunting { background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 40%, #1a0e0a 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%); }
.scn-french-vaunting .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); animation: fv-sky 10s ease-in-out infinite alternate; }
.scn-french-vaunting .horizon { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: fv-horizon 16s ease-in-out infinite alternate; }
.scn-french-vaunting .cavalry { position:absolute; bottom:20%; left:10%; width:180px; height:60px; background: linear-gradient(135deg, #2a1a0a 0%, #1a0e0a 60%, transparent 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fv-cavalry 4s ease-in-out infinite; }
.scn-french-vaunting .dust { position:absolute; bottom:10%; left:0; width:100%; height:30px; background: linear-gradient(180deg, rgba(180,160,120,.3) 0%, transparent 100%); filter: blur(10px); animation: fv-dust 6s ease-in-out infinite; }
.scn-french-vaunting .banner { position:absolute; bottom:35%; left:25%; width:4px; height:50px; background: #3a2a1a; animation: fv-banner 5s ease-in-out infinite; }
.scn-french-vaunting .banner::before { content:''; position:absolute; top:0; left:2px; width:25px; height:16px; background: linear-gradient(135deg, #b08050 0%, #906040 100%); border-radius: 0 40% 40% 0; }
.scn-french-vaunting .lance { position:absolute; bottom:22%; left:35%; width:4px; height:90px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 10%; transform-origin: bottom center; animation: fv-lance 7s ease-in-out infinite; }
.scn-french-vaunting .hoof-spark { position:absolute; bottom:15%; left:20%; width:8px; height:8px; background: radial-gradient(circle, #d09040 0%, #a06020 100%); border-radius:50%; box-shadow: 0 0 10px 4px #c08030; animation: fv-spark 2s ease-in-out infinite alternate; }
@keyframes fv-sky { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.6} }
@keyframes fv-horizon { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.05)} 100%{transform:scaleY(1)} }
@keyframes fv-cavalry { 0%,100%{transform:translate(0,0) rotate(-2deg)} 50%{transform:translate(10px,-4px) rotate(3deg)} }
@keyframes fv-dust { 0%{opacity:.3;transform:scaleX(1)} 50%{opacity:.6;transform:scaleX(1.2)} 100%{opacity:.2;transform:scaleX(.9)} }
@keyframes fv-banner { 0%,100%{transform:rotate(-8deg)} 50%{transform:rotate(12deg)} }
@keyframes fv-lance { 0%,100%{transform:rotate(3deg)} 50%{transform:rotate(-6deg)} }
@keyframes fv-spark { 0%{opacity:.4;transform:scale(.8)} 100%{opacity:1;transform:scale(1.2)} }

.scn-southampton-council-suspicion { background: linear-gradient(180deg, #d4c4a8 0%, #b69a7a 50%, #9a7a5a 100%), radial-gradient(ellipse at 50% 60%, rgba(255,230,180,.3) 0%, transparent 70%); }
.scn-southampton-council-suspicion .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #b8a088 0%, #a0886e 50%, #b8a088 100%); }
.scn-southampton-council-suspicion .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); }
.scn-southampton-council-suspicion .table { position:absolute; bottom:25%; left:20%; right:20%; height:6%; background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-southampton-council-suspicion .king { position:absolute; bottom:32%; right:28%; width:20px; height:40px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc1-king 4s ease-in-out infinite; }
.scn-southampton-council-suspicion .figure-l { position:absolute; bottom:30%; left:22%; width:18px; height:38px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc1-figures 3s ease-in-out infinite; }
.scn-southampton-council-suspicion .figure-r { position:absolute; bottom:30%; right:22%; width:18px; height:38px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc1-figures 3s ease-in-out infinite reverse; animation-delay: -1.5s; }
.scn-southampton-council-suspicion .window { position:absolute; top:10%; left:15%; width:50px; height:70px; background: linear-gradient(180deg, #ffe8c0 0%, #f0d8a0 100%); border: 4px solid #8a7a6a; border-radius: 4px; box-shadow: 0 0 30px 8px rgba(255,230,180,.6); animation: sc1-window 4s ease-in-out infinite alternate; }
.scn-southampton-council-suspicion .document { position:absolute; bottom:26%; left:38%; width:24px; height:16px; background: #f0e0c0; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); transform-origin: left center; animation: sc1-doc 6s ease-in-out infinite; }
@keyframes sc1-king { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(2deg); } }
@keyframes sc1-figures { 0%,100% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } }
@keyframes sc1-window { 0% { opacity:.85; box-shadow: 0 0 20px 5px rgba(255,230,180,.5); } 50% { opacity:1; box-shadow: 0 0 40px 12px rgba(255,230,180,.7); } 100% { opacity:.9; box-shadow: 0 0 25px 6px rgba(255,230,180,.6); } }
@keyframes sc1-doc { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.05) rotate(2deg); } }

.scn-southampton-council-king-test { background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 50%, #a89078 100%), radial-gradient(ellipse at 50% 80%, rgba(230,210,180,.3) 0%, transparent 70%); }
.scn-southampton-council-king-test .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%); }
.scn-southampton-council-king-test .throne { position:absolute; bottom:30%; left:50%; width:40px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #8a7058 0%, #6a5040 100%); border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-southampton-council-king-test .king { position:absolute; bottom:32%; left:50%; width:20px; height:38px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc2-king 12s ease-in-out infinite; }
.scn-southampton-council-king-test .courtier-l { position:absolute; bottom:28%; left:22%; width:16px; height:36px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc2-courtier 15s ease-in-out infinite; }
.scn-southampton-council-king-test .courtier-r { position:absolute; bottom:28%; right:22%; width:16px; height:36px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc2-courtier 15s ease-in-out infinite reverse; animation-delay: -7.5s; }
.scn-southampton-council-king-test .banner-l { position:absolute; top:12%; left:10%; width:30px; height:60px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 4px; transform-origin: top center; animation: sc2-banner 20s ease-in-out infinite; }
.scn-southampton-council-king-test .banner-r { position:absolute; top:12%; right:10%; width:30px; height:60px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 4px; transform-origin: top center; animation: sc2-banner 20s ease-in-out infinite reverse; }
@keyframes sc2-king { 0%,100% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(1deg) translateY(-1px); } }
@keyframes sc2-courtier { 0%,100% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-6px) rotate(2deg); } 66% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes sc2-banner { 0%,100% { transform: rotate(0); } 50% { transform: rotate(4deg); } }

.scn-southampton-council-forgiveness { background: linear-gradient(180deg, #e0d4c0 0%, #c4b49c 50%, #a89078 100%), radial-gradient(ellipse at 50% 40%, rgba(230,210,180,.3) 0%, transparent 70%); }
.scn-southampton-council-forgiveness .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b8a898 0%, #a08878 100%); }
.scn-southampton-council-forgiveness .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); }
.scn-southampton-council-forgiveness .king { position:absolute; bottom:32%; left:40%; width:20px; height:42px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc3-king 10s ease-in-out infinite; }
.scn-southampton-council-forgiveness .kneeling { position:absolute; bottom:20%; left:55%; width:18px; height:34px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc3-kneel 8s ease-in-out infinite; }
.scn-southampton-council-forgiveness .scroll { position:absolute; bottom:22%; left:48%; width:30px; height:10px; background: #e8d8b8; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.2); transform-origin: left center; animation: sc3-scroll 15s ease-in-out infinite; }
.scn-southampton-council-forgiveness .window { position:absolute; top:8%; right:15%; width:40px; height:60px; background: linear-gradient(180deg, #ffe8c0 0%, #f0d8a0 100%); border: 4px solid #8a7a6a; border-radius: 4px; box-shadow: 0 0 20px 6px rgba(255,230,180,.5); animation: sc3-window 12s ease-in-out infinite alternate; }
@keyframes sc3-king { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes sc3-kneel { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } }
@keyframes sc3-scroll { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.1) translateY(-1px); } }
@keyframes sc3-window { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }

.scn-southampton-council-traitors-unmasked { background: linear-gradient(180deg, #d8c8b0 0%, #b8a088 50%, #9a7a5a 100%), radial-gradient(ellipse at 50% 80%, rgba(255,220,180,.25) 0%, transparent 70%); }
.scn-southampton-council-traitors-unmasked .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #a89888 0%, #8a7a6a 50%, #a89888 100%); }
.scn-southampton-council-traitors-unmasked .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); }
.scn-southampton-council-traitors-unmasked .table { position:absolute; bottom:25%; left:15%; right:15%; height:5%; background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-southampton-council-traitors-unmasked .king { position:absolute; bottom:32%; left:35%; width:20px; height:42px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc4-king 2s ease-in-out infinite; }
.scn-southampton-council-traitors-unmasked .traitor1 { position:absolute; bottom:22%; left:15%; width:16px; height:34px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc4-traitor 1.6s ease-in-out infinite; }
.scn-southampton-council-traitors-unmasked .traitor2 { position:absolute; bottom:22%; left:38%; width:16px; height:34px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc4-traitor 2.4s ease-in-out infinite; animation-delay: -0.3s; }
.scn-southampton-council-traitors-unmasked .traitor3 { position:absolute; bottom:22%; right:15%; width:16px; height:34px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc4-traitor 2s ease-in-out infinite; animation-delay: -0.6s; }
.scn-southampton-council-traitors-unmasked .document { position:absolute; bottom:27%; left:46%; width:28px; height:18px; background: #f0e0c0; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); transform-origin: center; animation: sc4-doc 3s ease-in-out infinite; }
.scn-southampton-council-traitors-unmasked .spotlight { position:absolute; top:0; left:50%; width:80px; height:100%; transform:translateX(-50%); background: radial-gradient(ellipse at center 40%, rgba(255,240,200,.15) 0%, transparent 70%); pointer-events:none; animation: sc4-spot 5s ease-in-out infinite alternate; }
@keyframes sc4-king { 0%,100% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } }
@keyframes sc4-traitor { 0%,100% { transform: translateY(0) rotate(0) scale(1); } 25% { transform: translateY(-3px) rotate(-4deg) scale(1.02); } 50% { transform: translateY(0) rotate(3deg) scale(0.98); } 75% { transform: translateY(-2px) rotate(-2deg) scale(1.01); } }
@keyframes sc4-doc { 0%,100% { transform: rotate(0) scaleX(1); } 50% { transform: rotate(8deg) scaleX(1.05); } }
@keyframes sc4-spot { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.6; } }

/* Scene: french-describe-english */
.scn-french-describe-english {
  background: linear-gradient(180deg, #2a1a3e 0%, #5a3a1e 30%, #b08040 60%, #e0c060 80%, #f0d080 100%),
              radial-gradient(ellipse at 30% 100%, #e0a040 0%, transparent 60%);
}
.scn-french-describe-english .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3a2a4a 0%, #8a6040 50%, #d09050 100%); animation: fde-sky 15s ease-in-out infinite alternate; }
.scn-french-describe-english .sun-glow { position:absolute; bottom:50%; left:20%; width:60px; height:60px; background: radial-gradient(circle, #f0d080 0%, #e0a040 40%, transparent 70%); border-radius:50%; animation: fde-glow 4s ease-in-out infinite; }
.scn-french-describe-english .tent-left { position:absolute; bottom:30%; left:10%; width:80px; height:70px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); transform: scale(0.9); animation: fde-tent 6s ease-in-out infinite; }
.scn-french-describe-english .tent-right { position:absolute; bottom:30%; left:55%; width:90px; height:75px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); transform: scale(1.1); animation: fde-tent 8s ease-in-out infinite reverse; }
.scn-french-describe-english .figure-a { position:absolute; bottom:26%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fde-figure 3s ease-in-out infinite; }
.scn-french-describe-english .figure-b { position:absolute; bottom:28%; left:45%; width:18px; height:36px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fde-figure 3.5s ease-in-out infinite 0.5s; }
.scn-french-describe-english .banner { position:absolute; bottom:40%; left:40%; width:12px; height:50px; background: linear-gradient(180deg, #c8553d 0%, #7a2a1a 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 80%, 50% 100%, 0% 80%); animation: fde-banner 2s ease-in-out infinite; }
.scn-french-describe-english .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); animation: fde-ground 10s ease-in-out infinite alternate; }
.scn-french-describe-english .cloud { position:absolute; top:10%; right:20%; width:80px; height:20px; background: rgba(255,200,150,0.3); border-radius:50%; filter: blur(8px); animation: fde-cloud 30s linear infinite; }

@keyframes fde-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes fde-glow { 0% { transform: scale(0.9); opacity:0.7; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(1); opacity:0.8; } }
@keyframes fde-tent { 0% { transform: scale(0.9) translateY(0); } 50% { transform: scale(0.95) translateY(-2px); } 100% { transform: scale(0.9) translateY(0); } }
@keyframes fde-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fde-banner { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes fde-ground { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes fde-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-200px); } }

/* Scene: english-camp-before-battle */
.scn-english-camp-before-battle {
  background: linear-gradient(180deg, #1a2a4a 0%, #3a4a6a 20%, #6a7a8a 50%, #a0a070 80%, #c0b080 100%),
              radial-gradient(ellipse at 70% 100%, #c0a070 0%, transparent 60%);
}
.scn-english-camp-before-battle .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a3a5a 0%, #5a6a7a 40%, #907050 100%); animation: ecb-sky 20s ease-in-out infinite alternate; }
.scn-english-camp-before-battle .campfire { position:absolute; bottom:35%; left:40%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 100%, #f08040 0%, #e06030 40%, transparent 100%); border-radius:50%; animation: ecb-fire 2s ease-in-out infinite; box-shadow: 0 0 40px 10px rgba(224,96,48,0.5); }
.scn-english-camp-before-battle .tent-back { position:absolute; bottom:30%; left:20%; width:100px; height:80px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); transform: scale(0.8); animation: ecb-tent 12s ease-in-out infinite; }
.scn-english-camp-before-battle .soldier-1 { position:absolute; bottom:26%; left:30%; width:16px; height:32px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ecb-soldier 4s ease-in-out infinite; }
.scn-english-camp-before-battle .soldier-2 { position:absolute; bottom:27%; left:45%; width:18px; height:34px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ecb-soldier 4.5s ease-in-out infinite 0.3s; }
.scn-english-camp-before-battle .soldier-3 { position:absolute; bottom:28%; left:58%; width:14px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ecb-soldier 3.8s ease-in-out infinite 0.7s; }
.scn-english-camp-before-battle .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); box-shadow: inset 0 8px 16px rgba(0,0,0,0.6); }
.scn-english-camp-before-battle .smoke { position:absolute; bottom:40%; left:35%; width:40px; height:60px; background: rgba(200,180,150,0.2); border-radius:50%; filter: blur(12px); animation: ecb-smoke 6s ease-out infinite; }

@keyframes ecb-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes ecb-fire { 0% { transform: scale(1) rotate(-5deg); } 25% { transform: scale(1.1) rotate(0deg); } 50% { transform: scale(0.9) rotate(5deg); } 75% { transform: scale(1.05) rotate(0deg); } 100% { transform: scale(1) rotate(-3deg); } }
@keyframes ecb-tent { 0% { transform: scale(0.8) translateY(0); } 50% { transform: scale(0.83) translateY(-1px); } 100% { transform: scale(0.8) translateY(0); } }
@keyframes ecb-soldier { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(3px) rotate(1deg); } 60% { transform: translateX(6px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ecb-smoke { 0% { opacity:0.6; transform: translateY(0) scale(1); } 50% { opacity:0.3; transform: translateY(-30px) scale(1.5); } 100% { opacity:0; transform: translateY(-60px) scale(2); } }

/* Scene: king-st-crispins-speech */
.scn-king-st-crispins-speech {
  background: linear-gradient(180deg, #1a1a3e 0%, #3a2a4a 30%, #6a4a4a 60%, #a07050 85%, #c09060 100%),
              radial-gradient(ellipse at 50% 100%, #d0a060 0%, transparent 70%);
}
.scn-king-st-crispins-speech .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a4a 0%, #5a4a5a 40%, #907060 100%); animation: kss-sky 18s ease-in-out infinite alternate; }
.scn-king-st-crispins-speech .sun-glow { position:absolute; bottom:50%; left:50%; width:80px; height:80px; transform: translateX(-50%); background: radial-gradient(circle, #e0b080 0%, #c08050 40%, transparent 70%); border-radius:50%; animation: kss-glow 5s ease-in-out infinite; }
.scn-king-st-crispins-speech .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-king-st-crispins-speech .king { position:absolute; bottom:25%; left:45%; width:30px; height:55px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kss-king 4s ease-in-out infinite; }
.scn-king-st-crispins-speech .soldier-a { position:absolute; bottom:28%; left:32%; width:14px; height:28px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kss-soldier 5s ease-in-out infinite; }
.scn-king-st-crispins-speech .soldier-b { position:absolute; bottom:29%; left:56%; width:16px; height:30px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kss-soldier 5.5s ease-in-out infinite 0.4s; }
.scn-king-st-crispins-speech .banner-left { position:absolute; bottom:32%; left:30%; width:8px; height:40px; background: linear-gradient(180deg, #78b878 0%, #3a6a3a 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 70%, 50% 100%, 0% 70%); animation: kss-banner 3s ease-in-out infinite; }
.scn-king-st-crispins-speech .banner-right { position:absolute; bottom:33%; left:60%; width:8px; height:35px; background: linear-gradient(180deg, #c8553d 0%, #7a2a1a 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 70%, 50% 100%, 0% 70%); animation: kss-banner 3.5s ease-in-out infinite 0.2s; }

@keyframes kss-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes kss-glow { 0% { transform: translateX(-50%) scale(0.9); opacity:0.7; } 50% { transform: translateX(-50%) scale(1.3); opacity:1; } 100% { transform: translateX(-50%) scale(1); opacity:0.8; } }
@keyframes kss-king { 0% { transform: translateX(-50%) rotate(-2deg); } 30% { transform: translateX(-50%) rotate(1deg); } 60% { transform: translateX(-50%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes kss-soldier { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(4px) rotate(-1deg); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes kss-banner { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }

/* Scene: king-answer-montjoy */
.scn-king-answer-montjoy {
  background: linear-gradient(180deg, #1a2a3a 0%, #3a3a4a 25%, #5a4a3a 55%, #8a6a50 80%, #b09070 100%),
              radial-gradient(ellipse at 60% 100%, #b08060 0%, transparent 65%);
}
.scn-king-answer-montjoy .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a3a4a 0%, #4a4a5a 40%, #7a6a5a 100%); animation: kam-sky 22s ease-in-out infinite alternate; }
.scn-king-answer-montjoy .sun-glow { position:absolute; bottom:50%; left:40%; width:70px; height:70px; transform: translateX(-50%); background: radial-gradient(circle, #d0a070 0%, #b08050 40%, transparent 70%); border-radius:50%; animation: kam-glow 6s ease-in-out infinite; }
.scn-king-answer-montjoy .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); box-shadow: inset 0 12px 24px rgba(0,0,0,0.6); }
.scn-king-answer-montjoy .king { position:absolute; bottom:25%; left:32%; width:24px; height:48px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kam-king 3.5s ease-in-out infinite; }
.scn-king-answer-montjoy .herald { position:absolute; bottom:28%; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kam-herald 4s ease-in-out infinite 0.2s; }
.scn-king-answer-montjoy .banner { position:absolute; bottom:32%; left:48%; width:10px; height:45px; background: linear-gradient(180deg, #c8553d 0%, #7a2a1a 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 70%, 50% 100%, 0% 70%); animation: kam-banner 2.5s ease-in-out infinite; }
.scn-king-answer-montjoy .tent { position:absolute; bottom:30%; left:70%; width:80px; height:65px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); transform: scale(0.8); animation: kam-tent 15s ease-in-out infinite; }
.scn-king-answer-montjoy .grass { position:absolute; bottom:10%; left:0; right:0; height:15%; background: linear-gradient(180deg, #4a6a3a 0%, #2a3a1a 100%); clip-path: polygon(0% 100%, 0% 60%, 10% 50%, 20% 70%, 30% 40%, 40% 60%, 50% 30%, 60% 50%, 70% 20%, 80% 40%, 90% 10%, 100% 30%, 100% 100%); animation: kam-grass 8s ease-in-out infinite alternate; }

@keyframes kam-sky { 0% { opacity:0.75; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes kam-glow { 0% { transform: translateX(-50%) scale(0.8); opacity:0.6; } 50% { transform: translateX(-50%) scale(1.2); opacity:1; } 100% { transform: translateX(-50%) scale(1); opacity:0.8; } }
@keyframes kam-king { 0% { transform: translateX(0) rotate(-3deg); } 30% { transform: translateX(2px) rotate(2deg); } 60% { transform: translateX(0) rotate(-1deg); } 100% { transform: translateX(-2px) rotate(1deg); } }
@keyframes kam-herald { 0% { transform: translateX(0) rotate(2deg); } 40% { transform: translateX(-3px) rotate(-1deg); } 80% { transform: translateX(0) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes kam-banner { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-4deg); } }
@keyframes kam-tent { 0% { transform: scale(0.8) translateY(0); } 50% { transform: scale(0.85) translateY(-2px); } 100% { transform: scale(0.8) translateY(0); } }
@keyframes kam-grass { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

/* Scene: henry-demands-peace */
.scn-henry-demands-peace { background: linear-gradient(180deg, #f5e6d0 0%, #e8d5b5 30%, #d4c0a0 60%, #b8a080 100%), radial-gradient(ellipse at 50% 0%, #fff8ee 0%, transparent 60%); }
.scn-henry-demands-peace .wall-bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #d4b896 0%, #c8ac88 100%); }
.scn-henry-demands-peace .wall-divider { position:absolute; bottom:25%; left:0; right:0; height:5%; background: linear-gradient(180deg, #9c7a5a 0%, #7a5a3a 100%); }
.scn-henry-demands-peace .table { position:absolute; bottom:10%; left:20%; width:60%; height:12%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: hd-table 8s ease-in-out infinite; }
.scn-henry-demands-peace .document { position:absolute; bottom:18%; left:35%; width:20%; height:6%; background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: hd-doc 10s ease-in-out infinite alternate; }
.scn-henry-demands-peace .king-figure { position:absolute; bottom:14%; left:28%; width:12%; height:35%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hd-stand 5s ease-in-out infinite; }
.scn-henry-demands-peace .duke-figure { position:absolute; bottom:14%; left:55%; width:11%; height:32%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: hd-sit 6s ease-in-out infinite; }
.scn-henry-demands-peace .candle { position:absolute; bottom:22%; left:48%; width:2%; height:8%; background: linear-gradient(180deg, #f0d080 0%, #c08040 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 8px rgba(240,208,128,0.6); animation: hd-flame 3s ease-in-out infinite alternate; }
.scn-henry-demands-peace .window-light { position:absolute; top:10%; right:8%; width:20%; height:35%; background: radial-gradient(ellipse at 30% 50%, rgba(255,240,200,0.5) 0%, transparent 70%); filter: blur(12px); animation: hd-light 9s ease-in-out infinite alternate; }
@keyframes hd-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes hd-doc { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.8; transform: scale(0.98); } }
@keyframes hd-stand { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes hd-sit { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-1px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0.5deg); } }
@keyframes hd-flame { 0% { height: 8%; opacity: 0.8; box-shadow: 0 0 15px 5px rgba(240,208,128,0.5); } 50% { height: 10%; opacity: 1; box-shadow: 0 0 25px 10px rgba(240,208,128,0.7); } 100% { height: 7%; opacity: 0.9; box-shadow: 0 0 18px 6px rgba(240,208,128,0.6); } }
@keyframes hd-light { 0% { opacity: 0.3; filter: blur(10px); } 50% { opacity: 0.6; filter: blur(14px); } 100% { opacity: 0.4; filter: blur(12px); } }

/* Scene: negotiation-articles */
.scn-negotiation-articles { background: linear-gradient(180deg, #e8dcc8 0%, #d4c4b0 40%, #bca88c 100%), radial-gradient(ellipse at 50% 20%, #fff8f0 0%, transparent 70%); }
.scn-negotiation-articles .chamber-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #d0b898 0%, #c0a888 100%); }
.scn-negotiation-articles .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a7050 0%, #6a5040 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.2); }
.scn-negotiation-articles .council-table { position:absolute; bottom:12%; left:15%; width:70%; height:14%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 8px; box-shadow: 0 8px 16px rgba(0,0,0,0.4); animation: na-table 10s ease-in-out infinite; }
.scn-negotiation-articles .scroll { position:absolute; bottom:18%; left:30%; width:30%; height:7%; background: linear-gradient(180deg, #f5eac0 0%, #d4c090 100%); border-radius: 4px; box-shadow: inset 0 2px 4px rgba(0,0,0,0.1); animation: na-scroll 12s ease-in-out infinite alternate; }
.scn-negotiation-articles .counselor-left { position:absolute; bottom:10%; left:18%; width:10%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: na-sit 7s ease-in-out infinite; }
.scn-negotiation-articles .counselor-right { position:absolute; bottom:10%; right:18%; width:10%; 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: na-sit 9s ease-in-out infinite reverse; }
.scn-negotiation-articles .lamp { position:absolute; bottom:24%; left:50%; width:4%; height:12%; background: radial-gradient(circle, #f0d080 0%, #c08040 70%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 30px 12px rgba(240,208,128,0.5); animation: na-lamp 4s ease-in-out infinite alternate; }
.scn-negotiation-articles .shadow-column { position:absolute; top:0; left:8%; width:6%; height:100%; background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.05) 100%); filter: blur(4px); animation: na-column 20s ease-in-out infinite; }
@keyframes na-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes na-scroll { 0% { transform: scale(1) rotate(-1deg); opacity:0.8; } 50% { transform: scale(1.03) rotate(0deg); opacity:1; } 100% { transform: scale(0.97) rotate(1deg); opacity:0.9; } }
@keyframes na-sit { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(0.5deg); } 100% { transform: translateX(-1px) rotate(-0.5deg); } }
@keyframes na-lamp { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(0.95); } }
@keyframes na-column { 0% { opacity:0.3; transform: scaleY(1); } 50% { opacity:0.5; transform: scaleY(1.02); } 100% { opacity:0.4; transform: scaleY(0.98); } }

/* Scene: queen-isabel-consent */
.scn-queen-isabel-consent { background: linear-gradient(180deg, #f2e4d0 0%, #e0c8b0 35%, #c8a888 70%, #b09070 100%), radial-gradient(ellipse at 50% 30%, #fff4e8 0%, transparent 65%); }
.scn-queen-isabel-consent .alcove-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #c8a888 0%, #b89878 100%); border-radius: 20% 20% 0 0; }
.scn-queen-isabel-consent .drapery-left { position:absolute; top:0; left:0; width:15%; height:100%; background: linear-gradient(180deg, #5a2a2a 0%, #3a1a1a 100%); border-radius: 0 20% 50% 0 / 0 20% 30% 0; box-shadow: inset -8px 0 16px rgba(0,0,0,0.5); animation: qi-drape 12s ease-in-out infinite alternate; }
.scn-queen-isabel-consent .drapery-right { position:absolute; top:0; right:0; width:15%; height:100%; background: linear-gradient(180deg, #5a2a2a 0%, #3a1a1a 100%); border-radius: 20% 0 0 50% / 20% 0 0 30%; box-shadow: inset 8px 0 16px rgba(0,0,0,0.5); animation: qi-drape 14s ease-in-out infinite alternate-reverse; }
.scn-queen-isabel-consent .throne { position:absolute; bottom:8%; left:38%; width:24%; height:40%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,0.4); animation: qi-throne 6s ease-in-out infinite; }
.scn-queen-isabel-consent .queen-figure { position:absolute; bottom:18%; left:42%; width:10%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qi-queen 5s ease-in-out infinite; }
.scn-queen-isabel-consent .attendant { position:absolute; bottom:10%; right:22%; width:8%; 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: qi-attend 8s ease-in-out infinite; }
.scn-queen-isabel-consent .cushion { position:absolute; bottom:12%; left:44%; width:8%; height:4%; background: radial-gradient(ellipse, #b86848 0%, #8a4830 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: qi-cushion 7s ease-in-out infinite alternate; }
.scn-queen-isabel-consent .scepter { position:absolute; bottom:22%; left:48%; width:1.5%; height:20%; background: linear-gradient(180deg, #d0b080 0%, #a08060 100%); border-radius: 10% 10% 5% 5%; transform-origin: bottom center; animation: qi-scepter 9s ease-in-out infinite; }
@keyframes qi-drape { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-3px) scaleX(1.02); } 100% { transform: translateX(2px) scaleX(0.98); } }
@keyframes qi-throne { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes qi-queen { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(-1px) translateY(0) rotate(-1deg); } }
@keyframes qi-attend { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(3px) rotate(0.5deg); } 66% { transform: translateX(-2px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes qi-cushion { 0% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.9; transform: scale(0.95); } }
@keyframes qi-scepter { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }

/* Scene: henry-woos-katharine */
.scn-henry-woos-katharine { background: linear-gradient(180deg, #ffd8a0 0%, #f0c080 30%, #d8a050 60%, #b07030 100%), radial-gradient(ellipse at 40% 20%, #ffe8c0 0%, transparent 65%); }
.scn-henry-woos-katharine .chamber-warm { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #d8a050 0%, #c08848 100%); border-radius: 0 0 30% 30%; }
.scn-henry-woos-katharine .hearth-glow { position:absolute; bottom:0; left:20%; width:60%; height:30%; background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #d07020 40%, transparent 70%); filter: blur(20px); animation: hw-glow 4s ease-in-out infinite alternate; }
.scn-henry-woos-katharine .henry-profile { position:absolute; bottom:12%; left:20%; width:14%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 40% 40% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hw-henry 6s ease-in-out infinite; }
.scn-henry-woos-katharine .katharine-profile { position:absolute; bottom:12%; right:20%; width:12%; height:38%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 50% 50% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hw-kath 7s ease-in-out infinite; }
.scn-henry-woos-katharine .rose { position:absolute; bottom:28%; left:30%; width:3%; height:3%; background: radial-gradient(circle, #c8553d 0%, #8a3828 70%); border-radius: 50%; box-shadow: 0 0 10px 4px rgba(200,85,61,0.5); animation: hw-rose 5s ease-in-out infinite alternate; }
.scn-henry-woos-katharine .crown-cushion { position:absolute; bottom:14%; left:45%; width:8%; height:6%; background: radial-gradient(ellipse, #e8c090 0%, #c09060 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: hw-crown 8s ease-in-out infinite; }
.scn-henry-woos-katharine .window-arch { position:absolute; top:5%; left:50%; width:30%; height:40%; border: 4px solid #7a5a3a; border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; background: radial-gradient(ellipse, rgba(255,200,100,0.3) 0%, transparent 70%); filter: blur(6px); animation: hw-window 15s ease-in-out infinite alternate; }
.scn-henry-woos-katharine .embroidery { position:absolute; bottom:8%; left:35%; width:20%; height:10%; background: linear-gradient(135deg, #a07050 25%, #c09060 25%, #c09060 50%, #a07050 50%, #a07050 75%, #c09060 75%); background-size: 20px 20px; border-radius: 10px; opacity:0.6; animation: hw-embro 20s linear infinite; }
@keyframes hw-glow { 0% { opacity:0.5; filter: blur(18px); } 50% { opacity:0.8; filter: blur(24px); } 100% { opacity:0.6; filter: blur(20px); } }
@keyframes hw-henry { 0% { transform: translateX(0) rotate(0deg) scale(1); } 50% { transform: translateX(2px) rotate(1deg) scale(1.03); } 100% { transform: translateX(-1px) rotate(-1deg) scale(0.98); } }
@keyframes hw-kath { 0% { transform: translateX(0) rotate(0deg) scale(1); } 50% { transform: translateX(-2px) rotate(-1deg) scale(1.02); } 100% { transform: translateX(1px) rotate(1deg) scale(0.99); } }
@keyframes hw-rose { 0% { opacity:0.6; transform: scale(1) rotate(0deg); } 50% { opacity:1; transform: scale(1.2) rotate(10deg); } 100% { opacity:0.8; transform: scale(0.9) rotate(-5deg); } }
@keyframes hw-crown { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hw-window { 0% { opacity:0.2; filter: blur(8px); } 50% { opacity:0.5; filter: blur(10px); } 100% { opacity:0.3; filter: blur(6px); } }
@keyframes hw-embro { 0% { background-position: 0 0; } 100% { background-position: 40px 40px; } }

.scn-french-odds-english { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a4e 70%, #1a1a3a 100%), radial-gradient(ellipse at 50% 20%, #2a2a4e 0%, transparent 60%); }
.scn-french-odds-english .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #0a0a1a 0%, #151530 50%, #202045 100%); animation: fro-sky 20s ease-in-out infinite alternate; }
.scn-french-odds-english .horizon-glow { position:absolute; bottom:55%; left:30%; right:30%; height:8%; background: linear-gradient(90deg, transparent 0%, #806040 30%, #c0a060 50%, #806040 70%, transparent 100%); filter: blur(8px); opacity:0.6; animation: fro-glow 8s ease-in-out infinite alternate; }
.scn-french-odds-english .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.7); }
.scn-french-odds-english .figures-row { position:absolute; bottom:40%; left:5%; right:5%; height:10%; background: radial-gradient(ellipse 2px 4px at 10% 50%, #3a3a2a 0%, transparent 100%) repeat, radial-gradient(ellipse 2px 4px at 20% 50%, #3a3a2a 0%, transparent 100%) repeat, radial-gradient(ellipse 2px 4px at 30% 50%, #3a3a2a 0%, transparent 100%) repeat; background-size: 10% 100%; opacity:0.6; animation: fro-figures 4s ease-in-out infinite alternate; }
.scn-french-odds-english .figures-row-2 { bottom:30%; background: radial-gradient(ellipse 2px 4px at 15% 50%, #2a2a1a 0%, transparent 100%) repeat; background-size: 8% 100%; animation-delay:0.5s; }
.scn-french-odds-english .waiting-figure { position:absolute; bottom:48%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fro-wait 6s ease-in-out infinite; }
.scn-french-odds-english .spear { position:absolute; bottom:48%; left:48%; width:2px; height:50px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); transform: rotate(15deg); transform-origin: bottom center; animation: fro-spear 6s ease-in-out infinite; }
.scn-french-odds-english .moon { position:absolute; top:15%; right:30%; width:30px; height:30px; background: radial-gradient(circle at 40% 40%, #c8b090 0%, #806040 60%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(192,160,128,.3); animation: fro-moon 50s linear infinite; }
@keyframes fro-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fro-glow { 0% { opacity:.4; transform: scaleY(1) } 50% { opacity:.8; transform: scaleY(1.2) } 100% { opacity:.5; transform: scaleY(1) } }
@keyframes fro-figures { 0% { opacity:.4; transform: translateY(0) } 50% { opacity:.7; transform: translateY(-2px) } 100% { opacity:.5; transform: translateY(0) } }
@keyframes fro-wait { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(-1px) rotate(-3deg) } 75% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes fro-spear { 0% { transform: rotate(15deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(15deg) } }
@keyframes fro-moon { 0% { transform: translateX(0) } 100% { transform: translateX(100vw) } }

.scn-dauphin-hooded-valour { background: linear-gradient(180deg, #1a1a2a 0%, #2a1a3a 40%, #1a1a2a 80%), radial-gradient(ellipse at 50% 60%, #3a2a4a 0%, transparent 70%); }
.scn-dauphin-hooded-valour .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 60%, #0a0a1a 100%); opacity:0.8; animation: dau-bg 15s ease-in-out infinite alternate; }
.scn-dauphin-hooded-valour .hooded-figure { position:absolute; bottom:20%; left:35%; width:40px; height:70px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: dau-hood 6s ease-in-out infinite; }
.scn-dauphin-hooded-valour .lackey { position:absolute; bottom:20%; left:55%; width:30px; height:50px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dau-lackey 6s ease-in-out infinite; }
.scn-dauphin-hooded-valour .cloak-sparkle { position:absolute; top:30%; left:22%; width:10px; height:10px; background: radial-gradient(circle, #c0a060 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 20px 4px #c0a060; animation: dau-sparkle 2s ease-in-out infinite; }
.scn-dauphin-hooded-valour .shadow-floor { position:absolute; bottom:15%; left:20%; right:20%; height:5%; background: linear-gradient(180deg, transparent 0%, #0a0a1a 100%); border-radius:50%; filter: blur(6px); animation: dau-shadow 6s ease-in-out infinite; }
.scn-dauphin-hooded-valour .spotlight { position:absolute; top:5%; left:35%; width:120px; height:200px; background: radial-gradient(ellipse at 50% 0%, rgba(192,160,96,0.2) 0%, transparent 60%); pointer-events:none; animation: dau-spotlight 8s ease-in-out infinite; }
@keyframes dau-bg { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes dau-hood { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-5px) rotate(2deg) } 50% { transform: translateY(-10px) rotate(-3deg) } 75% { transform: translateY(-5px) rotate(4deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes dau-lackey { 0% { transform: translateX(0) scale(1) } 30% { transform: translateX(-10px) scale(0.95) } 60% { transform: translateX(5px) scale(1.05) } 100% { transform: translateX(0) scale(1) } }
@keyframes dau-sparkle { 0% { opacity:.3; transform: scale(0.5) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:.3; transform: scale(0.5) } }
@keyframes dau-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.8) } 100% { transform: scaleX(1) } }
@keyframes dau-spotlight { 0% { opacity:.3; transform: translateY(0) } 50% { opacity:.7; transform: translateY(-10px) } 100% { opacity:.3; transform: translateY(0) } }

.scn-english-camp-measured { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a2a3e 70%, #0a0a1a 100%), radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 60%); }
.scn-english-camp-measured .night-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #050510 0%, #0a0a1a 50%, #15152e 100%); animation: enc-sky 25s ease-in-out infinite alternate; }
.scn-english-camp-measured .tent-left { position:absolute; bottom:30%; left:10%; width:80px; height:60px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); clip-path: polygon(20% 100%, 50% 0%, 80% 100%); box-shadow: 0 0 20px rgba(0,0,0,.5); animation: enc-tent 12s ease-in-out infinite alternate; }
.scn-english-camp-measured .tent-right { position:absolute; bottom:30%; right:15%; width:70px; height:50px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); clip-path: polygon(20% 100%, 50% 0%, 80% 100%); box-shadow: 0 0 20px rgba(0,0,0,.5); animation: enc-tent 14s ease-in-out infinite alternate-reverse; }
.scn-english-camp-measured .campfire-glow { position:absolute; bottom:25%; left:35%; width:60px; height:60px; background: radial-gradient(circle at 50% 50%, #c08040 0%, #8a5a2a 30%, transparent 60%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(192,128,64,.3); animation: enc-fire 4s ease-in-out infinite alternate; }
.scn-english-camp-measured .measuring-figure { position:absolute; bottom:28%; left:45%; width:18px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: enc-measure 6s ease-in-out infinite; }
.scn-english-camp-measured .measuring-stick { position:absolute; bottom:30%; left:47%; width:3px; height:35px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); transform: rotate(-10deg); transform-origin: bottom center; animation: enc-stick 6s ease-in-out infinite; }
.scn-english-camp-measured .ground-shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, #0a0a1a 100%); opacity:0.8; }
@keyframes enc-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes enc-tent { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1) } }
@keyframes enc-fire { 0% { opacity:.5; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.6; transform: scale(1) } }
@keyframes enc-measure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(5px) rotate(3deg) } 50% { transform: translateX(10px) rotate(-2deg) } 75% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes enc-stick { 0% { transform: rotate(-10deg) } 25% { transform: rotate(-5deg) } 50% { transform: rotate(-15deg) } 75% { transform: rotate(-8deg) } 100% { transform: rotate(-10deg) } }

.scn-english-out-of-beef { background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 40%, #2a1a1a 70%, #0a0a0a 100%), radial-gradient(ellipse at 50% 100%, #2a1a1a 0%, transparent 60%); }
.scn-english-out-of-beef .deep-dark { position:absolute; inset:0; background: linear-gradient(180deg, #050505 0%, #0a0a0a 50%, #151510 100%); animation: eob-dark 20s ease-in-out infinite alternate; }
.scn-english-out-of-beef .fire-pit { position:absolute; bottom:25%; left:50%; width:80px; height:30px; background: radial-gradient(ellipse at 50% 50%, #6a3a1a 0%, #3a1a0a 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(106,58,26,.3); animation: eob-fire 3s ease-in-out infinite alternate; }
.scn-english-out-of-beef .empty-pot { position:absolute; bottom:30%; left:45%; width:30px; height:20px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 0 0 40% 40%; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); transform: rotate(-5deg); animation: eob-pot 8s ease-in-out infinite; }
.scn-english-out-of-beef .hungry-figure { position:absolute; bottom:22%; left:38%; width:22px; 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: eob-hungry 6s ease-in-out infinite; }
.scn-english-out-of-beef .bone { position:absolute; bottom:35%; left:55%; width:12px; height:6px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 40% 40% 40% 40% / 60% 60% 60% 60%; transform: rotate(20deg); animation: eob-bone 10s ease-in-out infinite; }
.scn-english-out-of-beef .smoke { position:absolute; bottom:35%; left:48%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 100%, rgba(80,60,40,0.3) 0%, transparent 60%); filter: blur(4px); animation: eob-smoke 12s ease-in-out infinite; }
@keyframes eob-dark { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes eob-fire { 0% { opacity:.6; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.7; transform: scale(1) } }
@keyframes eob-pot { 0% { transform: rotate(-5deg) } 25% { transform: rotate(-10deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-8deg) } 100% { transform: rotate(-5deg) } }
@keyframes eob-hungry { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-3px) rotate(3deg) } 60% { transform: translateY(-1px) rotate(-4deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes eob-bone { 0% { transform: rotate(20deg) scale(1) } 50% { transform: rotate(10deg) scale(0.9) } 100% { transform: rotate(20deg) scale(1) } }
@keyframes eob-smoke { 0% { transform: translateY(0) scale(1); opacity:.3 } 50% { transform: translateY(-15px) scale(1.5); opacity:.6 } 100% { transform: translateY(0) scale(1); opacity:.3 } }

.scn-item-kiss-custom { background: linear-gradient(135deg, #fff5e6 0%, #ffe4c4 40%, #f0d0a0 100%), radial-gradient(ellipse at 30% 20%, rgba(255,230,200,0.6) 0%, transparent 70%); }
.scn-item-kiss-custom .wall   { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,245,230,0.7) 0%, rgba(230,210,180,0.9) 100%); }
.scn-item-kiss-custom .window { position:absolute; top:10%; left:5%; width:30%; height:40%; background: linear-gradient(180deg, #d4e4f0 0%, #b0c8d8 100%); border-radius:8% 8% 0 0; box-shadow: inset 0 0 20px rgba(200,220,240,0.5); animation: ikc-window 8s ease-in-out infinite alternate; }
.scn-item-kiss-custom .king   { position:absolute; bottom:18%; left:20%; width:50px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ikc-bow 4s ease-in-out infinite; }
.scn-item-kiss-custom .lady   { position:absolute; bottom:20%; right:22%; width:44px; height:76px; background: linear-gradient(180deg, #b8a898 0%, #8a7a6a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%; transform-origin: bottom center; animation: ikc-retreat 5s ease-in-out infinite; }
.scn-item-kiss-custom .hand-fan { position:absolute; bottom:40%; right:30%; width:20px; height:30px; background: radial-gradient(ellipse at 50% 100%, #f0c8a0 0%, transparent 70%); border-radius:50% 50% 0 0; transform-origin: bottom center; animation: ikc-fan 3s ease-in-out infinite alternate; box-shadow: 0 -4px 8px rgba(200,160,100,0.3); }
.scn-item-kiss-custom .spark  { position:absolute; bottom:50%; left:45%; width:6px; height:6px; background:radial-gradient(circle, #fffaa0 0%, #ffd080 60%, transparent 100%); border-radius:50%; animation: ikc-spark 1.5s ease-in-out infinite; box-shadow: 0 0 10px 2px #ffd080; }
@keyframes ikc-window { 0% { opacity:0.7; } 50% { opacity:1; transform:scale(1.02); } 100% { opacity:0.8; } }
@keyframes ikc-bow { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(15px) translateY(-5px) rotate(-10deg); } 60% { transform: translateX(5px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ikc-retreat { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(-10px) translateY(2px) rotate(5deg); } 80% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(0); } }
@keyframes ikc-fan { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(20deg) scaleX(1.1); } 100% { transform: rotate(-10deg) scaleX(0.9); } }
@keyframes ikc-spark { 0% { transform: translateY(0) scale(1); opacity:0.5; } 50% { transform: translateY(-15px) scale(1.5); opacity:1; } 100% { transform: translateY(-30px) scale(0.3); opacity:0; } }

.scn-henry-makers-of-manners { background: linear-gradient(180deg, #fae8c8 0%, #e8d0a0 50%, #c8a870 100%), radial-gradient(ellipse at 50% 80%, rgba(200,168,112,0.4) 0%, transparent 70%); }
.scn-henry-makers-of-manners .wall   { position:absolute; inset:0; background: linear-gradient(135deg, rgba(250,232,200,0.8) 0%, rgba(200,168,112,0.6) 100%); }
.scn-henry-makers-of-manners .throne { position:absolute; bottom:15%; left:25%; width:80px; height:100px; background: linear-gradient(180deg, #b09060 0%, #705030 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,0.3); animation: hmm-throne 12s ease-in-out infinite alternate; }
.scn-henry-makers-of-manners .crown  { position:absolute; bottom:80%; left:38%; width:30px; height:20px; background: linear-gradient(180deg, #f0d080 0%, #c8a050 100%); border-radius:50% 50% 10% 10%; box-shadow: 0 2px 6px rgba(200,160,80,0.5); animation: hmm-crown 6s ease-in-out infinite; }
.scn-henry-makers-of-manners .king   { position:absolute; bottom:20%; left:20%; width:45px; height:75px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hmm-king 8s ease-in-out infinite; }
.scn-henry-makers-of-manners .kate   { position:absolute; bottom:20%; right:25%; width:40px; height:70px; background: linear-gradient(180deg, #b8a898 0%, #8a7a6a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%; transform-origin: bottom center; animation: hmm-kate 7s ease-in-out infinite; }
.scn-henry-makers-of-manners .scepter { position:absolute; bottom:35%; left:50%; width:6px; height:50px; background: linear-gradient(180deg, #e0c080 0%, #a08040 100%); border-radius:2px; transform-origin: bottom center; animation: hmm-scepter 9s ease-in-out infinite; }
.scn-henry-makers-of-manners .light-beam { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 80%); animation: hmm-beam 15s ease-in-out infinite alternate; }
@keyframes hmm-throne { 0% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(1.03) translateY(-2px); opacity:1; } 100% { transform: scaleY(0.98); opacity:0.95; } }
@keyframes hmm-crown { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(5deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes hmm-king { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(-5px) rotate(-2deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0); } }
@keyframes hmm-kate { 0% { transform: translateX(0); } 33% { transform: translateX(-8px) rotate(-3deg); } 66% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0); } }
@keyframes hmm-scepter { 0% { transform: rotate(0deg); } 30% { transform: rotate(8deg) translateX(2px); } 60% { transform: rotate(-5deg); } 100% { transform: rotate(0deg); } }
@keyframes hmm-beam { 0% { opacity:0.4; transform:scaleX(0.95); } 50% { opacity:0.7; transform:scaleX(1.05); } 100% { opacity:0.5; transform:scaleX(0.98); } }

.scn-item-kiss-witchcraft { background: linear-gradient(180deg, #1e1a2e 0%, #3a2a4a 50%, #5a3a6a 100%), radial-gradient(ellipse at 50% 40%, rgba(120,80,160,0.3) 0%, transparent 70%); }
.scn-item-kiss-witchcraft .bg-shape  { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, rgba(80,50,100,0.6) 0%, transparent 70%); animation: ikw-bg 12s ease-in-out infinite alternate; }
.scn-item-kiss-witchcraft .face-harry { position:absolute; bottom:25%; left:15%; width:60px; height:70px; background: linear-gradient(180deg, #c8a080 0%, #a08060 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: -8px 0 12px rgba(0,0,0,0.4); animation: ikw-harry 7s ease-in-out infinite; }
.scn-item-kiss-witchcraft .face-kate  { position:absolute; bottom:25%; right:15%; width:55px; height:65px; background: linear-gradient(180deg, #e0c0a0 0%, #c0a080 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 8px 0 12px rgba(0,0,0,0.4); animation: ikw-kate 7s ease-in-out infinite; }
.scn-item-kiss-witchcraft .lips-glow  { position:absolute; bottom:35%; left:42%; width:20px; height:10px; background: radial-gradient(ellipse, #ffa0c0 0%, #e080a0 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 25px 8px rgba(255,160,192,0.6), 0 0 50px 15px rgba(224,128,160,0.3); animation: ikw-lips 3s ease-in-out infinite alternate; }
.scn-item-kiss-witchcraft .magic-dust { position:absolute; bottom:50%; left:40%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,200,220,0.6) 0%, transparent 100%); border-radius:50%; filter: blur(4px); animation: ikw-dust 5s ease-in-out infinite; }
.scn-item-kiss-witchcraft .sparkle-a  { position:absolute; bottom:55%; left:35%; width:4px; height:4px; background:#fff; border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,200,220,0.8); animation: ikw-sparkle 2s ease-in-out infinite; }
.scn-item-kiss-witchcraft .sparkle-b  { position:absolute; bottom:45%; right:30%; width:4px; height:4px; background:#fff; border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,200,220,0.8); animation: ikw-sparkle 2.5s ease-in-out infinite; animation-delay: -1s; }
@keyframes ikw-bg { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.7; } }
@keyframes ikw-harry { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(8px) rotate(3deg); } 60% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(0); } }
@keyframes ikw-kate { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-8px) rotate(-3deg); } 60% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0); } }
@keyframes ikw-lips { 0% { transform: scale(0.9); opacity:0.6; box-shadow: 0 0 15px 4px rgba(255,160,192,0.4); } 50% { transform: scale(1.2); opacity:1; box-shadow: 0 0 35px 12px rgba(255,160,192,0.7); } 100% { transform: scale(0.95); opacity:0.8; box-shadow: 0 0 20px 6px rgba(255,160,192,0.5); } }
@keyframes ikw-dust { 0% { transform: translateY(0) scale(1); opacity:0.5; } 50% { transform: translateY(-20px) scale(1.5); opacity:0.8; } 100% { transform: translateY(-40px) scale(0.5); opacity:0; } }
@keyframes ikw-sparkle { 0% { transform: translate(0,0) scale(0.5); opacity:0; } 25% { transform: translate(10px,-15px) scale(1); opacity:1; } 50% { transform: translate(20px,-30px) scale(0.8); opacity:0.8; } 75% { transform: translate(30px,-45px) scale(0.5); opacity:0.4; } 100% { transform: translate(40px,-60px) scale(0.2); opacity:0; } }

.scn-henry-conjure-love { background: linear-gradient(145deg, #f5e8d0 0%, #e8d0b0 50%, #d0b8a0 100%); }
.scn-henry-conjure-love .wall   { position:absolute; inset:0; background: linear-gradient(180deg, rgba(245,232,208,0.9) 0%, rgba(200,180,160,0.8) 100%); }
.scn-henry-conjure-love .book   { position:absolute; bottom:30%; left:10%; width:40px; height:30px; background: linear-gradient(180deg, #705030 0%, #503020 100%); border-radius: 0 0 10% 10%; box-shadow: 2px 2px 4px rgba(0,0,0,0.3); transform-origin: left center; animation: hcl-book 5s ease-in-out infinite; }
.scn-henry-conjure-love .king   { position:absolute; bottom:18%; left:20%; width:45px; height:75px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hcl-king 9s ease-in-out infinite; }
.scn-henry-conjure-love .kate   { position:absolute; bottom:20%; right:20%; width:40px; height:70px; background: linear-gradient(180deg, #b8a898 0%, #8a7a6a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%; transform-origin: bottom center; animation: hcl-kate 8s ease-in-out infinite; }
.scn-henry-conjure-love .chalkboard { position:absolute; top:10%; left:35%; width:30%; height:50%; background: linear-gradient(135deg, #2a3a2a 0%, #1a2a1a 100%); border: 4px solid #6a5a4a; border-radius: 4% 4% 8% 8%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
.scn-henry-conjure-love .chalk  { position:absolute; top:25%; left:38%; width:8px; height:8px; background: #f0e8d0; border-radius:50%; animation: hcl-chalk 4s ease-in-out infinite; }
.scn-henry-conjure-love .letters { position:absolute; top:20%; left:40%; width:50px; height:40px; background: linear-gradient(180deg, rgba(240,232,208,0.3) 0%, transparent 100%); clip-path: polygon(10% 10%, 90% 10%, 80% 50%, 20% 50%, 30% 90%, 70% 90%, 60% 70%, 40% 70%); animation: hcl-letters 3s ease-in-out infinite; }
.scn-henry-conjure-love .lamp   { position:absolute; top:8%; left:50%; width:10px; height:20px; background: linear-gradient(180deg, #ffd080 0%, #c89050 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 30px 10px rgba(255,208,128,0.6); animation: hcl-lamp 6s ease-in-out infinite alternate; }
@keyframes hcl-book { 0% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(-10deg) translateX(5px); } 60% { transform: rotate(8deg) translateX(-3px); } 100% { transform: rotate(0deg); } }
@keyframes hcl-king { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(10px) rotate(2deg); } 40% { transform: translateX(-5px) rotate(-3deg); } 60% { transform: translateX(12px) rotate(1deg); } 80% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0); } }
@keyframes hcl-kate { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-8px) rotate(3deg); } 50% { transform: translateX(5px) rotate(-2deg); } 75% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0); } }
@keyframes hcl-chalk { 0% { transform: translate(0,0) scale(1); } 25% { transform: translate(20px,-15px) scale(1.2); } 50% { transform: translate(40px,-5px) scale(0.9); } 75% { transform: translate(60px,-25px) scale(1.1); } 100% { transform: translate(80px,-10px) scale(1); } }
@keyframes hcl-letters { 0% { opacity:0.3; transform: scale(0.9); } 50% { opacity:0.8; transform: scale(1.05); } 100% { opacity:0.4; transform: scale(0.95); } }
@keyframes hcl-lamp { 0% { opacity:0.6; box-shadow: 0 0 20px 5px rgba(255,208,128,0.4); } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(255,208,128,0.7); } 100% { opacity:0.7; box-shadow: 0 0 25px 8px rgba(255,208,128,0.5); } }

.scn-divorce-incorporate { background: linear-gradient(180deg, #f9e4b7 0%, #e2c390 50%, #c8a57a 100%), radial-gradient(ellipse at 50% 30%, #fff3d6 0%, transparent 70%); }
.scn-divorce-incorporate .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #eedcc0 0%, #d4b88f 100%); }
.scn-divorce-incorporate .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #b48c6a 0%, #8a6644 100%); transform: perspective(400px) rotateX(20deg); transform-origin: bottom; }
.scn-divorce-incorporate .window { position: absolute; top: 10%; left: 38%; width: 24%; height: 40%; background: linear-gradient(135deg, #fff9e6 0%, #ffefc2 100%); border: 6px solid #b58a64; border-radius: 4px; box-shadow: inset 0 0 60px #fff3cc, 0 0 40px #ffd699; animation: di-window 6s ease-in-out infinite alternate; }
.scn-divorce-incorporate .figure-left { position: absolute; bottom: 18%; left: 30%; width: 12%; height: 30%; background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); border-radius: 45% 40% 30% 35% / 60% 55% 40% 45%; transform: rotate(5deg); animation: di-figure 4s ease-in-out infinite alternate; }
.scn-divorce-incorporate .figure-right { position: absolute; bottom: 18%; right: 30%; width: 12%; height: 30%; background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); border-radius: 40% 45% 35% 30% / 55% 60% 45% 40%; transform: rotate(-5deg); animation: di-figure 4s ease-in-out infinite alternate-reverse; }
.scn-divorce-incorporate .crown { position: absolute; top: 8%; left: 50%; transform: translateX(-50%); width: 14%; height: 10%; background: linear-gradient(180deg, #e8c44a 0%, #b89428 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: 0 4px 12px rgba(184,148,40,0.6); animation: di-crown 3s ease-in-out infinite alternate; }
.scn-divorce-incorporate .glow { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 30%, rgba(255,243,214,0.3) 0%, transparent 60%); pointer-events: none; animation: di-glow 8s ease-in-out infinite alternate; }
@keyframes di-window { 0% { opacity: 0.8; box-shadow: inset 0 0 40px #fff3cc, 0 0 20px #ffd699; } 50% { opacity: 1; box-shadow: inset 0 0 80px #fff3cc, 0 0 60px #ffd699; } 100% { opacity: 0.9; box-shadow: inset 0 0 50px #fff3cc, 0 0 30px #ffd699; } }
@keyframes di-figure { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes di-crown { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px) scale(1.02); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes di-glow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

.scn-epilogue-begin { background: linear-gradient(180deg, #2a1f1a 0%, #1c1410 50%, #0d0a08 100%), radial-gradient(ellipse at 50% 70%, #3a2a1e 0%, transparent 70%); }
.scn-epilogue-begin .bg-deep { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, #0d0a08 100%); animation: eb-deep 12s ease-in-out infinite alternate; }
.scn-epilogue-begin .table { position: absolute; bottom: 15%; left: 25%; right: 25%; height: 10%; background: linear-gradient(180deg, #4a3828 0%, #2e1f14 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.4); }
.scn-epilogue-begin .candle { position: absolute; bottom: 22%; left: 47%; width: 3%; height: 20%; background: linear-gradient(180deg, #e8d8b8 0%, #d4b88f 100%); border-radius: 2px 2px 8px 8px; transform-origin: bottom; animation: eb-candle 4s ease-in-out infinite alternate; }
.scn-epilogue-begin .candle-glow { position: absolute; bottom: 30%; left: 45%; width: 10%; height: 10%; background: radial-gradient(circle, #ffd699 0%, #e8a860 50%, transparent 100%); border-radius: 50%; animation: eb-glow 3s ease-in-out infinite alternate; }
.scn-epilogue-begin .veil { position: absolute; top: 10%; left: 35%; width: 30%; height: 40%; background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(200,180,160,0.1) 100%); border-radius: 40% 40% 0 0; filter: blur(2px); animation: eb-veil 8s ease-in-out infinite alternate; }
.scn-epilogue-begin .ring { position: absolute; bottom: 22%; left: 55%; width: 4%; height: 4%; background: radial-gradient(circle, #e8c44a 0%, #b89428 100%); border-radius: 50%; border: 2px solid #b89428; box-shadow: 0 0 12px rgba(232,196,74,0.6); animation: eb-ring 5s ease-in-out infinite; }
.scn-epilogue-begin .figure { position: absolute; bottom: 10%; left: 48%; width: 10%; height: 25%; background: linear-gradient(180deg, #2a1f1a 0%, #1c1410 100%); border-radius: 45% 40% 30% 35% / 60% 55% 40% 45%; transform-origin: bottom center; animation: eb-figure 6s ease-in-out infinite alternate; }
@keyframes eb-deep { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes eb-candle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.05) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes eb-glow { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.8; transform: scale(1.05); } }
@keyframes eb-veil { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.03); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes eb-ring { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(8deg) translateY(-1px); } }
@keyframes eb-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(3px) translateY(-3px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }

.scn-epilogue-star-england { background: linear-gradient(180deg, #1a1412 0%, #2a1e18 50%, #0d0a08 100%), radial-gradient(ellipse at 50% 20%, #3a2a1e 0%, transparent 70%); }
.scn-epilogue-star-england .room-bg { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, #1a1412 100%); }
.scn-epilogue-star-england .sword { position: absolute; bottom: 15%; left: 38%; width: 5%; height: 40%; background: linear-gradient(180deg, #c0b0a0 0%, #807060 100%); border-radius: 4px 4px 12px 12px; transform: rotate(-15deg); transform-origin: bottom center; box-shadow: 0 0 12px rgba(192,176,160,0.3); animation: es-sword 5s ease-in-out infinite alternate; }
.scn-epilogue-star-england .star { position: absolute; top: 8%; left: 46%; width: 8%; height: 8%; background: radial-gradient(circle at 30% 30%, #e8d8b0 0%, #c8a860 100%); border-radius: 50%; clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); animation: es-star 4s ease-in-out infinite alternate; }
.scn-epilogue-star-england .star-glow { position: absolute; top: 4%; left: 42%; width: 16%; height: 16%; background: radial-gradient(circle, rgba(232,216,176,0.4) 0%, transparent 100%); border-radius: 50%; animation: es-glow 3s ease-in-out infinite alternate; }
.scn-epilogue-star-england .hand { position: absolute; bottom: 18%; left: 45%; width: 8%; height: 12%; background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(10deg); animation: es-hand 4s ease-in-out infinite alternate; }
.scn-epilogue-star-england .book { position: absolute; bottom: 8%; left: 30%; width: 12%; height: 18%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; transform: perspective(600px) rotateY(10deg); box-shadow: 0 2px 8px rgba(0,0,0,0.5); animation: es-book 6s ease-in-out infinite alternate; }
@keyframes es-sword { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-13deg) translateY(-4px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes es-star { 0% { transform: scale(1) rotate(0deg); opacity: 0.8; } 50% { transform: scale(1.1) rotate(10deg); opacity: 1; } 100% { transform: scale(1) rotate(0deg); opacity: 0.9; } }
@keyframes es-glow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.3); } 100% { opacity: 0.6; transform: scale(1.1); } }
@keyframes es-hand { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-3px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes es-book { 0% { transform: perspective(600px) rotateY(10deg) translateY(0); } 50% { transform: perspective(600px) rotateY(12deg) translateY(-2px); } 100% { transform: perspective(600px) rotateY(10deg) translateY(0); } }

.scn-epilogue-end { background: linear-gradient(180deg, #1a1412 0%, #2a1e18 50%, #0d0a08 100%), radial-gradient(ellipse at 50% 50%, #3a2a1e 0%, transparent 60%); }
.scn-epilogue-end .stage-bg { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, #1e1410 100%); animation: ee-stage 10s ease-in-out infinite alternate; }
.scn-epilogue-end .curtain-left { position: absolute; top: 0; left: 0; width: 25%; height: 100%; background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0c 100%); border-radius: 0 40% 60% 0 / 0 30% 40% 0; box-shadow: inset -10px 0 20px rgba(0,0,0,0.5); animation: ee-curtain 8s ease-in-out infinite alternate; }
.scn-epilogue-end .curtain-right { position: absolute; top: 0; right: 0; width: 25%; height: 100%; background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0c 100%); border-radius: 40% 0 0 60% / 30% 0 0 40%; box-shadow: inset 10px 0 20px rgba(0,0,0,0.5); animation: ee-curtain 8s ease-in-out infinite alternate-reverse; }
.scn-epilogue-end .crown { position: absolute; top: 25%; left: 42%; width: 16%; height: 14%; background: linear-gradient(180deg, #a08850 0%, #7a6638 100%); border-radius: 50% 50% 0 0 / 70% 70% 0 0; transform: rotate(-5deg); box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: ee-crown 4s ease-in-out infinite alternate; }
.scn-epilogue-end .map { position: absolute; bottom: 20%; left: 30%; width: 40%; height: 30%; background: linear-gradient(135deg, #8a6a3a 0%, #5a4a2a 100%); border-radius: 20% 30% 10% 20% / 30% 40% 10% 30%; clip-path: polygon(20% 0%, 80% 0%, 100% 20%, 90% 80%, 60% 100%, 30% 90%, 0% 70%, 10% 30%); animation: ee-map 12s ease-in-out infinite alternate; }
.scn-epilogue-end .king { position: absolute; bottom: 8%; left: 42%; width: 16%; height: 30%; background: linear-gradient(180deg, #2a1f1a 0%, #1c1410 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ee-king 5s ease-in-out infinite alternate; }
@keyframes ee-stage { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ee-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }
@keyframes ee-crown { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ee-map { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.03) rotate(2deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes ee-king { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* Scene 1: london-street-pistol-quarrel */
.scn-london-street-pistol-quarrel { background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #f4a460 100%), radial-gradient(ellipse at 80% 20%, rgba(255,215,0,0.3) 0%, transparent 70%); }
.scn-london-street-pistol-quarrel .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 100%); animation: lpq-sky 8s ease-in-out infinite alternate; }
.scn-london-street-pistol-quarrel .sun-glow { position:absolute; top:12%; left:70%; width:80px; height:80px; background: radial-gradient(circle, #fff8dc 0%, rgba(255,215,0,0.2) 100%); border-radius:50%; filter: blur(15px); animation: lpq-sunglow 4s ease-in-out infinite alternate; }
.scn-london-street-pistol-quarrel .street { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b8860b 0%, #8b6914 50%, #5c4010 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: lpq-street 12s ease-in-out infinite; }
.scn-london-street-pistol-quarrel .build-left { position:absolute; bottom:38%; left:0; width:35%; height:75%; background: linear-gradient(180deg, #6b4226 0%, #3e2412 100%); border-radius:0 8% 0 0; box-shadow: inset -6px 0 12px rgba(0,0,0,0.4); animation: lpq-build 6s ease-in-out infinite; }
.scn-london-street-pistol-quarrel .build-right { position:absolute; bottom:38%; right:0; width:40%; height:75%; background: linear-gradient(180deg, #7a5230 0%, #4a2e18 100%); border-radius:8% 0 0 0; box-shadow: inset 6px 0 12px rgba(0,0,0,0.4); animation: lpq-build 6s ease-in-out infinite reverse; }
.scn-london-street-pistol-quarrel .figure-left { position:absolute; bottom:36%; left:38%; width:24px; height:54px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lpq-fig-left 3s ease-in-out infinite; }
.scn-london-street-pistol-quarrel .figure-right { position:absolute; bottom:36%; right:38%; width:24px; height:52px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lpq-fig-right 3s ease-in-out infinite alternate; }
.scn-london-street-pistol-quarrel .pistol { position:absolute; bottom:42%; left:42%; width:28px; height:8px; background: linear-gradient(90deg, #4a2a0a 0%, #2a1a06 100%); border-radius:40% 10% 10% 40%; transform-origin: right center; box-shadow: 0 2px 4px rgba(0,0,0,0.6); animation: lpq-pistol 1.5s ease-in-out infinite; }
@keyframes lpq-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes lpq-sunglow { 0% { transform: scale(0.95); opacity:0.8; } 100% { transform: scale(1.1); opacity:1; } }
@keyframes lpq-street { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes lpq-build { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes lpq-fig-left { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-4px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lpq-fig-right { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes lpq-pistol { 0%,100% { transform: translate(0,0) rotate(-10deg); } 50% { transform: translate(2px,-2px) rotate(0deg); } }

/* Scene 2: london-street-intervention */
.scn-london-street-intervention { background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 40%, #daa520 100%), radial-gradient(ellipse at 50% 30%, rgba(255,215,0,0.25) 0%, transparent 60%); }
.scn-london-street-intervention .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 100%); animation: lis-sky 10s ease-in-out infinite alternate; }
.scn-london-street-intervention .sun-glow { position:absolute; top:15%; left:60%; width:100px; height:100px; background: radial-gradient(circle, #fffacd 0%, rgba(255,215,0,0.15) 100%); border-radius:50%; filter: blur(20px); animation: lis-sunglow 5s ease-in-out infinite alternate; }
.scn-london-street-intervention .street { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #c8961e 0%, #8b6914 60%, #5c4010 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); }
.scn-london-street-intervention .wall-back { position:absolute; bottom:34%; left:10%; right:10%; height:45%; background: linear-gradient(180deg, #7a5230 0%, #4a2e18 100%); border-radius:10% 10% 0 0; box-shadow: 0 0 0 2px #3e2412; animation: lis-wall 8s ease-in-out infinite; }
.scn-london-street-intervention .figure-left { position:absolute; bottom:34%; left:28%; width:22px; height:48px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lis-fig-left 3s ease-in-out infinite; }
.scn-london-street-intervention .figure-right { position:absolute; bottom:34%; right:28%; width:22px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lis-fig-right 3s ease-in-out infinite alternate; }
.scn-london-street-intervention .figure-mid { position:absolute; bottom:34%; left:46%; width:24px; height:52px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lis-fig-mid 2s ease-in-out infinite; }
.scn-london-street-intervention .sword { position:absolute; bottom:48%; left:52%; width:60px; height:4px; background: linear-gradient(90deg, #806040 0%, #c0a070 50%, #806040 100%); border-radius:40% 10% 10% 40%; transform-origin: 10% center; box-shadow: 0 1px 3px rgba(0,0,0,0.5); animation: lis-sword 1.5s ease-in-out infinite; }
@keyframes lis-sky { 0% { opacity:0.95; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes lis-sunglow { 0% { transform: scale(0.9) translate(0,0); opacity:0.7; } 100% { transform: scale(1.15) translate(5px,-5px); opacity:1; } }
@keyframes lis-wall { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.015); } }
@keyframes lis-fig-left { 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 lis-fig-right { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(8px) rotate(3deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes lis-fig-mid { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lis-sword { 0%,100% { transform: rotate(-15deg) translate(0,0); } 50% { transform: rotate(-5deg) translate(2px,-1px); } }

/* Scene 3: london-street-boy-message */
.scn-london-street-boy-message { background: linear-gradient(180deg, #b0e0e6 0%, #fdf5e6 50%, #deb887 100%), radial-gradient(ellipse at 70% 30%, rgba(255,215,0,0.2) 0%, transparent 60%); }
.scn-london-street-boy-message .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b0e0e6 0%, #fdf5e6 100%); animation: lbm-sky 15s ease-in-out infinite alternate; }
.scn-london-street-boy-message .sun-glow { position:absolute; top:10%; left:65%; width:90px; height:90px; background: radial-gradient(circle, #fff8dc 0%, rgba(255,215,0,0.1) 100%); border-radius:50%; filter: blur(18px); animation: lbm-sunglow 7s ease-in-out infinite alternate; }
.scn-london-street-boy-message .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #c4b48a 0%, #9c8c6a 60%, #7a6a4a 100%); border-radius:30% 30% 0 0 / 10% 10% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,0.3); }
.scn-london-street-boy-message .house { position:absolute; bottom:42%; left:20%; width:120px; height:80px; background: linear-gradient(180deg, #d2b48c 0%, #a08060 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: lbm-house 12s ease-in-out infinite; }
.scn-london-street-boy-message .tree { position:absolute; bottom:40%; right:15%; width:50px; height:100px; background: linear-gradient(180deg, #4a6a2a 0%, #2a4a1a 100%); border-radius:50% 50% 30% 30% / 40% 40% 30% 30%; transform-origin: bottom center; box-shadow: 0 0 20px rgba(0,0,0,0.2); animation: lbm-tree 8s ease-in-out infinite; }
.scn-london-street-boy-message .boy { position:absolute; bottom:35%; left:50%; width:18px; height:36px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lbm-boy 4s ease-in-out infinite; }
.scn-london-street-boy-message .bird { position:absolute; top:28%; left:30%; width:16px; height:10px; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius:50% 50% 20% 20%; clip-path: polygon(0% 50%, 100% 50%, 50% 0%); transform-origin: center; animation: lbm-bird 10s ease-in-out infinite alternate; }
@keyframes lbm-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes lbm-sunglow { 0% { transform: scale(1); opacity:0.7; } 100% { transform: scale(1.05) translate(3px,-3px); opacity:1; } }
@keyframes lbm-house { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes lbm-tree { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }
@keyframes lbm-boy { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes lbm-bird { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-10px) scaleX(-1); } 100% { transform: translateY(0) scaleX(1); } }

/* Scene 4: london-street-hostess-returns */
.scn-london-street-hostess-returns { background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 40%, #d2691e 100%), radial-gradient(ellipse at 50% 20%, rgba(255,215,0,0.2) 0%, transparent 70%); }
.scn-london-street-hostess-returns .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 100%); animation: lhr-sky 6s ease-in-out infinite alternate; }
.scn-london-street-hostess-returns .sun-glow { position:absolute; top:15%; left:50%; width:70px; height:70px; background: radial-gradient(circle, #fff8dc 0%, rgba(255,215,0,0.15) 100%); border-radius:50%; filter: blur(12px); animation: lhr-sunglow 3s ease-in-out infinite alternate; }
.scn-london-street-hostess-returns .street { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #b8860b 0%, #8b6914 60%, #5c4010 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); }
.scn-london-street-hostess-returns .inn-front { position:absolute; bottom:42%; left:25%; right:25%; height:50%; background: linear-gradient(180deg, #7a5230 0%, #4a2e18 100%); border-radius:15% 15% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.5); animation: lhr-inn 8s ease-in-out infinite; }
.scn-london-street-hostess-returns .door { position:absolute; bottom:40%; left:48%; width:40px; height:70px; background: linear-gradient(180deg, #3e2412 0%, #2a160a 100%); border-radius:4px 4px 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,0.6); animation: lhr-door 4s ease-in-out infinite; }
.scn-london-street-hostess-returns .hostess { position:absolute; bottom:38%; left:52%; width:20px; height:48px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lhr-hostess 2s ease-in-out infinite alternate; }
.scn-london-street-hostess-returns .window-sick { position:absolute; bottom:55%; left:35%; width:30px; height:24px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius:4px 4px 8% 8%; box-shadow: inset 0 0 8px rgba(0,0,0,0.8); animation: lhr-window 6s ease-in-out infinite; }
.scn-london-street-hostess-returns .sick-figure { position:absolute; bottom:52%; left:37%; width:12px; height:20px; background: linear-gradient(180deg, #1a0e05 0%, #0a0602 100%); border-radius:50% 50% 30% 30%; opacity:0.7; animation: lhr-sick 4s ease-in-out infinite; }
@keyframes lhr-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes lhr-sunglow { 0% { transform: scale(0.95); opacity:0.7; } 100% { transform: scale(1.1); opacity:1; } }
@keyframes lhr-inn { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } }
@keyframes lhr-door { 0%,100% { transform: translateX(0); } 50% { transform: translateX(2px); } }
@keyframes lhr-hostess { 0% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(8px) rotate(3deg); } 100% { transform: translateX(16px) rotate(-2deg); } }
@keyframes lhr-window { 0%,100% { box-shadow: inset 0 0 8px rgba(0,0,0,0.8); } 50% { box-shadow: inset 0 0 12px rgba(0,0,0,1); } }
@keyframes lhr-sick { 0%,100% { transform: translateY(0); opacity:0.5; } 50% { transform: translateY(-2px); opacity:0.8; } }

/* york-vaward: dawn tense */
.scn-york-vaward { background: linear-gradient(180deg, #2a2a4a 0%, #4a4a6e 30%, #b08060 60%, #d0a070 100%), radial-gradient(ellipse at 50% 30%, #f0c080 0%, transparent 60%); }
.scn-york-vaward .sky-dawn { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a3e 0%, #3a3a5e 40%, #b08060 100%); animation: si-yv-sky 15s ease-in-out infinite alternate; }
.scn-york-vaward .sun     { position:absolute; bottom:45%; left:50%; width:60px; height:60px; margin-left:-30px; background: radial-gradient(circle, #f0d080 0%, #d0a060 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(200,140,80,0.6); animation: si-yv-sun 20s ease-in-out infinite; }
.scn-york-vaward .hill-bg { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius: 50% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.4); animation: si-yv-hill 12s ease-in-out infinite; }
.scn-york-vaward .ground  { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #3a4a2a 0%, #1a2a1a 100%); box-shadow: inset 0 5px 10px rgba(0,0,0,0.5); animation: si-yv-ground 8s ease-in-out infinite; }
.scn-york-vaward .figure-left  { position:absolute; bottom:18%; left:30%; width:20px; 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: si-yv-figure-l 4s ease-in-out infinite; }
.scn-york-vaward .figure-right { position:absolute; bottom:18%; right:30%; width:22px; height:52px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-yv-figure-r 4s ease-in-out infinite; }
.scn-york-vaward .mist    { position:absolute; bottom:10%; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent, rgba(200,180,160,0.3) 50%, transparent); filter: blur(8px); animation: si-yv-mist 30s linear infinite; }
.scn-york-vaward .blade   { position:absolute; bottom:26%; left:46%; width:3px; height:16px; background: #8a8a9a; border-radius: 20% 20% 0 0; box-shadow: 0 0 4px #a0a0b0; animation: si-yv-blade 3s ease-in-out infinite alternate; transform-origin: bottom center; }
@keyframes si-yv-sky       { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes si-yv-sun       { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-8px) scale(1.05); } 100% { transform: translateY(4px) scale(0.95); } }
@keyframes si-yv-hill      { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes si-yv-ground    { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes si-yv-figure-l  { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(-5deg); } 50% { transform: translateX(0) rotate(5deg); } 75% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes si-yv-figure-r  { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(5deg); } 50% { transform: translateX(0) rotate(-5deg); } 75% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes si-yv-mist      { 0% { transform: translateX(-20%); opacity:0.5; } 50% { transform: translateX(20%); opacity:0.2; } 100% { transform: translateX(40%); opacity:0.6; } }
@keyframes si-yv-blade     { 0% { transform: rotate(0deg); } 100% { transform: rotate(15deg); } }

/* pistol-french-prisoner: sunlit tense */
.scn-pistol-french-prisoner { background: linear-gradient(180deg, #6a8aba 0%, #8ab0da 40%, #d0d8e0 80%, #f0e8d0 100%), radial-gradient(ellipse at 50% 20%, #f0e8a0 0%, transparent 60%); }
.scn-pistol-french-prisoner .sky-sunlit { position:absolute; inset:0; background: linear-gradient(180deg, #5a7aaa 0%, #7a9aba 40%, #d0d8e0 100%); animation: si-pf-sky 10s ease-in-out infinite alternate; }
.scn-pistol-french-prisoner .sun-glare { position:absolute; top:10%; left:60%; width:80px; height:80px; background: radial-gradient(circle, #fff0a0 0%, #ffe080 30%, transparent 70%); border-radius:50%; animation: si-pf-sun 8s ease-in-out infinite; }
.scn-pistol-french-prisoner .ground-sand { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #c0b890 0%, #a09870 100%); box-shadow: inset 0 8px 15px rgba(0,0,0,0.3); animation: si-pf-ground 6s ease-in-out infinite; }
.scn-pistol-french-prisoner .soldier { position:absolute; bottom:20%; left:30%; width:28px; height:60px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-pf-soldier 3s ease-in-out infinite; }
.scn-pistol-french-prisoner .prisoner { position:absolute; bottom:18%; right:30%; width:26px; 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: si-pf-prisoner 4s ease-in-out infinite; }
.scn-pistol-french-prisoner .pistol { position:absolute; bottom:32%; left:38%; width:4px; height:20px; background: #6a6a7a; border-radius: 20% 20% 0 0; box-shadow: 0 0 4px #888; transform: rotate(30deg); transform-origin: bottom center; animation: si-pf-pistol 2s ease-in-out infinite alternate; }
.scn-pistol-french-prisoner .shadow-soldier { position:absolute; bottom:0; left:28%; width:40px; height:10px; background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(4px); animation: si-pf-shadow 6s ease-in-out infinite; }
.scn-pistol-french-prisoner .shadow-prisoner { position:absolute; bottom:0; right:28%; width:36px; height:8px; background: rgba(0,0,0,0.4); border-radius:50%; filter: blur(3px); animation: si-pf-shadow 6s ease-in-out infinite reverse; }
@keyframes si-pf-sky       { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes si-pf-sun       { 0% { transform: scale(1); box-shadow: 0 0 60px 20px rgba(255,224,128,0.5); } 50% { transform: scale(1.05); box-shadow: 0 0 80px 30px rgba(255,224,128,0.7); } 100% { transform: scale(0.95); box-shadow: 0 0 50px 15px rgba(255,224,128,0.4); } }
@keyframes si-pf-ground    { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes si-pf-soldier   { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes si-pf-prisoner  { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes si-pf-pistol    { 0% { transform: rotate(25deg); } 100% { transform: rotate(35deg); } }
@keyframes si-pf-shadow    { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(0.9); } }

/* french-retreat-shame: sunlit tense */
.scn-french-retreat-shame { background: linear-gradient(180deg, #7a9aba 0%, #a0c0da 30%, #d0d8e0 70%, #e8e0c0 100%), radial-gradient(ellipse at 50% 10%, #f0e8a0 0%, transparent 50%); }
.scn-french-retreat-shame .sky-bright { position:absolute; inset:0; background: linear-gradient(180deg, #6a8aaa 0%, #8aaaca 40%, #d0d8e0 100%); animation: si-fr-sky 12s ease-in-out infinite alternate; }
.scn-french-retreat-shame .sun-high { position:absolute; top:5%; left:70%; width:70px; height:70px; background: radial-gradient(circle, #ffe080 0%, #ffc040 30%, transparent 70%); border-radius:50%; animation: si-fr-sun 10s ease-in-out infinite; }
.scn-french-retreat-shame .tent { position:absolute; bottom:20%; left:15%; width:80px; height:90px; background: linear-gradient(180deg, #b0a080 0%, #807060 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); animation: si-fr-tent 8s ease-in-out infinite; }
.scn-french-retreat-shame .braggart { position:absolute; bottom:22%; left:50%; width:36px; height:72px; margin-left:-18px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-fr-braggart 3s ease-in-out infinite; }
.scn-french-retreat-shame .mouth-open { position:absolute; bottom:45%; left:50%; width:14px; height:10px; margin-left:-7px; background: #2a2a2a; border-radius: 50% 50% 0 0; box-shadow: inset 0 0 0 2px #4a4a4a; animation: si-fr-mouth 2s ease-in-out infinite alternate; }
.scn-french-retreat-shame .shadow-braggart { position:absolute; bottom:0; left:45%; width:60px; height:12px; background: rgba(0,0,0,0.35); border-radius:50%; filter: blur(3px); animation: si-fr-shadow 6s ease-in-out infinite; }
.scn-french-retreat-shame .dust { position:absolute; bottom:10%; left:30%; width:40px; height:20px; background: radial-gradient(circle, rgba(200,180,150,0.4) 0%, transparent 100%); filter: blur(5px); animation: si-fr-dust 4s ease-in-out infinite; }
.scn-french-retreat-shame .flag { position:absolute; top:10%; left:20%; width:16px; height:40px; background: #c8553d; border-radius:0 0 20% 20%; box-shadow: 0 0 6px #a0461a; transform-origin: top center; animation: si-fr-flag 3s ease-in-out infinite alternate; }
@keyframes si-fr-sky       { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes si-fr-sun       { 0% { transform: scale(1); } 50% { transform: scale(1.08); } 100% { transform: scale(0.95); } }
@keyframes si-fr-tent      { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes si-fr-braggart  { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(-6deg); } 50% { transform: translateX(0) rotate(6deg); } 75% { transform: translateX(4px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes si-fr-mouth     { 0% { transform: scaleY(0.8); } 100% { transform: scaleY(1.3); } }
@keyframes si-fr-shadow    { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.15); } 100% { transform: scaleX(0.85); } }
@keyframes si-fr-dust      { 0% { transform: translateY(0) scale(1); opacity:0.6; } 50% { transform: translateY(-8px) scale(1.5); opacity:0.2; } 100% { transform: translateY(0) scale(1); opacity:0.6; } }
@keyframes si-fr-flag      { 0% { transform: rotate(-10deg); } 100% { transform: rotate(10deg); } }

/* york-suffolk-death: sunlit tense */
.scn-york-suffolk-death { background: linear-gradient(180deg, #6a8aba 0%, #8ab0da 30%, #c0c8d0 70%, #d8d0c0 100%), radial-gradient(ellipse at 50% 30%, #f0e0a0 0%, transparent 60%); }
.scn-york-suffolk-death .sky-plain { position:absolute; inset:0; background: linear-gradient(180deg, #5a7aaa 0%, #7a9aba 40%, #c0c8d0 100%); animation: si-ys-sky 14s ease-in-out infinite alternate; }
.scn-york-suffolk-death .sun-mid { position:absolute; top:25%; left:50%; width:60px; height:60px; margin-left:-30px; background: radial-gradient(circle, #ffe080 0%, #ffc040 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,192,64,0.5); animation: si-ys-sun 12s ease-in-out infinite; }
.scn-york-suffolk-death .ground-plane { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(180deg, #a09870 0%, #708060 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.4); animation: si-ys-ground 10s ease-in-out infinite; }
.scn-york-suffolk-death .body-york { position:absolute; bottom:10%; left:30%; width:30px; height:55px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-ys-body-y 4s ease-in-out infinite; }
.scn-york-suffolk-death .body-suffolk { position:absolute; bottom:12%; right:30%; width:28px; height:50px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-ys-body-s 4s ease-in-out infinite reverse; }
.scn-york-suffolk-death .blood-patch { position:absolute; bottom:8%; left:28%; width:40px; height:16px; background: radial-gradient(ellipse, #a0461a 0%, #5e1a1d 60%, transparent 100%); border-radius:50%; filter: blur(3px); animation: si-ys-blood 8s ease-in-out infinite; }
.scn-york-suffolk-death .spear { position:absolute; bottom:25%; left:50%; width:3px; height:60px; margin-left:-1.5px; background: #6a6a7a; border-radius:20%; transform: rotate(10deg); transform-origin: bottom center; animation: si-ys-spear 6s ease-in-out infinite alternate; }
.scn-york-suffolk-death .clouds { position:absolute; top:5%; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%); filter: blur(10px); animation: si-ys-clouds 40s linear infinite; }
@keyframes si-ys-sky       { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes si-ys-sun       { 0% { transform: scale(1); } 50% { transform: scale(1.03); } 100% { transform: scale(0.97); } }
@keyframes si-ys-ground    { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes si-ys-body-y    { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes si-ys-body-s    { 0% { transform: rotate(0deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes si-ys-blood     { 0% { transform: scale(1); } 50% { transform: scale(1.1); opacity:0.7; } 100% { transform: scale(1); } }
@keyframes si-ys-spear     { 0% { transform: rotate(8deg); } 100% { transform: rotate(12deg); } }
@keyframes si-ys-clouds    { 0% { transform: translateX(-20%); } 100% { transform: translateX(100%); } }

/* presence-chamber-king-departure */
.scn-presence-chamber-king-departure {
  background: linear-gradient(180deg, #f5e6c8 0%, #e0ccaa 40%, #c8b090 100%),
              radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%);
}
.scn-presence-chamber-king-departure .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #dac8a8 0%, #b8a080 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.15);
}
.scn-presence-chamber-king-departure .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5a3e 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-presence-chamber-king-departure .throne {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a060 0%, #a08040 50%, #705020 100%);
  border-radius: 30% 30% 5% 5% / 40% 40% 5% 5%;
  box-shadow: 0 8px 30px rgba(0,0,0,0.3);
  animation: pkd-throne 10s ease-in-out infinite;
}
.scn-presence-chamber-king-departure .crown {
  position: absolute; bottom: 88%; left: 50%; width: 30px; height: 25px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0d080 0%, #d0a050 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 6px rgba(200,160,80,0.4);
  animation: pkd-crown 6s ease-in-out infinite alternate;
}
.scn-presence-chamber-king-departure .banner-left {
  position: absolute; top: 20%; left: 15%; width: 30px; height: 120px;
  background: linear-gradient(180deg, #a06030 0%, #804020 100%);
  border-radius: 0 0 30% 30%;
  transform-origin: top center;
  animation: pkd-banner 8s ease-in-out infinite alternate;
}
.scn-presence-chamber-king-departure .banner-right {
  position: absolute; top: 20%; right: 15%; width: 30px; height: 120px;
  background: linear-gradient(180deg, #a06030 0%, #804020 100%);
  border-radius: 0 0 30% 30%;
  transform-origin: top center;
  animation: pkd-banner 8s ease-in-out infinite alternate-reverse;
}
.scn-presence-chamber-king-departure .window {
  position: absolute; top: 15%; left: 42%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #aaccff 0%, #6699cc 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3), 0 0 40px rgba(200,200,255,0.2);
  animation: pkd-window 12s ease-in-out infinite alternate;
}
.scn-presence-chamber-king-departure .sunbeam {
  position: absolute; top: 60%; left: 44%; width: 40px; height: 100px;
  background: linear-gradient(135deg, rgba(255,255,220,0.2) 0%, transparent 100%);
  transform: rotate(-10deg);
  filter: blur(4px);
  animation: pkd-sunbeam 15s ease-in-out infinite alternate;
}
@keyframes pkd-throne {
  0%   { transform: translateX(-50%) translateY(0); }
  50%  { transform: translateX(-50%) translateY(-4px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes pkd-crown {
  0%   { opacity: 0.8; transform: translateX(-50%) scale(1); }
  50%  { opacity: 1;   transform: translateX(-50%) scale(1.05) rotate(2deg); }
  100% { opacity: 0.8; transform: translateX(-50%) scale(1); }
}
@keyframes pkd-banner {
  0%   { transform: rotate(0deg); }
  50%  { transform: rotate(4deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes pkd-window {
  0%   { opacity: 0.7; box-shadow: inset 0 0 20px rgba(255,255,200,0.3), 0 0 40px rgba(200,200,255,0.2); }
  50%  { opacity: 1;   box-shadow: inset 0 0 30px rgba(255,255,200,0.5), 0 0 60px rgba(200,200,255,0.4); }
  100% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(255,255,200,0.3), 0 0 40px rgba(200,200,255,0.2); }
}
@keyframes pkd-sunbeam {
  0%   { opacity: 0.3; transform: rotate(-10deg) translateX(0); }
  50%  { opacity: 0.6; transform: rotate(-12deg) translateX(5px); }
  100% { opacity: 0.2; transform: rotate(-8deg) translateX(-5px); }
}

/* second-prologue-england-on-fire */
.scn-second-prologue-england-on-fire {
  background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 70%, #6a4a2a 0%, transparent 60%);
}
.scn-second-prologue-england-on-fire .forge {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.6);
}
.scn-second-prologue-england-on-fire .fire {
  position: absolute; bottom: 35%; left: 35%; width: 30px; height: 40px;
  background: radial-gradient(circle, #ff8040 0%, #ff6020 40%, #cc3000 70%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 50px 20px rgba(255,96,32,0.6), 0 0 100px 40px rgba(255,96,32,0.3);
  animation: pef-fire 2s ease-in-out infinite alternate;
}
.scn-second-prologue-england-on-fire .anvil {
  position: absolute; bottom: 25%; left: 40%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #888 0%, #555 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-second-prologue-england-on-fire .hammer {
  position: absolute; bottom: 45%; left: 38%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: pef-hammer 3s ease-in-out infinite;
}
.scn-second-prologue-england-on-fire .armour {
  position: absolute; bottom: 20%; right: 25%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #7a8a7a 0%, #4a5a4a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 0 20px rgba(100,120,100,0.3);
  animation: pef-armour 8s ease-in-out infinite alternate;
}
.scn-second-prologue-england-on-fire .shield {
  position: absolute; bottom: 20%; right: 15%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
}
.scn-second-prologue-england-on-fire .smoke {
  position: absolute; top: 20%; left: 35%; width: 40px; height: 30px;
  background: radial-gradient(circle, rgba(60,40,20,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: pef-smoke 12s ease-in-out infinite alternate;
}
@keyframes pef-fire {
  0%   { transform: scale(1) rotate(0deg); opacity: 0.9; }
  50%  { transform: scale(1.2) rotate(10deg); opacity: 1; }
  100% { transform: scale(0.9) rotate(-5deg); opacity: 0.8; }
}
@keyframes pef-hammer {
  0%   { transform: rotate(-20deg); }
  50%  { transform: rotate(20deg); }
  100% { transform: rotate(-20deg); }
}
@keyframes pef-armour {
  0%   { transform: translateY(0); opacity: 0.6; }
  50%  { transform: translateY(-5px); opacity: 0.9; box-shadow: 0 0 30px rgba(100,120,100,0.5); }
  100% { transform: translateY(0); opacity: 0.6; }
}
@keyframes pef-smoke {
  0%   { transform: translate(0,0) scale(1); opacity: 0.3; }
  50%  { transform: translate(10px,-10px) scale(1.5); opacity: 0.5; }
  100% { transform: translate(-5px,-5px) scale(1.2); opacity: 0.2; }
}

/* second-prologue-traitors-named */
.scn-second-prologue-traitors-named {
  background: linear-gradient(180deg, #1a0e0a 0%, #2a1a12 40%, #1a0e0a 100%),
              radial-gradient(ellipse at 50% 80%, #3a2020 0%, transparent 70%);
}
.scn-second-prologue-traitors-named .table {
  position: absolute; bottom: 15%; left: 30%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.6);
}
.scn-second-prologue-traitors-named .document {
  position: absolute; bottom: 28%; left: 35%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #b8a080 0%, #9a8260 100%);
  border-radius: 2%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: ptm-doc 6s ease-in-out infinite alternate;
}
.scn-second-prologue-traitors-named .quill {
  position: absolute; bottom: 32%; left: 38%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 10% 10%;
  transform-origin: top center;
  animation: ptm-quill 3s ease-in-out infinite alternate;
}
.scn-second-prologue-traitors-named .candle {
  position: absolute; bottom: 28%; left: 28%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #e8d0a0 0%, #c0a070 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(255,180,80,0.5);
  animation: ptm-candle 2s ease-in-out infinite alternate;
}
.scn-second-prologue-traitors-named .shadow-fig1 {
  position: absolute; bottom: 12%; left: 18%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ptm-fig 7s ease-in-out infinite alternate;
}
.scn-second-prologue-traitors-named .shadow-fig2 {
  position: absolute; bottom: 12%; left: 40%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ptm-fig 7s ease-in-out infinite alternate 2s;
}
.scn-second-prologue-traitors-named .shadow-fig3 {
  position: absolute; bottom: 12%; left: 62%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ptm-fig 7s ease-in-out infinite alternate 4s;
}
@keyframes ptm-doc {
  0%   { transform: rotate(0deg) translateX(0); }
  50%  { transform: rotate(2deg) translateX(3px); }
  100% { transform: rotate(-1deg) translateX(-2px); }
}
@keyframes ptm-quill {
  0%   { transform: rotate(-10deg); }
  50%  { transform: rotate(15deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes ptm-candle {
  0%   { opacity: 0.8; transform: scaleY(1); box-shadow: 0 0 20px 8px rgba(255,180,80,0.5); }
  50%  { opacity: 1;   transform: scaleY(1.1); box-shadow: 0 0 30px 12px rgba(255,200,100,0.7); }
  100% { opacity: 0.7; transform: scaleY(0.9); box-shadow: 0 0 15px 6px rgba(255,180,80,0.4); }
}
@keyframes ptm-fig {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(-2px) rotate(1deg); }
}

/* london-street-nyM-bardolph */
.scn-london-street-nyM-bardolph {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 50%, #e0f0f8 100%),
              radial-gradient(ellipse at 50% 0%, #fff4d0 0%, transparent 60%);
}
.scn-london-street-nyM-bardolph .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #c0e0f0 100%);
  animation: lsb-sky 20s ease-in-out infinite alternate;
}
.scn-london-street-nyM-bardolph .building-left {
  position: absolute; bottom: 15%; left: 5%; width: 35%; height: 60%;
  background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 0 40px rgba(0,0,0,0.1);
}
.scn-london-street-nyM-bardolph .building-right {
  position: absolute; bottom: 15%; right: 5%; width: 30%; height: 55%;
  background: linear-gradient(180deg, #b8a898 0%, #988878 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 0 40px rgba(0,0,0,0.1);
}
.scn-london-street-nyM-bardolph .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 30% 30% 0 0 / 10% 10% 0 0;
}
.scn-london-street-nyM-bardolph .sign {
  position: absolute; bottom: 38%; left: 30%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #a06030 0%, #804020 100%);
  border-radius: 10%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: lsb-sign 5s ease-in-out infinite alternate;
}
.scn-london-street-nyM-bardolph .figure {
  position: absolute; bottom: 18%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lsb-figure 4s ease-in-out infinite;
}
.scn-london-street-nyM-bardolph .shadow {
  position: absolute; bottom: 18%; left: 45%; width: 25px; height: 10px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(3px);
  animation: lsb-shadow 4s ease-in-out infinite;
}
.scn-london-street-nyM-bardolph .shutter {
  position: absolute; top: 20%; left: 15%; width: 15px; height: 40px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 5% 5% 0 0;
  transform-origin: left center;
  animation: lsb-shutter 6s ease-in-out infinite alternate;
}
@keyframes lsb-sky {
  0%   { opacity: 0.8; }
  50%  { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes lsb-sign {
  0%   { transform: rotate(-3deg) translateX(0); }
  50%  { transform: rotate(3deg) translateX(2px); }
  100% { transform: rotate(-2deg) translateX(-1px); }
}
@keyframes lsb-figure {
  0%   { transform: translateX(0) rotate(0deg); }
  25%  { transform: translateX(3px) rotate(2deg); }
  50%  { transform: translateX(6px) rotate(-2deg); }
  75%  { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lsb-shadow {
  0%   { transform: translateX(0) scaleX(1); opacity: 0.2; }
  25%  { transform: translateX(3px) scaleX(1.1); opacity: 0.3; }
  50%  { transform: translateX(6px) scaleX(1.2); opacity: 0.25; }
  75%  { transform: translateX(3px) scaleX(1.1); opacity: 0.3; }
  100% { transform: translateX(0) scaleX(1); opacity: 0.2; }
}
@keyframes lsb-shutter {
  0%   { transform: rotate(0deg); }
  50%  { transform: rotate(10deg); }
  100% { transform: rotate(-5deg); }
}

/* scene 1: warm, bright interior, remembrance of dead, throne, youth */
.scn-presence-chamber-awaken-remembrance {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4b896 30%, #b89a7a 60%, #8a6e4a 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 60%);
}
.scn-presence-chamber-awaken-remembrance .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8d4b0 0%, #c4a882 100%);
  box-shadow: inset 0 0 80px rgba(139,90,43,0.3);
  animation: pr1-wall 12s ease-in-out infinite alternate;
}
.scn-presence-chamber-awaken-remembrance .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7a5e3a 0%, #4c3820 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
.scn-presence-chamber-awaken-remembrance .window {
  position: absolute; top: 8%; left: 15%; width: 28%; height: 45%;
  background: radial-gradient(ellipse at 50% 30%, #a8d8ea 0%, #6a9eb5 60%, #3a6a85 100%);
  border: 6px solid #8a6e4a;
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  box-shadow: inset 0 0 40px rgba(168,216,234,0.4);
  animation: pr1-window 8s ease-in-out infinite alternate;
}
.scn-presence-chamber-awaken-remembrance .throne {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 22%; height: 35%;
  background: linear-gradient(180deg, #b8860b 0%, #8b6914 40%, #5c4510 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.4);
  animation: pr1-throne 6s ease-in-out infinite;
}
.scn-presence-chamber-awaken-remembrance .figure-king {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%);
  width: 14%; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pr1-king 4s ease-in-out infinite alternate;
}
.scn-presence-chamber-awaken-remembrance .tapestry-left {
  position: absolute; top: 5%; left: 3%; width: 12%; height: 55%;
  background: linear-gradient(180deg, #8b3a3a 0%, #5a2424 50%, #3a1616 100%);
  border-radius: 10px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: pr1-tapestry 15s ease-in-out infinite alternate;
}
.scn-presence-chamber-awaken-remembrance .tapestry-right {
  position: absolute; top: 5%; right: 3%; width: 12%; height: 55%;
  background: linear-gradient(180deg, #3a5a8b 0%, #243a5a 50%, #16203a 100%);
  border-radius: 10px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: pr1-tapestry 15s ease-in-out infinite alternate-reverse;
}
.scn-presence-chamber-awaken-remembrance .sunbeam {
  position: absolute; top: 8%; left: 18%; width: 20%; height: 80%;
  background: linear-gradient(135deg, rgba(255,248,224,0.3) 0%, rgba(255,248,224,0) 60%);
  filter: blur(8px);
  animation: pr1-sunbeam 10s ease-in-out infinite alternate;
}
@keyframes pr1-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pr1-window { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes pr1-throne { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.01) translateY(-2px); } 100% { transform: translateX(-50%) scale(0.99); } }
@keyframes pr1-king { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(1deg) translateY(-1px); } 50% { transform: translateX(-50%) rotate(-1deg); } 75% { transform: translateX(-50%) rotate(1.5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes pr1-tapestry { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.04); } 100% { transform: scaleY(0.96); } }
@keyframes pr1-sunbeam { 0% { transform: rotate(-5deg) translateX(-10px); opacity: 0.6; } 50% { transform: rotate(3deg) translateX(5px); opacity: 1; } 100% { transform: rotate(-2deg) translateX(-5px); opacity: 0.8; } }

/* scene 2: tense, bright interior, council defending against Scots */
.scn-presence-chamber-scot-defence {
  background:
    linear-gradient(180deg, #c8b896 0%, #a68a6e 30%, #7a5e3a 60%, #4c3820 100%),
    radial-gradient(ellipse at 30% 20%, #f0e0c0 0%, transparent 60%);
}
.scn-presence-chamber-scot-defence .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4c4a8 0%, #b09a7a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.2);
  animation: pr2-wall 8s ease-in-out infinite alternate;
}
.scn-presence-chamber-scot-defence .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a4028 0%, #2a1a0a 100%);
}
.scn-presence-chamber-scot-defence .map-table {
  position: absolute; bottom: 30%; left: 25%; width: 50%; height: 15%;
  background: linear-gradient(135deg, #6b4423 0%, #4a2e14 100%);
  border-radius: 10px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: pr2-table 10s ease-in-out infinite;
}
.scn-presence-chamber-scot-defence .figure-council {
  position: absolute; bottom: 38%; left: 35%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pr2-council 3s ease-in-out infinite alternate;
}
.scn-presence-chamber-scot-defence .candle {
  position: absolute; bottom: 42%; left: 48%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #f0e68c 0%, #d4af37 50%, #8b6914 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #d4af37, 0 0 40px 12px rgba(212,175,55,0.4);
  animation: pr2-candle 2s ease-in-out infinite alternate;
}
.scn-presence-chamber-scot-defence .column-left {
  position: absolute; top: 0; left: 8%; width: 6%; height: 90%;
  background: linear-gradient(180deg, #d4c4a8 0%, #a68a6e 50%, #7a5e3a 100%);
  border-radius: 10px;
  box-shadow: 4px 0 12px rgba(0,0,0,0.3);
}
.scn-presence-chamber-scot-defence .column-right {
  position: absolute; top: 0; right: 8%; width: 6%; height: 90%;
  background: linear-gradient(180deg, #d4c4a8 0%, #a68a6e 50%, #7a5e3a 100%);
  border-radius: 10px;
  box-shadow: -4px 0 12px rgba(0,0,0,0.3);
}
.scn-presence-chamber-scot-defence .shadow-figure {
  position: absolute; bottom: 38%; left: 55%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.8;
  animation: pr2-shadow 4s ease-in-out infinite alternate;
}
@keyframes pr2-wall { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.01); } 100% { transform: scaleX(0.99); } }
@keyframes pr2-table { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes pr2-council { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pr2-candle { 0% { transform: scaleY(1) rotate(-2deg); opacity: 0.9; } 50% { transform: scaleY(1.05) rotate(1deg); opacity: 1; } 100% { transform: scaleY(0.95) rotate(-1deg); opacity: 0.85; } }
@keyframes pr2-shadow { 0% { transform: translateX(0) scale(1); } 100% { transform: translateX(5px) scale(1.1); } }

/* scene 3: calm, bright interior, queen's example with Scotland */
.scn-presence-chamber-scot-example {
  background:
    linear-gradient(180deg, #f0e6d4 0%, #d4c4a8 30%, #b09a7a 60%, #8a6e4a 100%),
    radial-gradient(ellipse at 60% 40%, #fff8e0 0%, transparent 70%);
}
.scn-presence-chamber-scot-example .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b896 100%);
  box-shadow: inset 0 0 80px rgba(139,90,43,0.2);
  animation: pr3-wall 16s ease-in-out infinite alternate;
}
.scn-presence-chamber-scot-example .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a5e3a 0%, #4c3820 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
}
.scn-presence-chamber-scot-example .window-arch {
  position: absolute; top: 5%; left: 10%; width: 35%; height: 50%;
  background: radial-gradient(ellipse at 50% 30%, #b8d8e8 0%, #7aa0b8 60%, #4a6a85 100%);
  border: 6px solid #8a6e4a;
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: inset 0 0 30px rgba(184,216,232,0.3);
  animation: pr3-window 12s ease-in-out infinite alternate;
}
.scn-presence-chamber-scot-example .queen-throne {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 18%; height: 40%;
  background: linear-gradient(180deg, #c9a96e 0%, #a6884a 40%, #7a5e2e 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 8px 25px rgba(0,0,0,0.3);
  animation: pr3-throne 8s ease-in-out infinite;
}
.scn-presence-chamber-scot-example .figure-queen {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 12%; height: 32%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pr3-queen 5s ease-in-out infinite alternate;
}
.scn-presence-chamber-scot-example .crown {
  position: absolute; bottom: 58%; left: 50%; transform: translateX(-50%);
  width: 8%; height: 5%;
  background: linear-gradient(180deg, #ffd700 0%, #b8860b 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: 0 0 15px #ffd700;
  animation: pr3-crown 3s ease-in-out infinite alternate;
}
.scn-presence-chamber-scot-example .robe-train {
  position: absolute; bottom: 20%; left: 45%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #8b4466 0%, #5a2a3a 100%);
  border-radius: 40% 40% 50% 50% / 80% 80% 20% 20%;
  animation: pr3-robe 10s ease-in-out infinite alternate;
}
.scn-presence-chamber-scot-example .dove {
  position: absolute; top: 10%; right: 15%; width: 6%; height: 6%;
  background: radial-gradient(circle at 50% 40%, #ffffff 0%, #d0d0d0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pr3-dove 14s ease-in-out infinite;
}
@keyframes pr3-wall { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes pr3-window { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(0.99); } }
@keyframes pr3-throne { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.005) translateY(-1px); } 100% { transform: translateX(-50%) scale(0.995); } }
@keyframes pr3-queen { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(0.5deg) translateY(-1px); } 50% { transform: translateX(-50%) rotate(-0.5deg); } 75% { transform: translateX(-50%) rotate(0.8deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes pr3-crown { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes pr3-robe { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.01); } 100% { transform: translateX(-5px) scale(0.99); } }
@keyframes pr3-dove { 0% { transform: translate(0,0) scale(1); } 25% { transform: translate(10px, -5px) scale(1.05); } 50% { transform: translate(20px, 2px) scale(0.95); } 75% { transform: translate(15px, -3px) scale(1.02); } 100% { transform: translate(0,0) scale(1); } }

/* scene 4: calm, bright interior, old saying about Scotland first */
.scn-presence-chamber-old-saying {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #c8b896 30%, #a68a6e 60%, #7a5e3a 100%),
    radial-gradient(ellipse at 40% 20%, #fff8e0 0%, transparent 70%);
}
.scn-presence-chamber-old-saying .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a88a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
  animation: pr4-wall 14s ease-in-out infinite alternate;
}
.scn-presence-chamber-old-saying .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6b5030 0%, #3a2612 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-presence-chamber-old-saying .fireplace {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 35%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-presence-chamber-old-saying .fire-glow {
  position: absolute; bottom: 35%; left: 38%; width: 24%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #ff8c00 0%, #ff4500 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ff4500, 0 0 120px 40px rgba(255,69,0,0.3);
  animation: pr4-fire 3s ease-in-out infinite alternate;
}
.scn-presence-chamber-old-saying .cat-silhouette {
  position: absolute; bottom: 32%; left: 20%; width: 10%; height: 15%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pr4-cat 6s ease-in-out infinite alternate;
}
.scn-presence-chamber-old-saying .mouse-silhouette {
  position: absolute; bottom: 34%; left: 22%; width: 4%; height: 6%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50%;
  animation: pr4-mouse 4s ease-in-out infinite;
}
.scn-presence-chamber-old-saying .eagle-shield {
  position: absolute; top: 10%; right: 15%; width: 12%; height: 18%;
  background: linear-gradient(135deg, #c9a96e 0%, #a6884a 50%, #7a5e2e 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: pr4-eagle 20s ease-in-out infinite alternate;
}
.scn-presence-chamber-old-saying .weasel-shape {
  position: absolute; bottom: 35%; left: 50%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: pr4-weasel 8s ease-in-out infinite;
}
@keyframes pr4-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pr4-fire { 0% { transform: scaleY(1) rotate(-2deg); opacity: 0.8; } 50% { transform: scaleY(1.1) rotate(1deg); opacity: 1; } 100% { transform: scaleY(0.9) rotate(-1deg); opacity: 0.9; } }
@keyframes pr4-cat { 0% { transform: translateX(0) scale(1); } 25% { transform: translateX(3px) scale(1.02); } 50% { transform: translateX(-2px) scale(0.98); } 75% { transform: translateX(4px) scale(1.01); } 100% { transform: translateX(0) scale(1); } }
@keyframes pr4-mouse { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(5px, -2px) rotate(10deg); } 50% { transform: translate(10px, 1px) rotate(-5deg); } 75% { transform: translate(5px, -1px) rotate(5deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes pr4-eagle { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.03); } 100% { transform: translateY(0) scale(0.97); } }
@keyframes pr4-weasel { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(5deg); } 50% { transform: translateX(15px) rotate(-3deg); } 75% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-english-victory-numbers {
  background: linear-gradient(180deg, #f4d08c 0%, #c8a050 40%, #8a6a2a 100%), radial-gradient(ellipse at 70% 20%, #f0c060 0%, transparent 60%);
}
.scn-english-victory-numbers .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #e8c878 0%, #d4a84a 100%);
  animation: evn-sky 6s ease-in-out infinite alternate;
}
.scn-english-victory-numbers .sun {
  position: absolute; top: 10%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffecb0 0%, #e8a030 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(232, 160, 48, 0.6), 0 0 120px 40px rgba(232, 160, 48, 0.3);
  animation: evn-sunpulse 4s ease-in-out infinite alternate;
}
.scn-english-victory-numbers .mountains {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a4a1a 0%, #3a2a0a 100%);
  border-radius: 50% 30% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.5);
  animation: evn-mount 10s ease-in-out infinite alternate;
}
.scn-english-victory-numbers .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8a6a2a 0%, #5a4220 40%, #3a2a10 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.7);
}
.scn-english-victory-numbers .captor {
  position: absolute; bottom: 20%; left: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: evn-figure 2s ease-in-out infinite alternate;
}
.scn-english-victory-numbers .prisoner {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: evn-figure 2.5s ease-in-out infinite alternate-reverse;
}
.scn-english-victory-numbers .spear {
  position: absolute; bottom: 25%; left: 28%; width: 4px; height: 80px;
  background: linear-gradient(180deg, #8a6010 0%, #5a3a08 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 0 4px 1px rgba(200, 160, 80, 0.4);
  animation: evn-spear 3s ease-in-out infinite alternate;
}
.scn-english-victory-numbers .dust {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 20%;
  background: radial-gradient(ellipse at 30% 100%, rgba(200, 160, 80, 0.3) 0%, transparent 70%),
              radial-gradient(ellipse at 70% 100%, rgba(200, 160, 80, 0.2) 0%, transparent 60%);
  filter: blur(8px);
  animation: evn-dust 5s ease-in-out infinite alternate;
}
@keyframes evn-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes evn-sunpulse { 0% { transform: scale(0.95); box-shadow: 0 0 50px 15px rgba(232,160,48,0.5); } 50% { transform: scale(1.05); box-shadow: 0 0 80px 30px rgba(232,160,48,0.8); } 100% { transform: scale(0.98); box-shadow: 0 0 60px 20px rgba(232,160,48,0.6); } }
@keyframes evn-mount { 0% { transform: translateY(0px); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes evn-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes evn-spear { 0% { transform: rotate(-12deg); } 50% { transform: rotate(-8deg); } 100% { transform: rotate(-10deg); } }
@keyframes evn-dust { 0% { opacity: 0.6; transform: translateX(0); } 50% { opacity: 1; transform: translateX(5px); } 100% { opacity: 0.7; transform: translateX(-3px); } }

.scn-chorus-prologue-act5 {
  background: linear-gradient(180deg, #f8e0b0 0%, #d4b070 40%, #a08050 100%), radial-gradient(ellipse at 50% 30%, #f8e0b0 0%, transparent 70%);
}
.scn-chorus-prologue-act5 .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f0c878 0%, #d8a850 100%);
  animation: cpr-sky 10s ease-in-out infinite alternate;
}
.scn-chorus-prologue-act5 .sea {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8ab0c0 0%, #3a6a80 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-chorus-prologue-act5 .sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #c8a060 0%, #8a6030 100%);
  border-radius: 40% 20% 0 0 / 60% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
}
.scn-chorus-prologue-act5 .ship {
  position: absolute; bottom: 55%; left: 20%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #6a4020 0%, #3a2010 100%);
  border-radius: 10% 10% 30% 30% / 30% 30% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  transform-origin: bottom center;
  animation: cpr-ship 6s ease-in-out infinite;
}
.scn-chorus-prologue-act5 .king {
  position: absolute; bottom: 30%; left: 40%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #a07030 0%, #402010 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: cpr-king 3s ease-in-out infinite alternate;
}
.scn-chorus-prologue-act5 .crowd {
  position: absolute; bottom: 18%; left: 15%; right: 15%; height: 30%;
  background: radial-gradient(ellipse at 30% 100%, #5a3a20 0%, transparent 70%), radial-gradient(ellipse at 70% 100%, #5a3a20 0%, transparent 70%);
  filter: blur(4px);
  animation: cpr-crowd 4s ease-in-out infinite alternate;
}
.scn-chorus-prologue-act5 .wave1 {
  position: absolute; bottom: 50%; left: 0; right: 0; height: 12px;
  background: linear-gradient(180deg, rgba(138,176,192,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: cpr-wave1 8s linear infinite;
}
.scn-chorus-prologue-act5 .wave2 {
  position: absolute; bottom: 48%; left: 0; right: 0; height: 10px;
  background: linear-gradient(180deg, rgba(138,176,192,0.4) 0%, transparent 100%);
  border-radius: 40%;
  filter: blur(2px);
  animation: cpr-wave2 12s linear infinite reverse;
}
@keyframes cpr-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cpr-ship { 0% { transform: translate(0, 0) rotate(-1deg); } 25% { transform: translate(3px, -2px) rotate(1deg); } 50% { transform: translate(6px, 0) rotate(-2deg); } 75% { transform: translate(3px, 1px) rotate(0); } 100% { transform: translate(0, 0) rotate(-1deg); } }
@keyframes cpr-king { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes cpr-crowd { 0% { opacity: 0.6; transform: scale(0.98); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.7; transform: scale(0.99); } }
@keyframes cpr-wave1 { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }
@keyframes cpr-wave2 { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-fluent-pistol-leek {
  background: linear-gradient(180deg, #e8c060 0%, #b89040 40%, #7a6a2a 100%), radial-gradient(ellipse at 30% 50%, #f0d080 0%, transparent 70%);
}
.scn-fluent-pistol-leek .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d4a848 0%, #b88838 100%);
  animation: fpl-sky 8s ease-in-out infinite alternate;
}
.scn-fluent-pistol-leek .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #8a7028 0%, #5a4a18 100%);
  border-radius: 30% 40% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
}
.scn-fluent-pistol-leek .pistol {
  position: absolute; bottom: 20%; left: 25%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #4a2a18 0%, #1a0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
  animation: fpl-pistol 1.5s ease-in-out infinite alternate;
}
.scn-fluent-pistol-leek .fluellen {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: -2px 0 6px rgba(0,0,0,0.5);
  animation: fpl-fluellen 1.8s ease-in-out infinite alternate-reverse;
}
.scn-fluent-pistol-leek .leek {
  position: absolute; bottom: 30%; left: 52%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #5a9a30 0%, #3a6a18 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: fpl-leek 2s ease-in-out infinite alternate;
}
.scn-fluent-pistol-leek .shadow1 {
  position: absolute; bottom: 15%; left: 18%; width: 40px; height: 10px;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: fpl-shadow 2.5s ease-in-out infinite alternate;
}
.scn-fluent-pistol-leek .shadow2 {
  position: absolute; bottom: 15%; left: 48%; width: 45px; height: 12px;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: fpl-shadow 3s ease-in-out infinite alternate-reverse;
}
@keyframes fpl-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes fpl-pistol { 0% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes fpl-fluellen { 0% { transform: translateX(0) rotate(3deg); } 50% { transform: translateX(-4px) rotate(-4deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes fpl-leek { 0% { transform: rotate(8deg) scaleY(1); } 50% { transform: rotate(14deg) scaleY(1.02); } 100% { transform: rotate(10deg) scaleY(0.98); } }
@keyframes fpl-shadow { 0% { opacity: 0.7; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.1); } 100% { opacity: 0.8; transform: scaleX(0.95); } }

.scn-peace-court {
  background: linear-gradient(180deg, #f0d8a0 0%, #d4b870 40%, #a88848 100%), radial-gradient(ellipse at 40% 30%, #f8e8c0 0%, transparent 70%);
}
.scn-peace-court .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b09050 0%, #806830 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-peace-court .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #e8d098 0%, #c8a060 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.2);
}
.scn-peace-court .throne {
  position: absolute; bottom: 30%; left: 50%; width: 70px; height: 100px;
  background: linear-gradient(180deg, #c8a060 0%, #7a5828 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: pce-throne 6s ease-in-out infinite alternate;
}
.scn-peace-court .king {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #a07848 0%, #503820 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
  animation: pce-king 4s ease-in-out infinite alternate;
}
.scn-peace-court .courtier1 {
  position: absolute; bottom: 28%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #6a5030 0%, #3a2818 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: pce-courtier 5s ease-in-out infinite alternate;
}
.scn-peace-court .courtier2 {
  position: absolute; bottom: 28%; left: 65%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #6a5030 0%, #3a2818 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: pce-courtier 5.5s ease-in-out infinite alternate-reverse;
}
.scn-peace-court .light-ray {
  position: absolute; top: 0; left: 0; right: 0; height: 100%;
  background: linear-gradient(135deg, rgba(255,240,200,0.4) 0%, transparent 40%, rgba(255,240,200,0.2) 80%, transparent 100%);
  filter: blur(10px);
  animation: pce-ray 8s ease-in-out infinite alternate;
}
.scn-peace-court .candle {
  position: absolute; bottom: 35%; left: 45%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #e8d090 0%, #b88848 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(232, 208, 144, 0.6);
  animation: pce-candle 3s ease-in-out infinite alternate;
}
.scn-peace-court .tapestry {
  position: absolute; top: 10%; left: 10%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #8a6030 0%, #5a4020 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: pce-tapestry 12s ease-in-out infinite alternate;
}
@keyframes pce-throne { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes pce-king { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes pce-courtier { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes pce-ray { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(0.98); } }
@keyframes pce-candle { 0% { transform: scaleY(0.95); box-shadow: 0 0 15px 4px rgba(232,208,144,0.5); } 50% { transform: scaleY(1.05); box-shadow: 0 0 25px 8px rgba(232,208,144,0.7); } 100% { transform: scaleY(1); box-shadow: 0 0 20px 6px rgba(232,208,144,0.6); } }
@keyframes pce-tapestry { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(-2px); } }

/* harfleur-yeomen-cry */
.scn-harfleur-yeomen-cry {
  background:
    linear-gradient(180deg, #c8a46e 0%, #a07850 30%, #806040 70%, #504030 100%),
    radial-gradient(ellipse at 50% 20%, #e0c080 0%, transparent 60%);
}
.scn-harfleur-yeomen-cry .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #b8a0ff 0%, #d8c0ff 20%, #ffe0a0 40%, transparent 80%);
  animation: hyc-sky 6s ease-in-out infinite alternate;
}
.scn-harfleur-yeomen-cry .sun {
  position: absolute; top: 10%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe080 0%, #ffcc50 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ffcc50;
  animation: hyc-sun 8s ease-in-out infinite alternate;
}
.scn-harfleur-yeomen-cry .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 30% 70% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: hyc-hills 15s ease-in-out infinite alternate;
}
.scn-harfleur-yeomen-cry .figures {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 30%;
  background: 
    linear-gradient(90deg, 
      transparent 0%, 
      #1a1a1a 10%, transparent 12%,
      #1a1a1a 20%, transparent 22%,
      #1a1a1a 30%, transparent 32%,
      #1a1a1a 40%, transparent 42%,
      #1a1a1a 50%, transparent 52%,
      #1a1a1a 60%, transparent 62%,
      #1a1a1a 70%, transparent 72%,
      #1a1a1a 80%, transparent 82%,
      #1a1a1a 90%, transparent 100%
    );
  mask: radial-gradient(ellipse at 50% 100%, black 60%, transparent 80%);
  animation: hyc-figures 3s ease-in-out infinite alternate;
}
.scn-harfleur-yeomen-cry .banner {
  position: absolute; bottom: 30%; left: 48%; width: 8px; height: 80px;
  background: #5a3a2a;
  transform-origin: bottom center;
  animation: hyc-banner-wave 4s ease-in-out infinite;
}
.scn-harfleur-yeomen-cry .banner::after {
  content: ''; position: absolute; top: 0; left: -16px; width: 40px; height: 30px;
  background: linear-gradient(135deg, #a0461a 0%, #c8553d 50%, #5e1a1d 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-harfleur-yeomen-cry .spear {
  position: absolute; bottom: 28%; left: 55%; width: 4px; height: 60px;
  background: #3a2a1a;
  transform: rotate(-8deg);
  transform-origin: bottom center;
  animation: hyc-spear 2s ease-in-out infinite alternate;
}
@keyframes hyc-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hyc-sun { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-2px); } 100% { transform: scale(0.95) translateY(1px); } }
@keyframes hyc-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0); } }
@keyframes hyc-figures { 0% { transform: translateX(-2px); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes hyc-banner-wave { 0% { transform: rotate(-5deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-3deg); } 75% { transform: rotate(4deg); } 100% { transform: rotate(-5deg); } }
@keyframes hyc-spear { 0% { transform: rotate(-8deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(-11deg); } }

/* harfleur-comic-soldiers */
.scn-harfleur-comic-soldiers {
  background:
    linear-gradient(180deg, #d0b080 0%, #a08060 40%, #806050 100%),
    radial-gradient(ellipse at 50% 30%, #f0d090 0%, transparent 70%);
}
.scn-harfleur-comic-soldiers .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #b09070 0%, #907050 50%, #806040 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: hcs-wall 12s ease-in-out infinite alternate;
}
.scn-harfleur-comic-soldiers .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a5040 0%, #5a4030 100%);
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.4);
}
.scn-harfleur-comic-soldiers .soldier-a {
  position: absolute; bottom: 20%; left: 15%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: hcs-soldier-a 3s ease-in-out infinite;
}
.scn-harfleur-comic-soldiers .soldier-b {
  position: absolute; bottom: 18%; left: 40%; width: 45px; height: 55px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: hcs-soldier-b 3.5s ease-in-out infinite 0.5s;
}
.scn-harfleur-comic-soldiers .soldier-c {
  position: absolute; bottom: 22%; right: 15%; width: 35px; height: 45px;
  background: radial-gradient(ellipse at 50% 30%, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: hcs-soldier-c 2.8s ease-in-out infinite 1s;
}
.scn-harfleur-comic-soldiers .barrel {
  position: absolute; bottom: 15%; left: 70%; width: 40px; height: 35px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.4), 0 4px 8px rgba(0,0,0,0.3);
  animation: hcs-barrel 6s ease-in-out infinite;
}
@keyframes hcs-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes hcs-soldier-a { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-4px) rotate(3deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes hcs-soldier-b { 0% { transform: translateY(0) translateX(0); } 30% { transform: translateY(-3px) translateX(5px); } 60% { transform: translateY(0) translateX(0); } 100% { transform: translateY(0) translateX(0); } }
@keyframes hcs-soldier-c { 0% { transform: scale(1) rotate(0deg); } 30% { transform: scale(0.95) rotate(5deg); } 60% { transform: scale(1.05) rotate(-3deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes hcs-barrel { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* harfleur-pistol-ale */
.scn-harfleur-pistol-ale {
  background:
    linear-gradient(180deg, #d8b888 0%, #b89050 40%, #907040 100%),
    radial-gradient(ellipse at 50% 60%, #f0c080 0%, transparent 70%);
}
.scn-harfleur-pistol-ale .tavern-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #b09878 0%, #988060 50%, #887050 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
  animation: hpa-wall 15s ease-in-out infinite alternate;
}
.scn-harfleur-pistol-ale .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #a08050 0%, #806040 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.2);
  animation: hpa-table 5s ease-in-out infinite alternate;
}
.scn-harfleur-pistol-ale .pistol {
  position: absolute; bottom: 28%; left: 25%; width: 30px; height: 45px;
  background: radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hpa-pistol 2s ease-in-out infinite;
}
.scn-harfleur-pistol-ale .pistol::before {
  content: ''; position: absolute; top: -10px; left: 5px; width: 10px; height: 15px;
  background: #5a3a2a;
  border-radius: 20% 20% 0 0;
  transform: rotate(20deg);
  transform-origin: bottom left;
}
.scn-harfleur-pistol-ale .fluellen {
  position: absolute; bottom: 22%; right: 25%; width: 35px; height: 55px;
  background: radial-gradient(ellipse at 50% 30%, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hpa-fluellen 3s ease-in-out infinite 0.5s;
}
.scn-harfleur-pistol-ale .fluellen::after {
  content: ''; position: absolute; top: -8px; left: 10px; width: 8px; height: 12px;
  background: #4a3a2a;
  border-radius: 20% 20% 0 0;
  transform: rotate(-10deg);
  transform-origin: bottom left;
}
.scn-harfleur-pistol-ale .bench {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 8%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: hpa-bench 7s ease-in-out infinite alternate;
}
.scn-harfleur-pistol-ale .mug {
  position: absolute; bottom: 20%; left: 45%; width: 15px; height: 20px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: hpa-mug 2.5s ease-in-out infinite;
}
.scn-harfleur-pistol-ale .mug::after {
  content: ''; position: absolute; top: -2px; left: 3px; width: 4px; height: 6px;
  background: #f0d090;
  border-radius: 50%;
  animation: hpa-froth 2s ease-in-out infinite alternate;
}
@keyframes hpa-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes hpa-table { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(2px) scaleX(0.98); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes hpa-pistol { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-5px) rotate(3deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-3px) rotate(4deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes hpa-fluellen { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-4px) rotate(-5deg); } 60% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hpa-bench { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(0.95); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes hpa-mug { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(5deg); } 60% { transform: translateY(0) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hpa-froth { 0% { opacity: 0.6; transform: scale(1); } 100% { opacity: 1; transform: scale(1.2); } }

/* boy-mocks-trio */
.scn-boy-mocks-trio {
  background:
    linear-gradient(180deg, #c8a878 0%, #a88858 40%, #886848 100%),
    radial-gradient(ellipse at 50% 30%, #f0c080 0%, transparent 70%);
}
.scn-boy-mocks-trio .room-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #a89070 0%, #907858 50%, #806848 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: bmt-room 10s ease-in-out infinite alternate;
}
.scn-boy-mocks-trio .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a5540 0%, #5a4530 100%);
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.3);
}
.scn-boy-mocks-trio .boy {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 30%, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: bmt-boy 4s ease-in-out infinite;
  z-index: 3;
}
.scn-boy-mocks-trio .bardolph {
  position: absolute; bottom: 20%; left: 18%; width: 35px; height: 45px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: bmt-bardolph 3s ease-in-out infinite 0.3s;
  z-index: 2;
}
.scn-boy-mocks-trio .bardolph::after {
  content: ''; position: absolute; top: -2px; left: 8px; width: 12px; height: 10px;
  background: radial-gradient(circle, #a0461a 0%, #5e1a1d 80%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(160,70,26,0.3);
}
.scn-boy-mocks-trio .nym {
  position: absolute; bottom: 22%; left: 70%; width: 32px; height: 42px;
  background: radial-gradient(ellipse at 50% 30%, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: bmt-nym 3.2s ease-in-out infinite 0.6s;
  z-index: 2;
}
.scn-boy-mocks-trio .pistol {
  position: absolute; bottom: 18%; left: 50%; width: 34px; height: 48px;
  background: radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: bmt-pistol 2.8s ease-in-out infinite 0.9s;
  z-index: 2;
}
@keyframes bmt-room { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes bmt-boy { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-4deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bmt-bardolph { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-4px) rotate(5deg); } 60% { transform: translateY(0) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bmt-nym { 0% { transform: translateY(0) translateX(0); } 25% { transform: translateY(-3px) translateX(4px); } 50% { transform: translateY(0) translateX(0); } 75% { transform: translateY(-2px) translateX(-2px); } 100% { transform: translateY(0) translateX(0); } }
@keyframes bmt-pistol { 0% { transform: scale(1) rotate(2deg); } 30% { transform: scale(0.95) rotate(-5deg); } 60% { transform: scale(1.05) rotate(1deg); } 100% { transform: scale(1) rotate(2deg); } }

.scn-fluent-leeks-agog {
  background:
    linear-gradient(180deg, #4a7a8e 0%, #7aa0b0 35%, #c0d8e0 60%, #e8f0e8 100%),
    radial-gradient(ellipse at 30% 20%, rgba(255,230,180,0.4) 0%, transparent 50%);
}
.scn-fluent-leeks-agog .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #5a8aa0 0%, #8ab8c8 40%, #b8d8e0 100%); animation: fla-sky 14s ease-in-out infinite alternate; }
.scn-fluent-leeks-agog .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #7a9a6a 0%, #5a7a4a 50%, #3a5a2a 100%); border-radius: 20% 30% 0 0 / 10% 15% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.3); animation: fla-ground 20s ease-in-out infinite alternate; }
.scn-fluent-leeks-agog .tent-left { position:absolute; bottom:38%; left:22%; width:100px; height:80px; background: linear-gradient(135deg, #c8b88a 0%, #a89868 40%, #8a7848 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); transform-origin: bottom center; animation: fla-tent 8s ease-in-out infinite; box-shadow: 0 -8px 20px rgba(0,0,0,0.2); }
.scn-fluent-leeks-agog .tent-right { position:absolute; bottom:40%; right:18%; width:80px; height:70px; background: linear-gradient(135deg, #b8a878 0%, #988858 50%, #786838 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); transform-origin: bottom center; animation: fla-tent 10s ease-in-out infinite 2s; box-shadow: 0 -6px 15px rgba(0,0,0,0.2); }
.scn-fluent-leeks-agog .flagpole { position:absolute; bottom:30%; left:50%; width:4px; height:150px; background: linear-gradient(90deg, #6a5a3a 0%, #8a7a5a 40%, #5a4a2a 100%); transform: translateX(-50%) rotate(-2deg); transform-origin: bottom center; animation: fla-pole 6s ease-in-out infinite; box-shadow: 0 0 6px rgba(0,0,0,0.3); }
.scn-fluent-leeks-agog .flag { position:absolute; bottom:72%; left:52%; width:60px; height:35px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 50%, #c8553d 100%); border-radius: 0 60% 40% 0 / 0 50% 50% 0; transform-origin: left center; animation: fla-flag 3s ease-in-out infinite alternate; box-shadow: 2px 2px 8px rgba(0,0,0,0.3); }
.scn-fluent-leeks-agog .swords { position:absolute; bottom:34%; left:38%; width:30px; height:50px; background: linear-gradient(180deg, #c0c8d0 0%, #888890 40%, #505058 100%); clip-path: polygon(40% 0%, 60% 0%, 55% 100%, 45% 100%); transform: rotate(15deg); animation: fla-swords 5s ease-in-out infinite; box-shadow: 0 0 10px rgba(200,200,210,0.3); }
.scn-fluent-leeks-agog .armor { position:absolute; bottom:35%; left:60%; width:50px; height:60px; background: radial-gradient(ellipse at 40% 30%, #d0d8e0 0%, #889098 60%, #505860 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: 6px 6px 15px rgba(0,0,0,0.4), inset -4px -4px 10px rgba(0,0,0,0.3); animation: fla-armor 12s ease-in-out infinite; }
.scn-fluent-leeks-agog .shadow-strip { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.25) 100%); }
@keyframes fla-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes fla-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes fla-tent { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } }
@keyframes fla-pole { 0%,100% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } }
@keyframes fla-flag { 0% { transform: scaleX(1) rotate(-5deg) } 50% { transform: scaleX(1.1) rotate(5deg) } 100% { transform: scaleX(0.95) rotate(-3deg) } }
@keyframes fla-swords { 0%,100% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(18deg) translateY(-3px) } }
@keyframes fla-armor { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.92 } }

.scn-king-anger-prisoners {
  background:
    linear-gradient(180deg, #3a6a7a 0%, #6a9aaa 30%, #8abaca 55%, #c0d8e0 80%, #e8f0e8 100%),
    radial-gradient(ellipse at 60% 80%, rgba(255,230,180,0.3) 0%, transparent 60%);
}
.scn-king-anger-prisoners .sky-battle { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a7a8a 0%, #7aaaba 35%, #b0d0d8 100%); animation: kap-sky 18s ease-in-out infinite alternate; }
.scn-king-anger-prisoners .hill { position:absolute; bottom:20%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 50%, #2a4a1a 100%); border-radius: 50% 60% 0 0 / 40% 50% 0 0; box-shadow: inset 0 15px 30px rgba(0,0,0,0.3); animation: kap-hill 25s ease-in-out infinite alternate; }
.scn-king-anger-prisoners .herald { position:absolute; bottom:38%; left:50%; width:30px; height:70px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, #0a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: translateX(-50%); transform-origin: bottom center; animation: kap-herald 6s ease-in-out infinite; }
.scn-king-anger-prisoners .trumpet { position:absolute; bottom:42%; left:54%; width:14px; height:45px; background: linear-gradient(180deg, #c8a868 0%, #a88848 40%, #886828 100%); border-radius: 50% 50% 40% 40% / 20% 20% 60% 60%; transform: rotate(-25deg); transform-origin: bottom left; animation: kap-trumpet 4s ease-in-out infinite; box-shadow: 2px 2px 8px rgba(0,0,0,0.3); }
.scn-king-anger-prisoners .banner { position:absolute; bottom:44%; left:46%; width:40px; height:50px; background: linear-gradient(135deg, #b8583a 0%, #8a3822 50%, #b8583a 100%); clip-path: polygon(0% 0%, 100% 10%, 80% 50%, 100% 90%, 0% 100%); transform-origin: left bottom; animation: kap-banner 5s ease-in-out infinite alternate; }
.scn-king-anger-prisoners .horsemen-1 { position:absolute; bottom:32%; left:12%; width:50px; height:40px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform: scale(0.8); animation: kap-horse1 9s ease-in-out infinite; }
.scn-king-anger-prisoners .horsemen-2 { position:absolute; bottom:35%; left:78%; width:50px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform: scale(0.6); animation: kap-horse2 12s ease-in-out infinite; }
.scn-king-anger-prisoners .dust { position:absolute; bottom:28%; left:14%; width:30px; height:15px; background: radial-gradient(ellipse, rgba(180,160,120,0.5) 0%, transparent 100%); filter: blur(4px); animation: kap-dust 6s ease-in-out infinite; }
@keyframes kap-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes kap-hill { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-5px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes kap-herald { 0%,100% { transform: translateX(-50%) translateY(0) } 25% { transform: translateX(-50%) translateY(-3px) rotate(-2deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(2deg) } }
@keyframes kap-trumpet { 0%,100% { transform: rotate(-25deg) } 50% { transform: rotate(-20deg) scaleY(1.05) } }
@keyframes kap-banner { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.15) rotate(3deg) } 100% { transform: scaleX(0.9) rotate(-2deg) } }
@keyframes kap-horse1 { 0%,100% { transform: scale(0.8) translateX(0) } 50% { transform: scale(0.82) translateX(4px) translateY(-2px) } }
@keyframes kap-horse2 { 0%,100% { transform: scale(0.6) translateX(0) } 50% { transform: scale(0.62) translateX(-3px) translateY(-2px) } }
@keyframes kap-dust { 0%,100% { opacity:0.4; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.5) translateY(-5px) } }

.scn-glove-challenge-fluellen {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #2a2a4a 30%, #4a3a2a 60%, #6a4a2a 100%),
    radial-gradient(ellipse at 50% 30%, rgba(200,180,120,0.3) 0%, transparent 70%);
}
.scn-glove-challenge-fluellen .bg-close { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a3a 0%, #2a2a4a 40%, #3a2a1a 100%); animation: gcf-bg 20s ease-in-out infinite alternate; }
.scn-glove-challenge-fluellen .helm { position:absolute; bottom:40%; left:15%; width:70px; height:80px; background: radial-gradient(ellipse at 40% 30%, #b0b8c0 0%, #787878 50%, #484848 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 10px 25px rgba(0,0,0,0.5), inset 0 -10px 20px rgba(0,0,0,0.4); transform: rotate(-8deg); animation: gcf-helm 12s ease-in-out infinite; }
.scn-glove-challenge-fluellen .helm::before { content:''; position:absolute; top:20%; left:50%; width:40%; height:25%; background: #3a3a4a; border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: translateX(-50%); box-shadow: inset 0 5px 10px rgba(0,0,0,0.4); }
.scn-glove-challenge-fluellen .hand { position:absolute; bottom:20%; left:48%; width:35px; height:55px; background: linear-gradient(180deg, #d0b898 0%, #b89878 40%, #a08060 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform: rotate(15deg); transform-origin: bottom center; animation: gcf-hand 4s ease-in-out infinite; }
.scn-glove-challenge-fluellen .glove { position:absolute; bottom:48%; left:52%; width:28px; height:35px; background: linear-gradient(135deg, #c8a868 0%, #a88848 50%, #886828 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,0.4), inset 2px 2px 6px rgba(255,230,180,0.3); transform: rotate(-10deg); transform-origin: bottom center; animation: gcf-glove 3s ease-in-out infinite alternate; }
.scn-glove-challenge-fluellen .cape { position:absolute; bottom:15%; left:60%; width:80px; height:100px; background: linear-gradient(135deg, #5e1a1d 0%, #4a1215 50%, #3a0a0d 100%); border-radius: 60% 0 0 40% / 80% 0 0 60%; transform-origin: top left; animation: gcf-cape 7s ease-in-out infinite; box-shadow: -5px 0 15px rgba(0,0,0,0.3); }
.scn-glove-challenge-fluellen .light-ray { position:absolute; inset:0; background: linear-gradient(135deg, rgba(255,230,180,0.15) 0%, transparent 40%, transparent 100%); animation: gcf-light 8s ease-in-out infinite alternate; }
.scn-glove-challenge-fluellen .chain { position:absolute; bottom:35%; left:55%; width:4px; height:30px; background: linear-gradient(180deg, #808890 0%, #c0c8d0 40%, #808890 100%); border-radius: 2px; transform: rotate(5deg); animation: gcf-chain 5s ease-in-out infinite; }
@keyframes gcf-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes gcf-helm { 0%,100% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(-6deg) translateY(-3px) scale(1.02) } }
@keyframes gcf-hand { 0%,100% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(18deg) translateY(-4px) } }
@keyframes gcf-glove { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(-5deg) scaleX(1.08) translateY(-3px) } 100% { transform: rotate(-12deg) scaleX(0.95) } }
@keyframes gcf-cape { 0%,100% { transform: rotate(0deg) scaleX(1) } 25% { transform: rotate(3deg) scaleX(1.05) } 75% { transform: rotate(-2deg) scaleX(1.02) } }
@keyframes gcf-light { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.4 } }
@keyframes gcf-chain { 0%,100% { transform: rotate(5deg) scaleY(1) } 50% { transform: rotate(8deg) scaleY(1.1) } }

.scn-glove-resolution {
  background:
    linear-gradient(180deg, #2a2a4a 0%, #4a3a2a 30%, #6a4a2a 60%, #8a6a4a 100%),
    radial-gradient(ellipse at 80% 40%, rgba(255,200,150,0.2) 0%, transparent 50%);
}
.scn-glove-resolution .bg-strike { position:absolute; inset:0; background: linear-gradient(135deg, #2a2a4a 0%, #3a2a1a 50%, #2a1a0a 100%); animation: gr-bg 15s ease-in-out infinite alternate; }
.scn-glove-resolution .figure-striker { position:absolute; bottom:15%; left:25%; width:45px; height:100px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, #0a1a2a 100%); border-radius: 35% 35% 25% 25% / 45% 45% 25% 25%; transform-origin: bottom center; animation: gr-striker 3s ease-in-out infinite; }
.scn-glove-resolution .arm-strike { position:absolute; bottom:40%; left:35%; width:40px; height:20px; background: linear-gradient(90deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 20% 50% 50% 20% / 30% 50% 50% 30%; transform-origin: right center; transform: rotate(-45deg); animation: gr-arm 2s ease-in-out infinite; box-shadow: 4px 0 8px rgba(0,0,0,0.3); }
.scn-glove-resolution .figure-fall { position:absolute; bottom:10%; left:60%; width:40px; height:90px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%); border-radius: 30% 30% 25% 25% / 40% 40% 20% 20%; transform-origin: bottom center; transform: rotate(25deg); animation: gr-fall 4s ease-in-out infinite; }
.scn-glove-resolution .ground-line { position:absolute; bottom:15%; left:0; right:0; height:5%; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a3a 50%, #4a3a2a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.scn-glove-resolution .dust-burst { position:absolute; bottom:18%; left:38%; width:40px; height:30px; background: radial-gradient(ellipse, rgba(180,160,120,0.4) 0%, transparent 100%); filter: blur(5px); animation: gr-dust 2s ease-in-out infinite alternate; }
.scn-glove-resolution .gauntlet { position:absolute; bottom:30%; left:42%; width:18px; height:25px; background: linear-gradient(180deg, #a09890 0%, #706860 50%, #504840 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform: rotate(15deg); box-shadow: 1px 1px 6px rgba(0,0,0,0.4); animation: gr-gauntlet 3s ease-in-out infinite; }
.scn-glove-resolution .shadow-long { position:absolute; bottom:15%; left:20%; width:80px; height:10px; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.3) 50%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: gr-shadow 4s ease-in-out infinite; }
@keyframes gr-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes gr-striker { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-5px) rotate(-3deg) } 75% { transform: translateY(2px) rotate(2deg) } }
@keyframes gr-arm { 0%,100% { transform: rotate(-45deg) scaleX(1) } 50% { transform: rotate(-30deg) scaleX(1.2) } }
@keyframes gr-fall { 0%,100% { transform: rotate(25deg) translateY(0) } 50% { transform: rotate(20deg) translateY(5px) } }
@keyframes gr-dust { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.8) } 100% { opacity:0.2; transform: scale(1.2) } }
@keyframes gr-gauntlet { 0%,100% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(20deg) translateY(-3px) scale(1.05) } }
@keyframes gr-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.5) } }

.scn-french-king-ransom { background: linear-gradient(180deg, #e8d5b0 0%, #c9b080 40%, #a08050 100%), radial-gradient(ellipse at 50% 100%, #806040 0%, transparent 70%); }
.scn-french-king-ransom .bg-walls { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #b09860 0%, #d4b87a 50%, #b09860 100%); }
.scn-french-king-ransom .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #705a40 0%, #4a382a 100%); }
.scn-french-king-ransom .throne { position:absolute; bottom:30%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: linear-gradient(135deg, #c07030 0%, #804020 50%, #603010 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 -10px 20px #301a08; }
.scn-french-king-ransom .king { position:absolute; bottom:38%; left:50%; width:50px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse 40% 50% at 50% 30%, #f0d0a0 0%, #c09060 70%), linear-gradient(180deg, #c07030 0%, #804020 100%); border-radius: 50% 50% 30% 30%; animation: fkr-breathe 6s ease-in-out infinite; }
.scn-french-king-ransom .courtier { position:absolute; bottom:30%; left:35%; width:35px; height:55px; background: linear-gradient(180deg, #604020 0%, #402818 100%); border-radius: 40% 40% 30% 30%; animation: fkr-bow 8s ease-in-out infinite; }
.scn-french-king-ransom .window { position:absolute; top:10%; left:10%; width:60px; height:80px; background: radial-gradient(circle at 50% 50%, #ffe8c0 0%, #d4b87a 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,200,100,.3); animation: fkr-window 20s ease-in-out infinite alternate; }
.scn-french-king-ransom .shadow { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,.2) 0%, transparent 50%, rgba(0,0,0,.25) 100%); animation: fkr-shift 12s ease-in-out infinite alternate; }
.scn-french-king-ransom .candle { position:absolute; bottom:40%; left:45%; width:6px; height:20px; background: linear-gradient(180deg, #f0c870 0%, #c08030 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 16px 4px #f0a030, 0 0 32px 10px rgba(240,160,48,.4); animation: fkr-flicker 1.5s ease-in-out infinite; }

.scn-bridge-fluellen-praise { background: linear-gradient(180deg, #f8ecc0 0%, #e0d0a0 50%, #c8b880 100%), radial-gradient(ellipse at 50% 100%, #d8c090 0%, transparent 60%); }
.scn-bridge-fluellen-praise .bg-tent { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #d4c090 0%, #b8a070 50%, #d4c090 100%); border-radius: 0 0 40% 40%; }
.scn-bridge-fluellen-praise .table { position:absolute; bottom:20%; left:30%; width:120px; height:40px; background: linear-gradient(180deg, #8a7050 0%, #5a4030 100%); border-radius: 8px; transform: perspective(300px) rotateX(10deg) translateZ(0); animation: bfp-table 20s ease-in-out infinite alternate; }
.scn-bridge-fluellen-praise .map { position:absolute; bottom:24%; left:35%; width:70px; height:50px; background: radial-gradient(ellipse at 40% 40%, #c8b070 0%, #a08850 100%), linear-gradient(0deg, transparent 47%, #7a6830 48%, #7a6830 52%, transparent 53%); border-radius: 2px; animation: bfp-map 30s ease-in-out infinite; }
.scn-bridge-fluellen-praise .fluellen-body { position:absolute; bottom:22%; left:50%; width:50px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 40% 40% 30% 30%; animation: bfp-jig 4s ease-in-out infinite; }
.scn-bridge-fluellen-praise .fluellen-arm { position:absolute; bottom:26%; left:55%; width:14px; height:40px; transform-origin: 50% 0%; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 50% 50% 20% 20%; animation: bfp-gesticulate 3s ease-in-out infinite; }
.scn-bridge-fluellen-praise .window { position:absolute; top:8%; right:8%; width:70px; height:90px; background: radial-gradient(circle at 50% 50%, #fff8e0 0%, #e0d0a0 80%); border-radius: 4px; box-shadow: inset 0 0 30px #f0e0b0; animation: bfp-window 25s ease-in-out infinite alternate; }
.scn-bridge-fluellen-praise .lightbeam { position:absolute; top:8%; right:8%; width:70px; height:90px; background: linear-gradient(135deg, rgba(255,248,224,.4) 0%, transparent 100%); animation: bfp-beam 8s ease-in-out infinite alternate; }

.scn-bridge-pistol-plea { background: linear-gradient(180deg, #d4c4a8 0%, #b8a880 50%, #9c8c68 100%), radial-gradient(ellipse at 50% 100%, #807050 0%, transparent 70%); }
.scn-bridge-pistol-plea .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #a89878 0%, #c8b898 50%, #a89878 100%); }
.scn-bridge-pistol-plea .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #706048 0%, #4a3a28 100%); }
.scn-bridge-pistol-plea .table { position:absolute; bottom:30%; left:50%; width:100px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #7a6848 0%, #4a3828 100%); border-radius: 4px; animation: bpp-table 8s ease-in-out infinite; }
.scn-bridge-pistol-plea .pistol { position:absolute; bottom:32%; left:30%; width:35px; height:60px; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius: 40% 40% 30% 30%; transform: rotate(10deg); animation: bpp-tremble 3s ease-in-out infinite; }
.scn-bridge-pistol-plea .fluellen { position:absolute; bottom:28%; left:60%; width:50px; height:70px; background: linear-gradient(180deg, #3a5a2a 0%, #1a3a0a 100%); border-radius: 40% 40% 30% 30%; animation: bpp-stand 6s ease-in-out infinite; }
.scn-bridge-pistol-plea .shadow { position:absolute; inset:0; background: linear-gradient(45deg, rgba(0,0,0,.15) 0%, transparent 40%, rgba(0,0,0,.2) 100%); animation: bpp-shadow 12s ease-in-out infinite alternate; }
.scn-bridge-pistol-plea .document { position:absolute; bottom:34%; left:45%; width:40px; height:30px; background: linear-gradient(135deg, #e0d0b0 0%, #c0b090 100%); border-radius: 2px; transform: rotate(-5deg); animation: bpp-paper 5s ease-in-out infinite; }

.scn-fluellen-fortune-discourse { background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a0 50%, #c0b080 100%), radial-gradient(ellipse at 50% 100%, #b8a078 0%, transparent 60%); }
.scn-fluellen-fortune-discourse .bg-curtain { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #a08060 0%, #806040 50%, #a08060 100%); border-radius: 0 0 30% 30%; }
.scn-fluellen-fortune-discourse .platform { position:absolute; bottom:20%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #8a7050 0%, #5a4030 100%); border-radius: 10px; }
.scn-fluellen-fortune-discourse .wheel { position:absolute; bottom:30%; left:50%; width:80px; height:80px; transform:translateX(-50%); background: radial-gradient(circle, #c0a070 0%, #907050 50%, #604030 100%); border-radius: 50%; box-shadow: 0 0 30px rgba(0,0,0,.2); animation: ffd-spin 10s linear infinite; }
.scn-fluellen-fortune-discourse .fluellen-body { position:absolute; bottom:22%; left:30%; width:45px; height:65px; background: linear-gradient(180deg, #3a5a2a 0%, #1a3a0a 100%); border-radius: 40% 40% 30% 30%; animation: ffd-wag 4s ease-in-out infinite; }
.scn-fluellen-fortune-discourse .fluellen-arm { position:absolute; bottom:26%; left:38%; width:12px; height:35px; transform-origin: 50% 0%; background: linear-gradient(180deg, #3a5a2a 0%, #1a3a0a 100%); border-radius: 50% 50% 20% 20%; animation: ffd-point 3s ease-in-out infinite; }
.scn-fluellen-fortune-discourse .pistol { position:absolute; bottom:22%; right:25%; width:35px; height:55px; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius: 40% 40% 30% 30%; transform: rotate(-10deg); animation: ffd-listen 6s ease-in-out infinite; }

@keyframes fkr-breathe { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes fkr-bow { 0% { transform: rotate(0) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0) } }
@keyframes fkr-window { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes fkr-shift { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes fkr-flicker { 0% { transform: scaleY(.9) rotate(-2deg) } 30% { transform: scaleY(1) rotate(1deg) } 60% { transform: scaleY(.95) rotate(-1deg) } 100% { transform: scaleY(.9) rotate(2deg) } }
@keyframes bfp-table { 0% { transform: perspective(300px) rotateX(10deg) translateZ(0) } 50% { transform: perspective(300px) rotateX(8deg) translateZ(4px) } 100% { transform: perspective(300px) rotateX(10deg) translateZ(0) } }
@keyframes bfp-map { 0% { transform: rotate(-2deg) } 50% { transform: rotate(0deg) scale(1.02) } 100% { transform: rotate(2deg) } }
@keyframes bfp-jig { 0% { transform: translateX(-50%) rotate(-2deg) } 25% { transform: translateX(-48%) rotate(0deg) } 50% { transform: translateX(-52%) rotate(2deg) } 75% { transform: translateX(-48%) rotate(-1deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes bfp-gesticulate { 0% { transform: rotate(-30deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(-30deg) } }
@keyframes bfp-window { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes bfp-beam { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .3 } }
@keyframes bpp-table { 0% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-50%) rotate(2deg) } 75% { transform: translateX(-50%) rotate(-2deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes bpp-tremble { 0% { transform: rotate(10deg) translateX(0) } 25% { transform: rotate(8deg) translateX(2px) } 50% { transform: rotate(12deg) translateX(-2px) } 75% { transform: rotate(9deg) translateX(1px) } 100% { transform: rotate(10deg) translateX(0) } }
@keyframes bpp-stand { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes bpp-shadow { 0% { opacity: .5 } 50% { opacity: .7 } 100% { opacity: .5 } }
@keyframes bpp-paper { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(-3deg) scale(1.02) } 100% { transform: rotate(-5deg) scale(1) } }
@keyframes ffd-spin { 0% { transform: translateX(-50%) rotate(0deg) } 100% { transform: translateX(-50%) rotate(360deg) } }
@keyframes ffd-wag { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(4px) rotate(0deg) } 50% { transform: translateX(0) rotate(3deg) } 75% { transform: translateX(-4px) rotate(0deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes ffd-point { 0% { transform: rotate(-40deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-40deg) } }
@keyframes ffd-listen { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }

/* ===== Scene: henry-good-heart ===== */
.scn-henry-good-heart {
  background:
    linear-gradient(180deg, #f2d9a3 0%, #e6b87a 40%, #c98a4f 100%),
    radial-gradient(ellipse at 30% 20%, #ffe0a0 0%, transparent 60%),
    linear-gradient(90deg, #d9a060 0%, #f0c080 50%, #d9a060 100%);
}
.scn-henry-good-heart .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8c490 0%, #d4a86a 100%);
  animation: hgh-wall 20s ease-in-out infinite alternate;
}
.scn-henry-good-heart .window-frame {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 50%;
  border: 6px solid #8a6a3a; border-radius: 4px;
  background: #7a9ec4; /* sky hint */
  animation: hgh-window 25s linear infinite;
}
.scn-henry-good-heart .window-light {
  position: absolute; top: 12%; left: 37%; width: 26%; height: 46%;
  background: radial-gradient(ellipse, #ffe080 0%, #ffcc60 40%, transparent 70%);
  opacity: 0.3; filter: blur(8px);
  animation: hgh-light 8s ease-in-out infinite alternate;
}
.scn-henry-good-heart .figure-king {
  position: absolute; bottom: 28%; left: 42%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hgh-king 6s ease-in-out infinite;
}
.scn-henry-good-heart .heart-glow {
  position: absolute; top: 18%; left: 46%; width: 8%; height: 12%;
  background: radial-gradient(circle, #ffd060 0%, #ffaa20 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,200,80,0.6), 0 0 60px 30px rgba(255,200,80,0.3);
  animation: hgh-heart 4s ease-in-out infinite alternate;
}
.scn-henry-good-heart .floor-shadow {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 5%;
  background: radial-gradient(ellipse, #4a3020 0%, transparent 80%);
  filter: blur(6px);
  animation: hgh-floor 12s ease-in-out infinite;
}
.scn-henry-good-heart .curtain-left {
  position: absolute; top: 0; left: -2%; width: 18%; height: 100%;
  background: linear-gradient(90deg, #8a5642 0%, #b07860 50%, #8a5642 100%);
  border-radius: 0 20% 20% 0;
  animation: hgh-curtain 15s ease-in-out infinite alternate;
}
.scn-henry-good-heart .curtain-right {
  position: absolute; top: 0; right: -2%; width: 18%; height: 100%;
  background: linear-gradient(90deg, #8a5642 0%, #b07860 50%, #8a5642 100%);
  border-radius: 20% 0 0 20%;
  animation: hgh-curtain 15s ease-in-out infinite alternate reverse;
}
@keyframes hgh-wall {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
@keyframes hgh-window {
  0%,100% { background-color: #7a9ec4; }
  50% { background-color: #9ac4e4; }
}
@keyframes hgh-light {
  0% { opacity: 0.15; transform: scale(1); }
  50% { opacity: 0.45; transform: scale(1.1); }
  100% { opacity: 0.2; transform: scale(0.95); }
}
@keyframes hgh-king {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(4%) rotate(1deg); }
  50% { transform: translateX(0) rotate(2deg) scaleY(1.02); }
  75% { transform: translateX(-4%) rotate(-1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes hgh-heart {
  0% { box-shadow: 0 0 20px 8px rgba(255,200,80,0.4); transform: scale(1); }
  50% { box-shadow: 0 0 50px 25px rgba(255,220,100,0.7); transform: scale(1.15); }
  100% { box-shadow: 0 0 30px 12px rgba(255,200,80,0.5); transform: scale(0.9); }
}
@keyframes hgh-floor {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.2); }
  100% { opacity: 0.5; transform: scaleX(1); }
}
@keyframes hgh-curtain {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(2%) rotate(1deg); }
  100% { transform: translateX(-2%) rotate(-1deg); }
}

/* ===== Scene: henry-friend-france ===== */
.scn-henry-friend-france {
  background:
    linear-gradient(135deg, #e6c280 0%, #c9a050 50%, #a07a30 100%),
    radial-gradient(ellipse at 70% 30%, #ffe0a0 0%, transparent 60%);
}
.scn-henry-friend-france .chamber-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #dbb87a 0%, #c49a60 100%);
  animation: hff-wall 15s ease-in-out infinite alternate;
}
.scn-henry-friend-france .throne-back {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 60%;
  background: linear-gradient(135deg, #8a6a42 0%, #6a4a2a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: hff-throne 20s ease-in-out infinite alternate;
}
.scn-henry-friend-france .figure-soldier {
  position: absolute; bottom: 20%; left: 30%; width: 14%; height: 42%;
  background: linear-gradient(180deg, #2a4a6a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hff-soldier 5s ease-in-out infinite;
}
.scn-henry-friend-france .figure-lady {
  position: absolute; bottom: 22%; right: 28%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #e8c890 0%, #c8a870 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: hff-lady 6s ease-in-out infinite alternate;
}
.scn-henry-friend-france .battle-standard {
  position: absolute; top: 15%; left: 5%; width: 4%; height: 50%;
  background: #5a3a2a;
  animation: hff-standard 10s ease-in-out infinite;
}
.scn-henry-friend-france .battle-standard::after {
  content: ''; display: block; position: absolute; top: 2%; left: -20%; width: 140%; height: 30%;
  background: linear-gradient(135deg, #a0461a 0%, #5e1a1d 100%);
  border-radius: 0 0 20% 20%;
}
.scn-henry-friend-france .candle-glow {
  position: absolute; top: 8%; right: 20%; width: 6%; height: 8%;
  background: radial-gradient(circle, #ffe080 0%, #ffaa40 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,200,80,0.5);
  animation: hff-candle 3s ease-in-out infinite alternate;
}
.scn-henry-friend-france .rug {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(90deg, #6a4a3a 0%, #8a6a4a 30%, #6a4a3a 100%);
  border-radius: 20%;
  animation: hff-rug 25s ease-in-out infinite alternate;
}
@keyframes hff-wall {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
@keyframes hff-throne {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(0); }
}
@keyframes hff-soldier {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(3%) rotate(-2deg); }
  50% { transform: translateX(0) rotate(1deg) scaleY(1.03); }
  75% { transform: translateX(-3%) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes hff-lady {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2%) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes hff-standard {
  0% { transform: rotate(0); }
  50% { transform: rotate(-5deg); }
  100% { transform: rotate(5deg); }
}
@keyframes hff-candle {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.15); }
  100% { opacity: 0.7; transform: scale(0.9); }
}
@keyframes hff-rug {
  0% { background-position: left; }
  50% { background-position: right; }
  100% { background-position: left; }
}

/* ===== Scene: henry-french-attempt ===== */
.scn-henry-french-attempt {
  background:
    linear-gradient(0deg, #f2d080 0%, #e6b84a 40%, #c98a20 100%),
    radial-gradient(ellipse at 50% 80%, #ffe0a0 0%, transparent 70%);
}
.scn-henry-french-attempt .bright-room {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #f5dca0 0%, #e6c880 100%);
  animation: hfa-room 18s ease-in-out infinite alternate;
}
.scn-henry-french-attempt .figure-henry {
  position: absolute; bottom: 20%; left: 40%; width: 16%; height: 44%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hfa-henry 4s ease-in-out infinite;
}
.scn-henry-french-attempt .gesture-hand {
  position: absolute; bottom: 38%; left: 48%; width: 8%; height: 10%;
  background: #5a3a2a;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: hfa-hand 2s ease-in-out infinite alternate;
}
.scn-henry-french-attempt .map-france {
  position: absolute; bottom: 30%; right: 20%; width: 20%; height: 30%;
  background: #a08048;
  border-radius: 30% 20% 20% 30% / 30% 30% 20% 20%;
  border: 3px solid #6a4a2a;
  animation: hfa-map 12s ease-in-out infinite alternate;
}
.scn-henry-french-attempt .crown-sparkle {
  position: absolute; top: 10%; left: 45%; width: 10%; height: 8%;
  background: #f0c040;
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  box-shadow: 0 0 20px 10px rgba(255,200,50,0.3);
  animation: hfa-crown 5s ease-in-out infinite;
}
.scn-henry-french-attempt .speech-burst {
  position: absolute; top: 8%; left: 50%; width: 30%; height: 25%;
  background: radial-gradient(ellipse, #ffe080 0%, #ffcc60 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: hfa-speech 3s ease-in-out infinite alternate;
}
.scn-henry-french-attempt .floor-tile {
  position: absolute; bottom: 10%; left: 0; width: 100%; height: 15%;
  background: repeating-conic-gradient(#d4a86a 0deg 25%, #c49a60 0deg 50%) 0 0 / 50px 30px;
  animation: hfa-tile 30s linear infinite;
}
@keyframes hfa-room {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
@keyframes hfa-henry {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(5%) rotate(-3deg); }
  50% { transform: translateX(0) rotate(2deg) scaleY(1.02); }
  75% { transform: translateX(-5%) rotate(3deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes hfa-hand {
  0% { transform: rotate(0) translate(0,0); }
  50% { transform: rotate(-20deg) translate(2%, -4%); }
  100% { transform: rotate(10deg) translate(0, -2%); }
}
@keyframes hfa-map {
  0% { transform: rotate(0) scale(1); }
  50% { transform: rotate(5deg) scale(1.05); }
  100% { transform: rotate(-5deg) scale(0.95); }
}
@keyframes hfa-crown {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-5%) rotate(10deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes hfa-speech {
  0% { opacity: 0.1; transform: scale(0.8) translateY(0); }
  50% { opacity: 0.4; transform: scale(1.3) translateY(-5%); }
  100% { opacity: 0.15; transform: scale(0.9) translateY(2%); }
}
@keyframes hfa-tile {
  0% { background-position: 0 0; }
  100% { background-position: 50px 30px; }
}

/* ===== Scene: henry-english-test ===== */
.scn-henry-english-test {
  background:
    linear-gradient(180deg, #f0d6a0 0%, #dbb87a 50%, #c49a60 100%),
    radial-gradient(ellipse at 60% 20%, #ffe8b0 0%, transparent 50%);
}
.scn-henry-english-test .study-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e6c490 0%, #d4a86a 100%);
  animation: het-wall 15s ease-in-out infinite alternate;
}
.scn-henry-english-test .desk {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 12%;
  background: linear-gradient(90deg, #7a5a3a 0%, #5a3a22 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: het-desk 25s ease-in-out infinite alternate;
}
.scn-henry-english-test .figure-king {
  position: absolute; bottom: 22%; left: 32%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: het-king 6s ease-in-out infinite;
}
.scn-henry-english-test .figure-kate {
  position: absolute; bottom: 22%; right: 30%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #e8c890 0%, #c8a870 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: het-kate 7s ease-in-out infinite alternate;
}
.scn-henry-english-test .book-stack {
  position: absolute; bottom: 25%; left: 28%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a12 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: het-book 20s ease-in-out infinite;
}
.scn-henry-english-test .lamp-glow {
  position: absolute; top: 6%; right: 15%; width: 8%; height: 10%;
  background: radial-gradient(circle, #ffe080 0%, #ffaa40 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,200,80,0.4);
  animation: het-lamp 4s ease-in-out infinite alternate;
}
.scn-henry-english-test .parchment {
  position: absolute; bottom: 22%; left: 45%; width: 10%; height: 8%;
  background: #f2e0b0;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: het-parch 10s ease-in-out infinite alternate;
}
.scn-henry-english-test .quill {
  position: absolute; bottom: 24%; left: 46%; width: 2%; height: 12%;
  background: #4a3a2a;
  transform-origin: bottom center;
  border-radius: 0 0 2px 2px;
  animation: het-quill 3s ease-in-out infinite;
}
@keyframes het-wall {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
@keyframes het-desk {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-1%) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes het-king {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3%) rotate(1deg); }
  50% { transform: translateX(0) rotate(2deg) scaleY(1.02); }
  75% { transform: translateX(-3%) rotate(-1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes het-kate {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2%) rotate(3deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes het-book {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
@keyframes het-lamp {
  0% { opacity: 0.3; transform: scale(0.9); }
  50% { opacity: 0.7; transform: scale(1.15); }
  100% { opacity: 0.4; transform: scale(1); }
}
@keyframes het-parch {
  0% { transform: rotate(0); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes het-quill {
  0% { transform: rotate(0); }
  50% { transform: rotate(15deg) translateY(-2%); }
  100% { transform: rotate(-5deg) translateY(0); }
}

.scn-erpingham-kingly-bed {
  background:
    linear-gradient(180deg, #0d0d2e 0%, #1a184a 40%, #2a2858 100%),
    radial-gradient(ellipse at 50% 100%, #2a2858 0%, transparent 70%);
}
.scn-erpingham-kingly-bed .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a22 0%, transparent 60%);
  animation: eb-bg 20s ease-in-out infinite alternate;
}
.scn-erpingham-kingly-bed .moon {
  position: absolute; top: 8%; right: 20%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #e8e8ff 0%, #b8b8e0 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(184, 184, 224, 0.3);
  animation: eb-moon 30s ease-in-out infinite alternate;
}
.scn-erpingham-kingly-bed .window {
  position: absolute; top: 20%; left: 15%;
  width: 80px; height: 100px;
  background: #1a1a3e;
  border: 4px solid #3a3a5a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(184,184,224,0.15);
  animation: eb-window 8s ease-in-out infinite alternate;
}
.scn-erpingham-kingly-bed .bed {
  position: absolute; bottom: 10%; left: 20%;
  width: 60%; height: 35%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 10px 10px 30px 30px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
  animation: eb-bed 12s ease-in-out infinite;
}
.scn-erpingham-kingly-bed .figure {
  position: absolute; bottom: 15%; left: 40%;
  width: 50px; height: 80px;
  background: linear-gradient(180deg, #0e0e1a 0%, #050510 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: eb-figure 6s ease-in-out infinite;
}
.scn-erpingham-kingly-bed .candle {
  position: absolute; bottom: 22%; left: 60%;
  width: 10px; height: 30px;
  background: linear-gradient(180deg, #f0d080 0%, #c08040 100%);
  border-radius: 4px;
  box-shadow: 0 0 16px 8px rgba(240, 208, 128, 0.6);
  animation: eb-candle 3s ease-in-out infinite alternate;
}
.scn-erpingham-kingly-bed .glow-soft {
  position: absolute; bottom: 18%; left: 55%;
  width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(240,208,128,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: eb-glow 5s ease-in-out infinite alternate;
}
@keyframes eb-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes eb-moon { 0% { transform: translate(0, 0) scale(0.95); opacity: 0.9 } 50% { transform: translate(-5px, 3px) scale(1); opacity: 1 } 100% { transform: translate(5px, -2px) scale(0.95); opacity: 0.85 } }
@keyframes eb-window { 0% { box-shadow: inset 0 0 15px rgba(184,184,224,0.1) } 50% { box-shadow: inset 0 0 30px rgba(184,184,224,0.3) } 100% { box-shadow: inset 0 0 20px rgba(184,184,224,0.15) } }
@keyframes eb-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes eb-figure { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-1px) } }
@keyframes eb-candle { 0% { transform: scaleY(1); box-shadow: 0 0 12px 4px rgba(240,208,128,0.5) } 25% { transform: scaleY(1.1); box-shadow: 0 0 20px 8px rgba(240,208,128,0.7) } 50% { transform: scaleY(0.95); box-shadow: 0 0 14px 5px rgba(240,208,128,0.6) } 75% { transform: scaleY(1.05); box-shadow: 0 0 18px 6px rgba(240,208,128,0.65) } 100% { transform: scaleY(1); box-shadow: 0 0 12px 4px rgba(240,208,128,0.5) } }
@keyframes eb-glow { 0% { opacity: 0.6; transform: scale(0.9) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.7; transform: scale(0.95) } }

.scn-henry-soliloquy-watch {
  background:
    linear-gradient(180deg, #0b0b1a 0%, #1a1a30 40%, #2a2a42 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a42 0%, transparent 60%);
}
.scn-henry-soliloquy-watch .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0e0e22 0%, transparent 100%);
  animation: hs-sky 15s ease-in-out infinite alternate;
}
.scn-henry-soliloquy-watch .tent {
  position: absolute; bottom: 15%; left: 10%;
  width: 30%; height: 50%;
  background: linear-gradient(180deg, #2a2a3a 0%, #12121a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: hs-tent 20s ease-in-out infinite alternate;
}
.scn-henry-soliloquy-watch .figure-king {
  position: absolute; bottom: 10%; left: 40%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hs-king 4s ease-in-out infinite;
}
.scn-henry-soliloquy-watch .figure-pistol {
  position: absolute; bottom: 10%; left: 55%;
  width: 25px; height: 65px;
  background: linear-gradient(180deg, #222233 0%, #10101a 100%);
  border-radius: 45% 45% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hs-pistol 5s ease-in-out infinite alternate;
}
.scn-henry-soliloquy-watch .lantern {
  position: absolute; bottom: 60%; left: 45%;
  width: 14px; height: 20px;
  background: radial-gradient(circle, #f0a040 0%, #b07030 70%);
  border-radius: 4px;
  box-shadow: 0 0 20px 6px rgba(240, 160, 64, 0.6);
  animation: hs-lantern 2s ease-in-out infinite;
}
.scn-henry-soliloquy-watch .fire {
  position: absolute; bottom: 8%; right: 12%;
  width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #e85020 0%, #a03010 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: hs-fire 1.5s ease-in-out infinite alternate;
}
.scn-henry-soliloquy-watch .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: hs-ground 12s ease-in-out infinite alternate;
}
@keyframes hs-sky { 0% { opacity: 0.8 } 50% { opacity: 0.95 } 100% { opacity: 0.7 } }
@keyframes hs-tent { 0% { transform: translateY(0) skewX(0deg) } 50% { transform: translateY(-2px) skewX(2deg) } 100% { transform: translateY(0) skewX(-1deg) } }
@keyframes hs-king { 0%,100% { transform: rotate(-2deg) translateY(0) } 25% { transform: rotate(0deg) translateY(-1px) } 50% { transform: rotate(3deg) translateY(0) } 75% { transform: rotate(1deg) translateY(-1px) } }
@keyframes hs-pistol { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(8px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes hs-lantern { 0% { transform: rotate(-8deg) translateX(0); opacity: 0.8 } 25% { transform: rotate(10deg) translateX(2px); opacity: 1 } 50% { transform: rotate(-6deg) translateX(-1px); opacity: 0.9 } 75% { transform: rotate(12deg) translateX(1px); opacity: 1 } 100% { transform: rotate(-8deg) translateX(0); opacity: 0.8 } }
@keyframes hs-fire { 0% { transform: scale(0.9); opacity: 0.8 } 50% { transform: scale(1.15); opacity: 1 } 100% { transform: scale(0.95); opacity: 0.7 } }
@keyframes hs-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }

.scn-pistol-leek-fluellen {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2040 40%, #3a2a50 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a50 0%, transparent 60%);
}
.scn-pistol-leek-fluellen .backdrop {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e0e22 0%, transparent 60%);
  animation: pl-backdrop 18s ease-in-out infinite alternate;
}
.scn-pistol-leek-fluellen .figure-left {
  position: absolute; bottom: 15%; left: 20%;
  width: 35px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pl-left 4s ease-in-out infinite;
}
.scn-pistol-leek-fluellen .figure-right {
  position: absolute; bottom: 12%; right: 20%;
  width: 40px; height: 85px;
  background: linear-gradient(180deg, #2a2a3a 0%, #12121a 100%);
  border-radius: 50% 50% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: pl-right 4.5s ease-in-out infinite;
}
.scn-pistol-leek-fluellen .leek {
  position: absolute; bottom: 35%; left: 45%;
  width: 12px; height: 40px;
  background: linear-gradient(180deg, #6a8a4a 0%, #3a5a2a 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: pl-leek 2.5s ease-in-out infinite;
}
.scn-pistol-leek-fluellen .hat {
  position: absolute; bottom: 80%; left: 28%;
  width: 50px; height: 20px;
  background: #2a2a1a;
  border-radius: 50% 50% 0 0;
  transform: rotate(-10deg);
  animation: pl-hat 6s ease-in-out infinite alternate;
}
.scn-pistol-leek-fluellen .sparkle {
  position: absolute; top: 25%; left: 60%;
  width: 8px; height: 8px;
  background: #e0e080;
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(224,224,128,0.4);
  animation: pl-sparkle 3s ease-in-out infinite;
}
.scn-pistol-leek-fluellen .shadow {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: pl-shadow 8s ease-in-out infinite alternate;
}
@keyframes pl-backdrop { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes pl-left { 0%,100% { transform: rotate(-3deg) translateY(0) } 25% { transform: rotate(0deg) translateY(-2px) } 50% { transform: rotate(4deg) translateY(0) } 75% { transform: rotate(1deg) translateY(-2px) } }
@keyframes pl-right { 0% { transform: rotate(2deg) translateX(0) } 30% { transform: rotate(-2deg) translateX(-4px) } 60% { transform: rotate(0deg) translateX(2px) } 100% { transform: rotate(2deg) translateX(0) } }
@keyframes pl-leek { 0% { transform: rotate(-15deg) scaleY(1) } 50% { transform: rotate(10deg) scaleY(1.2) } 100% { transform: rotate(-15deg) scaleY(0.9) } }
@keyframes pl-hat { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(5deg) translateX(5px) } 100% { transform: rotate(-8deg) translateX(-3px) } }
@keyframes pl-sparkle { 0%,100% { opacity: 0 } 50% { opacity: 1 } }
@keyframes pl-shadow { 0%,100% { opacity: 0.6 } 50% { opacity: 0.8 } }

.scn-fluellen-lower-voice {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #2a2a20 40%, #3a3a30 100%),
    radial-gradient(ellipse at 50% 0%, #3a3a30 0%, transparent 70%);
}
.scn-fluellen-lower-voice .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a0a 0%, transparent 60%);
  animation: fl-bg 15s ease-in-out infinite alternate;
}
.scn-fluellen-lower-voice .figure-close {
  position: absolute; bottom: 15%; left: 20%; right: 20%;
  width: auto; height: 75%;
  background: linear-gradient(180deg, #1a1a22 0%, #0e0e16 100%);
  border-radius: 40% 60% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fl-figure 5s ease-in-out infinite;
}
.scn-fluellen-lower-voice .finger {
  position: absolute; bottom: 55%; left: 55%;
  width: 10px; height: 25px;
  background: linear-gradient(180deg, #1a1a22 0%, #0e0e16 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(-20deg);
  animation: fl-finger 3s ease-in-out infinite;
}
.scn-fluellen-lower-voice .campfire {
  position: absolute; bottom: 8%; left: 40%;
  width: 60px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #e87030 0%, #b04020 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: fl-fire 2s ease-in-out infinite alternate;
}
.scn-fluellen-lower-voice .soldier-left {
  position: absolute; bottom: 15%; left: 5%;
  width: 25px; height: 60px;
  background: linear-gradient(180deg, #1e1e1e 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fl-soldier-left 7s ease-in-out infinite alternate;
}
.scn-fluellen-lower-voice .soldier-right {
  position: absolute; bottom: 18%; right: 8%;
  width: 28px; height: 55px;
  background: linear-gradient(180deg, #222222 0%, #0e0e0e 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fl-soldier-right 8s ease-in-out infinite alternate;
}
.scn-fluellen-lower-voice .ember {
  position: absolute; bottom: 20%; left: 45%;
  width: 6px; height: 6px;
  background: #f0a040;
  border-radius: 50%;
  box-shadow: 0 0 10px 4px rgba(240,160,64,0.5);
  animation: fl-ember 4s ease-in-out infinite;
}
@keyframes fl-bg { 0% { opacity: 0.8 } 50% { opacity: 0.95 } 100% { opacity: 0.7 } }
@keyframes fl-figure { 0%,100% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(0deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-1px) rotate(1deg) } }
@keyframes fl-finger { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-3px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes fl-fire { 0% { transform: scale(1) rotate(0deg); opacity: 0.8 } 50% { transform: scale(1.1) rotate(3deg); opacity: 1 } 100% { transform: scale(0.95) rotate(-2deg); opacity: 0.7 } }
@keyframes fl-soldier-left { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes fl-soldier-right { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes fl-ember { 0% { transform: translate(0,0); opacity: 0.6 } 50% { transform: translate(5px, -10px); opacity: 0 } 100% { transform: translate(-3px, -5px); opacity: 0.4 } }

/* Scene 1 — burgundy-pleads-peace */
.scn-burgundy-pleads-peace {
  background: linear-gradient(180deg, #f7e8c8 0%, #e4cf9e 30%, #c9a86a 60%, #8b6e3e 100%),
              radial-gradient(ellipse at 50% 0%, #fdf4d8 0%, transparent 60%);
}
.scn-burgundy-pleads-peace .room { position:absolute; inset:0; background: linear-gradient(135deg, rgba(255,248,224,0.5) 0%, rgba(200,170,120,0.3) 100%); }
.scn-burgundy-pleads-peace .window { position:absolute; top:5%; left:30%; width:40%; height:45%; background: linear-gradient(180deg, #dce8f0 0%, #a0b8d0 100%); border-radius: 2% 2% 10% 10%; box-shadow: inset 0 0 30px rgba(255,255,200,0.6); }
.scn-burgundy-pleads-peace .ray { position:absolute; top:5%; left:30%; width:40%; height:45%; background: linear-gradient(135deg, rgba(255,248,210,0.3) 0%, transparent 70%); clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); }
.scn-burgundy-pleads-peace .ray-a { animation: bpp-ray 6s ease-in-out infinite alternate; }
.scn-burgundy-pleads-peace .ray-b { animation: bpp-ray 6s ease-in-out infinite alternate-reverse; }
.scn-burgundy-pleads-peace .table { position:absolute; bottom:20%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #6b4a2a 0%, #4a3018 100%); border-radius: 4% 4% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.3); }
.scn-burgundy-pleads-peace .king { position:absolute; bottom:28%; width:10%; height:30%; background: linear-gradient(180deg, #2a3a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; }
.scn-burgundy-pleads-peace .king-left { left:28%; animation: bpp-bow 8s ease-in-out infinite; }
.scn-burgundy-pleads-peace .king-right { right:28%; animation: bpp-bow 8s ease-in-out infinite 4s; }
.scn-burgundy-pleads-peace .burgundy { position:absolute; bottom:28%; left:50%; width:8%; height:34%; transform:translateX(-50%); background: linear-gradient(180deg, #5e3a1a 0%, #3a2210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bpp-center 10s ease-in-out infinite alternate; }
@keyframes bpp-ray {
  0% { opacity:0.3; transform: rotate(-2deg); }
  50% { opacity:0.7; transform: rotate(0deg); }
  100% { opacity:0.4; transform: rotate(2deg); }
}
@keyframes bpp-bow {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-4px) rotate(-2deg); }
  60% { transform: translateY(0) rotate(2deg); }
  100% { transform: translateY(-2px) rotate(0deg); }
}
@keyframes bpp-center {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(0.98); }
}

/* Scene 2 — burgundy-vine-decay */
.scn-burgundy-vine-decay {
  background: linear-gradient(180deg, #2a1f14 0%, #3d2b1a 30%, #4a3320 60%, #1a0f08 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a20 0%, transparent 70%);
}
.scn-burgundy-vine-decay .wall { position:absolute; inset:0; background: linear-gradient(90deg, #1f140e 0%, #2a1f14 50%, #1f140e 100%); }
.scn-burgundy-vine-decay .arch { position:absolute; top:10%; left:20%; width:60%; height:50%; border-radius: 50% 50% 0 0 / 100% 100% 0 0; background: linear-gradient(180deg, #3d2b1a 0%, transparent 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-burgundy-vine-decay .vine { position:absolute; background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%); border-radius: 50%; filter: blur(1px); }
.scn-burgundy-vine-decay .vine.stem { top:15%; left:30%; width:4px; height:60%; border-radius: 0; background: linear-gradient(180deg, #2a3a1a, #1a2a0a); animation: bvd-stem 15s ease-in-out infinite alternate; }
.scn-burgundy-vine-decay .vine.leaf-a { top:30%; left:38%; width:20px; height:10px; background: #3a4a2a; border-radius: 50% 0; transform: rotate(30deg); animation: bvd-leaf 8s ease-in-out infinite; }
.scn-burgundy-vine-decay .vine.leaf-b { top:40%; left:25%; width:16px; height:8px; background: #2a3a1a; border-radius: 0 50%; transform: rotate(-20deg); animation: bvd-leaf 8s ease-in-out infinite 4s; }
.scn-burgundy-vine-decay .candle { position:absolute; bottom:15%; left:50%; width:6px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a060 0%, #6a4020 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px rgba(200,160,96,0.6); animation: bvd-candle 3s ease-in-out infinite alternate; }
.scn-burgundy-vine-decay .shadow { position:absolute; bottom:0; width:30%; height:40%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%); }
.scn-burgundy-vine-decay .shadow-1 { left:10%; animation: bvd-shadow 6s ease-in-out infinite; }
.scn-burgundy-vine-decay .shadow-2 { right:10%; animation: bvd-shadow 6s ease-in-out infinite 3s; }
@keyframes bvd-stem {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(5px) rotate(2deg); }
  100% { transform: translateY(-3px) rotate(-1deg); }
}
@keyframes bvd-leaf {
  0% { transform: rotate(30deg) scale(1); }
  30% { transform: rotate(25deg) scale(1.1); }
  60% { transform: rotate(35deg) scale(0.9); }
  100% { transform: rotate(30deg) scale(1); }
}
@keyframes bvd-candle {
  0% { transform: translateX(-50%) scaleY(1); box-shadow: 0 0 20px 6px rgba(200,160,96,0.6); }
  50% { transform: translateX(-50%) scaleY(1.05); box-shadow: 0 0 30px 10px rgba(200,160,96,0.8); }
  100% { transform: translateX(-50%) scaleY(0.95); box-shadow: 0 0 15px 4px rgba(200,160,96,0.4); }
}
@keyframes bvd-shadow {
  0% { opacity:0.5; transform: scaleY(1); }
  50% { opacity:0.8; transform: scaleY(1.2); }
  100% { opacity:0.4; transform: scaleY(0.8); }
}

/* Scene 3 — burgundy-desolation-fields */
.scn-burgundy-desolation-fields {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1f0e 30%, #1f140a 60%, #0a0705 100%),
              radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, transparent 60%);
}
.scn-burgundy-desolation-fields .wall { position:absolute; inset:0; background: linear-gradient(90deg, #1a1108 0%, #2a1f0e 50%, #1a1108 100%); }
.scn-burgundy-desolation-fields .window-frame { position:absolute; top:5%; left:25%; width:50%; height:60%; border: 4px solid #3a2a1a; border-radius: 2% 2% 20% 20%; background: linear-gradient(180deg, #2a3a20 0%, #1a2a10 100%); }
.scn-burgundy-desolation-fields .glass.shard { position:absolute; top:8%; left:30%; width:15%; height:20%; background: linear-gradient(135deg, rgba(200,220,200,0.2) 0%, transparent 100%); clip-path: polygon(10% 0%, 90% 20%, 70% 80%, 20% 90%); animation: bdf-shard 12s ease-in-out infinite; }
.scn-burgundy-desolation-fields .vine-outside { position:absolute; top:20%; left:40%; width:30%; height:50%; background: radial-gradient(ellipse at 50% 100%, #2a3a1a 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: bdf-vine 20s linear infinite alternate; }
.scn-burgundy-desolation-fields .hemlock { position:absolute; bottom:15%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #4a5a2a 0%, #2a3a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(10deg); animation: bdf-weed 5s ease-in-out infinite alternate; }
.scn-burgundy-desolation-fields .coulter { position:absolute; bottom:10%; right:25%; width:30px; height:12px; background: linear-gradient(180deg, #5a4a30 0%, #3a2a18 100%); border-radius: 0 50% 50% 0; box-shadow: inset 0 2px 6px rgba(0,0,0,0.5); animation: bdf-coulter 8s ease-in-out infinite; }
.scn-burgundy-desolation-fields .dust { position:absolute; top:30%; left:0; width:100%; height:10%; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,0.1) 0%, transparent 70%); animation: bdf-dust 15s linear infinite; }
@keyframes bdf-shard {
  0% { transform: translate(0,0) rotate(0deg); opacity:0.3; }
  50% { transform: translate(2px,-1px) rotate(3deg); opacity:0.6; }
  100% { transform: translate(-1px,1px) rotate(-2deg); opacity:0.4; }
}
@keyframes bdf-vine {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(8px) scale(1.05); }
  100% { transform: translateY(-5px) scale(0.95); }
}
@keyframes bdf-weed {
  0% { transform: rotate(10deg) scaleY(1); }
  50% { transform: rotate(15deg) scaleY(1.1); }
  100% { transform: rotate(5deg) scaleY(0.9); }
}
@keyframes bdf-coulter {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-3px) rotate(-5deg); }
  70% { transform: translateX(2px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bdf-dust {
  0% { transform: translateX(0); opacity:0.1; }
  50% { transform: translateX(20px); opacity:0.3; }
  100% { transform: translateX(-20px); opacity:0.1; }
}

/* Scene 4 — burgundy-moral-decay */
.scn-burgundy-moral-decay {
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1f14 30%, #1a0f0a 60%, #0a0503 100%),
              radial-gradient(ellipse at 60% 40%, #3a2a1a 0%, transparent 70%);
}
.scn-burgundy-moral-decay .floor { position:absolute; bottom:0; width:100%; height:30%; background: linear-gradient(180deg, #2a1f14 0%, #1a0f0a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-burgundy-moral-decay .wall-left { position:absolute; top:0; left:0; width:40%; height:70%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1f14 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%); box-shadow: inset -10px 0 20px rgba(0,0,0,0.5); }
.scn-burgundy-moral-decay .wall-right { position:absolute; top:0; right:0; width:40%; height:70%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1f14 100%); clip-path: polygon(20% 0%, 100% 0%, 100% 100%, 0% 100%); box-shadow: inset 10px 0 20px rgba(0,0,0,0.5); }
.scn-burgundy-moral-decay .ceiling { position:absolute; top:0; width:100%; height:20%; background: linear-gradient(180deg, #1a0f0a 0%, #2a1f14 100%); border-radius: 0 0 50% 50% / 0 0 20% 20%; }
.scn-burgundy-moral-decay .mirror { position:absolute; top:20%; left:50%; width:25%; height:40%; transform:translateX(-50%); background: linear-gradient(135deg, #5a5a7a 0%, #3a3a5a 50%, #2a2a4a 100%); border-radius: 2%; box-shadow: 0 0 30px 10px rgba(90,90,122,0.5); animation: bmd-mirror 4s ease-in-out infinite alternate; }
.scn-burgundy-moral-decay .figure { position:absolute; top:25%; left:50%; width:12%; height:35%; transform:translateX(-50%); background: linear-gradient(180deg, #2a1f14 0%, #1a0f0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bmd-figure 2s ease-in-out infinite; }
.scn-burgundy-moral-decay .crack { position:absolute; background: #5a4a3a; width:2px; border-radius: 20%; }
.scn-burgundy-moral-decay .crack-1 { top:22%; left:55%; height:30%; transform: rotate(15deg); animation: bmd-crack 3s ease-in-out infinite; }
.scn-burgundy-moral-decay .crack-2 { top:40%; right:40%; height:20%; transform: rotate(-20deg); animation: bmd-crack 3s ease-in-out infinite 1.5s; }
@keyframes bmd-mirror {
  0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 30px 10px rgba(90,90,122,0.5); }
  50% { transform: translateX(-50%) scale(1.02); box-shadow: 0 0 50px 20px rgba(90,90,122,0.7); }
  100% { transform: translateX(-50%) scale(0.98); box-shadow: 0 0 20px 5px rgba(90,90,122,0.3); }
}
@keyframes bmd-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(-50%) translateY(1px) rotate(-1deg); }
  75% { transform: translateX(-50%) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes bmd-crack {
  0% { opacity:0.3; transform: rotate(15deg) scaleY(1); }
  50% { opacity:0.7; transform: rotate(20deg) scaleY(1.2); }
  100% { opacity:0.4; transform: rotate(10deg) scaleY(0.8); }
}

/* french-court-anger */
.scn-french-court-anger {
  background: 
    linear-gradient(180deg, #d4b06a 0%, #b8904e 40%, #7a5c2e 100%),
    radial-gradient(ellipse at 30% 50%, #f0d698 0%, transparent 60%);
}
.scn-french-court-anger .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #c8a05a 0%, #9a7540 100%);
}
.scn-french-court-anger .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a3520 0%, #2e1f10 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
}
.scn-french-court-anger .window {
  position: absolute; top: 12%; left: 22%; width: 36%; height: 52%;
  background: radial-gradient(ellipse at 50% 40%, #fff8e0 0%, #ffe080 50%, #c09040 100%);
  border-radius: 12% / 20%;
  box-shadow: 0 0 80px 40px rgba(255, 224, 128, 0.5), inset 0 0 0 6px #6a4a2a;
  animation: fc1-window 4s ease-in-out infinite alternate;
}
.scn-french-court-anger .figure {
  position: absolute; bottom: 30%; left: 40%; width: 14%; height: 60%;
  background: linear-gradient(180deg, #1a0e08 0%, #0d0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fc1-figure 3s ease-in-out infinite alternate;
}
.scn-french-court-anger .shadow {
  position: absolute; bottom: 0; left: 35%; width: 25%; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, #1a0e08 0%, transparent 70%);
  filter: blur(8px);
  animation: fc1-shadow 5s ease-in-out infinite alternate;
}
.scn-french-court-anger .scepter {
  position: absolute; bottom: 48%; left: 48%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #b08040 0%, #7a5c2e 100%);
  border-radius: 20% / 10%;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  box-shadow: 0 0 6px 2px #c09040;
  animation: fc1-scepter 2s ease-in-out infinite alternate;
}
.scn-french-court-anger .dust {
  position: absolute; top: 20%; left: 60%; width: 20%; height: 60%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,240,200,0.2) 0%, transparent 70%);
  filter: blur(10px);
  animation: fc1-dust 20s linear infinite;
}
@keyframes fc1-window {
  0% { opacity: 0.85; box-shadow: 0 0 60px 30px rgba(255,224,128,0.4); }
  50% { opacity: 1; box-shadow: 0 0 100px 50px rgba(255,224,128,0.6); }
  100% { opacity: 0.9; box-shadow: 0 0 70px 35px rgba(255,224,128,0.45); }
}
@keyframes fc1-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(3deg); }
  100% { transform: translateX(-1px) rotate(-1deg); }
}
@keyframes fc1-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.7; }
  50% { transform: scaleX(1.1) scaleY(1.05); opacity: 0.9; }
  100% { transform: scaleX(0.95) scaleY(0.98); opacity: 0.75; }
}
@keyframes fc1-scepter {
  0% { transform: rotate(-15deg) scale(1); }
  50% { transform: rotate(-12deg) scale(1.02); }
  100% { transform: rotate(-18deg) scale(0.98); }
}
@keyframes fc1-dust {
  0% { transform: translateX(0) rotate(0deg); opacity: 0.3; }
  50% { transform: translateX(20px) rotate(5deg); opacity: 0.5; }
  100% { transform: translateX(40px) rotate(10deg); opacity: 0.2; }
}

/* french-nobles-mock-english */
.scn-french-nobles-mock-english {
  background:
    linear-gradient(180deg, #c8a860 0%, #9a7a40 50%, #5a3a20 100%),
    radial-gradient(ellipse at 70% 30%, #e8c880 0%, transparent 70%);
}
.scn-french-nobles-mock-english .hall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b09050 0%, #806030 100%);
}
.scn-french-nobles-mock-english .pillar-left {
  position: absolute; bottom: 25%; left: 10%; width: 6%; height: 70%;
  background: linear-gradient(90deg, #7a5c2e 0%, #a08040 40%, #7a5c2e 100%);
  border-radius: 10% / 5%;
  box-shadow: 4px 0 12px rgba(0,0,0,0.4);
  animation: fc2-pillar 12s ease-in-out infinite alternate;
}
.scn-french-nobles-mock-english .pillar-right {
  position: absolute; bottom: 25%; right: 10%; width: 6%; height: 70%;
  background: linear-gradient(90deg, #7a5c2e 0%, #a08040 40%, #7a5c2e 100%);
  border-radius: 10% / 5%;
  box-shadow: -4px 0 12px rgba(0,0,0,0.4);
  animation: fc2-pillar 14s ease-in-out infinite alternate-reverse;
}
.scn-french-nobles-mock-english .noble-a {
  position: absolute; bottom: 22%; left: 22%; width: 12%; height: 55%;
  background: linear-gradient(180deg, #1a0e08 0%, #0d0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  transform-origin: bottom center;
  animation: fc2-noble-a 3s ease-in-out infinite;
}
.scn-french-nobles-mock-english .noble-b {
  position: absolute; bottom: 22%; left: 42%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #2a1a0e 0%, #0d0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(3deg);
  transform-origin: bottom center;
  animation: fc2-noble-b 3.5s ease-in-out infinite 0.5s;
}
.scn-french-nobles-mock-english .noble-c {
  position: absolute; bottom: 22%; right: 22%; width: 12%; height: 52%;
  background: linear-gradient(180deg, #1a0e08 0%, #0d0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-2deg);
  transform-origin: bottom center;
  animation: fc2-noble-c 4s ease-in-out infinite 1s;
}
.scn-french-nobles-mock-english .drape {
  position: absolute; top: 0; left: 0; width: 100%; height: 20%;
  background: linear-gradient(180deg, #8a1a1a 0%, #5a1010 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  filter: blur(2px);
  animation: fc2-drape 10s ease-in-out infinite alternate;
}
.scn-french-nobles-mock-english .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3520 0%, #2e1f10 100%);
  border-radius: 0 0 40% 40% / 0 0 10% 10%;
}
@keyframes fc2-pillar {
  0% { transform: scaleY(1); box-shadow: 4px 0 12px rgba(0,0,0,0.4); }
  50% { transform: scaleY(1.01); box-shadow: 4px 0 20px rgba(0,0,0,0.5); }
  100% { transform: scaleY(0.99); box-shadow: 4px 0 10px rgba(0,0,0,0.35); }
}
@keyframes fc2-noble-a {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-4deg) translateY(1px); }
}
@keyframes fc2-noble-b {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-3px); }
  100% { transform: rotate(4deg) translateY(1px); }
}
@keyframes fc2-noble-c {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-1px); }
  100% { transform: rotate(-3deg) translateY(2px); }
}
@keyframes fc2-drape {
  0% { opacity: 0.8; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.02); }
  100% { opacity: 0.85; transform: scaleX(0.98); }
}

/* french-madams-scorn */
.scn-french-madams-scorn {
  background:
    linear-gradient(180deg, #d4b06a 0%, #b8904e 50%, #7a5c2e 100%),
    radial-gradient(ellipse at 20% 60%, #f0d698 0%, transparent 60%);
}
.scn-french-madams-scorn .bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8a05a 0%, #9a7540 100%);
}
.scn-french-madams-scorn .door {
  position: absolute; bottom: 15%; right: 10%; width: 20%; height: 70%;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%);
  border-radius: 10% / 5%;
  box-shadow: -6px 0 20px rgba(0,0,0,0.6);
  animation: fc3-door 8s ease-in-out infinite alternate;
}
.scn-french-madams-scorn .window {
  position: absolute; top: 10%; left: 15%; width: 30%; height: 45%;
  background: radial-gradient(ellipse at 50% 40%, #fff8e0 0%, #ffe080 50%, #c09040 100%);
  border-radius: 10% / 15%;
  box-shadow: 0 0 60px 30px rgba(255,224,128,0.5), inset 0 0 0 4px #6a4a2a;
  animation: fc3-window 5s ease-in-out infinite alternate;
}
.scn-french-madams-scorn .herald {
  position: absolute; bottom: 22%; left: 35%; width: 14%; height: 58%;
  background: linear-gradient(180deg, #1a0e08 0%, #0d0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  transform-origin: bottom center;
  animation: fc3-herald 2.5s ease-in-out infinite alternate;
}
.scn-french-madams-scorn .scroll {
  position: absolute; bottom: 40%; left: 46%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%);
  border-radius: 20% / 30%;
  transform: rotate(20deg);
  transform-origin: bottom left;
  box-shadow: 0 0 4px 1px #a08040;
  animation: fc3-scroll 3s ease-in-out infinite alternate;
}
.scn-french-madams-scorn .footsteps {
  position: absolute; bottom: 5%; left: 20%; width: 60%; height: 8%;
  background: repeating-linear-gradient(
    90deg,
    #2e1f10 0px, #2e1f10 6px,
    transparent 6px, transparent 18px
  );
  filter: blur(2px);
  opacity: 0.5;
  animation: fc3-steps 10s linear infinite;
}
@keyframes fc3-door {
  0% { transform: scaleX(1); box-shadow: -6px 0 20px rgba(0,0,0,0.6); }
  50% { transform: scaleX(1.01); box-shadow: -8px 0 25px rgba(0,0,0,0.7); }
  100% { transform: scaleX(0.98); box-shadow: -4px 0 15px rgba(0,0,0,0.5); }
}
@keyframes fc3-window {
  0% { opacity: 0.85; box-shadow: 0 0 60px 30px rgba(255,224,128,0.4); }
  50% { opacity: 1; box-shadow: 0 0 100px 50px rgba(255,224,128,0.6); }
  100% { opacity: 0.9; box-shadow: 0 0 70px 35px rgba(255,224,128,0.45); }
}
@keyframes fc3-herald {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-3px); }
  100% { transform: rotate(3deg) translateY(1px); }
}
@keyframes fc3-scroll {
  0% { transform: rotate(20deg) scale(1); }
  50% { transform: rotate(25deg) scale(1.1); }
  100% { transform: rotate(15deg) scale(0.9); }
}
@keyframes fc3-steps {
  0% { opacity: 0.4; transform: translateX(0); }
  50% { opacity: 0.6; transform: translateX(10px); }
  100% { opacity: 0.3; transform: translateX(20px); }
}

/* french-roll-call */
.scn-french-roll-call {
  background:
    linear-gradient(180deg, #c8a860 0%, #9a7a40 50%, #5a3a20 100%),
    radial-gradient(ellipse at 50% 40%, #e8c880 0%, transparent 70%);
}
.scn-french-roll-call .bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #b09050 0%, #806030 100%);
}
.scn-french-roll-call .pulpit {
  position: absolute; bottom: 20%; left: 50%; width: 16%; height: 55%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5c2e 0%, #4a3520 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: fc4-pulpit 10s ease-in-out infinite alternate;
}
.scn-french-roll-call .herald {
  position: absolute; bottom: 25%; left: 50%; width: 12%; height: 50%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a0e08 0%, #0d0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fc4-herald 3s ease-in-out infinite alternate;
}
.scn-french-roll-call .scroll {
  position: absolute; bottom: 45%; left: 52%; width: 3%; height: 6%;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%);
  border-radius: 10% / 20%;
  transform: rotate(10deg);
  transform-origin: bottom left;
  box-shadow: 0 0 4px 1px #a08040;
  animation: fc4-scroll 3.5s ease-in-out infinite alternate;
}
.scn-french-roll-call .courtier-a {
  position: absolute; bottom: 20%; left: 18%; width: 10%; height: 45%;
  background: linear-gradient(180deg, #1a0e08 0%, #0d0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.9);
  filter: brightness(0.7);
  animation: fc4-courtier 6s ease-in-out infinite 0.2s;
}
.scn-french-roll-call .courtier-b {
  position: absolute; bottom: 20%; left: 30%; width: 10%; height: 45%;
  background: linear-gradient(180deg, #1a0e08 0%, #0d0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.85);
  filter: brightness(0.6);
  animation: fc4-courtier 6.5s ease-in-out infinite 0.7s;
}
.scn-french-roll-call .courtier-c {
  position: absolute; bottom: 20%; right: 30%; width: 10%; height: 45%;
  background: linear-gradient(180deg, #1a0e08 0%, #0d0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.85);
  filter: brightness(0.6);
  animation: fc4-courtier 7s ease-in-out infinite 1.2s;
}
.scn-french-roll-call .courtier-d {
  position: absolute; bottom: 20%; right: 18%; width: 10%; height: 45%;
  background: linear-gradient(180deg, #1a0e08 0%, #0d0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.9);
  filter: brightness(0.7);
  animation: fc4-courtier 8s ease-in-out infinite 0.9s;
}
.scn-french-roll-call .floor-line {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a3520 0%, #2e1f10 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
}
@keyframes fc4-pulpit {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.01); }
  100% { transform: translateX(-50%) scaleY(0.99); }
}
@keyframes fc4-herald {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(1px) rotate(-1deg); }
}
@keyframes fc4-scroll {
  0% { transform: rotate(10deg) scale(1); }
  50% { transform: rotate(15deg) scale(1.05); }
  100% { transform: rotate(5deg) scale(0.95); }
}
@keyframes fc4-courtier {
  0% { transform: scale(0.9) translateY(0); opacity: 0.7; }
  50% { transform: scale(0.92) translateY(-2px); opacity: 0.9; }
  100% { transform: scale(0.88) translateY(1px); opacity: 0.65; }
}

.scn-french-camp-boasting-horse { background: linear-gradient(180deg, #0f0f1a 0%, #1a1420 40%, #2a1a10 100%), radial-gradient(ellipse at 50% 60%, #3a2a10 0%, transparent 90%); }
.scn-french-camp-boasting-horse .sky-dark { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #0a0a12 0%, #14141e 100%); animation: fch-sky 15s ease-in-out infinite alternate; }
.scn-french-camp-boasting-horse .fire { position:absolute; bottom:40%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 70%, #ff8030 0%, #803010 60%, transparent 90%); border-radius: 50% 50% 30% 30%; animation: fch-fire 2s ease-in-out infinite alternate; }
.scn-french-camp-boasting-horse .tent-glow { position:absolute; bottom:30%; left:10%; width:120px; height:90px; background: radial-gradient(ellipse, #4a3a1a 0%, transparent 80%); border-radius:60% 40% 20% 20%; transform:skewX(-10deg); animation: fch-glow 5s ease-in-out infinite; }
.scn-french-camp-boasting-horse .knight-left { position:absolute; bottom:38%; left:35%; width:24px; height:60px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: bottom center; animation: fch-knight-l 3s ease-in-out infinite; }
.scn-french-camp-boasting-horse .knight-right { position:absolute; bottom:38%; right:35%; width:24px; height:60px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: bottom center; animation: fch-knight-r 3.5s ease-in-out infinite; }
.scn-french-camp-boasting-horse .horse-sil { position:absolute; bottom:30%; left:50%; width:70px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius:50% 50% 20% 20%; clip-path: polygon(10% 40%, 30% 10%, 60% 15%, 80% 40%, 65% 80%, 35% 80%); animation: fch-horse 8s ease-in-out infinite; }
.scn-french-camp-boasting-horse .sparks { position:absolute; bottom:42%; left:48%; width:8px; height:8px; background: #ffaa40; border-radius:50%; box-shadow: 0 0 12px 6px #ff8030; animation: fch-sparks 1.5s linear infinite; }
.scn-french-camp-boasting-horse .ground-dark { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius:80% 80% 0 0; }
@keyframes fch-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes fch-fire { 0% { transform: translateX(-50%) scaleY(0.9); opacity:0.8 } 50% { transform: translateX(-50%) scaleY(1.1); opacity:1 } 100% { transform: translateX(-50%) scaleY(0.9); opacity:0.8 } }
@keyframes fch-glow { 0% { opacity:0.3; transform:skewX(-10deg) scale(0.95) } 50% { opacity:0.6; transform:skewX(-10deg) scale(1.05) } 100% { opacity:0.3; transform:skewX(-10deg) scale(0.95) } }
@keyframes fch-knight-l { 0% { transform: rotate(-3deg) translateY(0) } 25% { transform: rotate(3deg) translateY(-2px) } 50% { transform: rotate(-2deg) translateY(-1px) } 75% { transform: rotate(4deg) translateY(-3px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes fch-knight-r { 0% { transform: rotate(2deg) translateY(0) } 25% { transform: rotate(-4deg) translateY(-2px) } 50% { transform: rotate(3deg) translateY(-1px) } 75% { transform: rotate(-2deg) translateY(-3px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes fch-horse { 0% { transform: translateX(-50%) scaleX(0.98) } 50% { transform: translateX(-50%) scaleX(1.02) } 100% { transform: translateX(-50%) scaleX(0.98) } }
@keyframes fch-sparks { 0% { transform: translate(0,0); opacity:1 } 100% { transform: translate(10px,-20px); opacity:0 } }

.scn-horse-nutmeg-ginger { background: linear-gradient(180deg, #1a1008 0%, #2a1a0a 50%, #0f0a05 100%), radial-gradient(ellipse at 50% 40%, #3a2a12 0%, transparent 80%); }
.scn-horse-nutmeg-ginger .bg-brown { position:absolute; inset:0; background: linear-gradient(180deg, #1a0e04 0%, #2a1a08 60%, #0f0602 100%); }
.scn-horse-nutmeg-ginger .horse-body { position:absolute; bottom:30%; left:50%; width:90px; height:60px; transform:translateX(-50%); background: linear-gradient(110deg, #c8703a 0%, #a0582a 50%, #804020 100%); border-radius:50% 30% 20% 40% / 50% 50% 40% 40%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4); animation: hng-body 4s ease-in-out infinite alternate; }
.scn-horse-nutmeg-ginger .horse-legs { position:absolute; bottom:24%; left:50%; width:50px; height:30px; transform:translateX(-60%); background: linear-gradient(90deg, #a0582a 0%, #804020 100%); border-radius:30% 30% 10% 10%; clip-path: polygon(10% 0%, 30% 0%, 30% 100%, 10% 100%, 50% 0%, 70% 0%, 70% 100%, 50% 100%); animation: hng-legs 3s ease-in-out infinite; }
.scn-horse-nutmeg-ginger .horse-tail { position:absolute; bottom:40%; right:22%; width:20px; height:40px; background: linear-gradient(180deg, #c07030 0%, #804020 100%); border-radius:40% 40% 20% 20%; transform-origin: top center; animation: hng-tail 2.5s ease-in-out infinite; }
.scn-horse-nutmeg-ginger .horse-mane { position:absolute; bottom:55%; left:40%; width:30px; height:25px; background: linear-gradient(180deg, #d0803a 0%, #a0582a 100%); border-radius:50% 50% 20% 20%; transform: rotate(30deg); animation: hng-mane 3s ease-in-out infinite; }
.scn-horse-nutmeg-ginger .horse-eye { position:absolute; bottom:50%; left:55%; width:8px; height:8px; background: #0f0a05; border-radius:50%; box-shadow: 0 0 4px 2px rgba(255,200,150,0.5); animation: hng-blink 5s ease-in-out infinite; }
.scn-horse-nutmeg-ginger .spice-dot1 { position:absolute; bottom:45%; left:30%; width:4px; height:4px; background: #c8703a; border-radius:50%; box-shadow: 0 0 6px 3px #a0582a; animation: hng-spice 7s linear infinite; }
.scn-horse-nutmeg-ginger .spice-dot2 { position:absolute; top:30%; right:20%; width:3px; height:3px; background: #d09040; border-radius:50%; box-shadow: 0 0 5px 2px #b07030; animation: hng-spice2 9s linear infinite reverse; }
.scn-horse-nutmeg-ginger .spice-dot3 { position:absolute; top:50%; left:15%; width:5px; height:5px; background: #e08030; border-radius:50%; box-shadow: 0 0 7px 3px #c06020; animation: hng-spice3 11s linear infinite; }
@keyframes hng-body { 0% { transform: translateX(-50%) scaleY(0.97) rotate(-1deg) } 50% { transform: translateX(-50%) scaleY(1.03) rotate(1deg) } 100% { transform: translateX(-50%) scaleY(0.97) rotate(-1deg) } }
@keyframes hng-legs { 0% { transform: translateX(-60%) rotate(0deg) } 25% { transform: translateX(-60%) rotate(2deg) } 75% { transform: translateX(-60%) rotate(-2deg) } 100% { transform: translateX(-60%) rotate(0deg) } }
@keyframes hng-tail { 0% { transform: rotate(-5deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-5deg) } }
@keyframes hng-mane { 0% { transform: rotate(25deg) translateY(0) } 50% { transform: rotate(35deg) translateY(-2px) } 100% { transform: rotate(25deg) translateY(0) } }
@keyframes hng-blink { 0%,90%,100% { opacity:1 } 95% { opacity:0.1 } }
@keyframes hng-spice { 0% { transform: translate(0,0); opacity:0.6 } 50% { transform: translate(15px,-10px); opacity:0.9 } 100% { transform: translate(30px,-20px); opacity:0.4 } }
@keyframes hng-spice2 { 0% { transform: translate(0,0); opacity:0.4 } 50% { transform: translate(-12px,8px); opacity:0.8 } 100% { transform: translate(-24px,16px); opacity:0.3 } }
@keyframes hng-spice3 { 0% { transform: translate(0,0); opacity:0.5 } 50% { transform: translate(20px,5px); opacity:0.9 } 100% { transform: translate(40px,10px); opacity:0.4 } }

.scn-horse-mistress-sonnet { background: linear-gradient(180deg, #0a0a18 0%, #18102a 40%, #2a1a1a 100%), radial-gradient(ellipse at 30% 20%, #4a2a3a 0%, transparent 70%); }
.scn-horse-mistress-sonnet .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #05050f 0%, #12102a 100%); }
.scn-horse-mistress-sonnet .window-arch { position:absolute; top:10%; left:25%; width:120px; height:160px; border-radius:50% 50% 10% 10%; background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.6); animation: hms-arch 12s ease-in-out infinite; }
.scn-horse-mistress-sonnet .moon-glow { position:absolute; top:12%; left:30%; width:50px; height:50px; background: radial-gradient(circle, #c0b8a0 0%, #807060 60%, transparent 100%); border-radius:50%; animation: hms-moon 8s ease-in-out infinite alternate; }
.scn-horse-mistress-sonnet .figure-kneeling { position:absolute; bottom:28%; left:40%; width:20px; height:50px; background: linear-gradient(180deg, #2a2020 0%, #1a1010 100%); border-radius:40% 40% 20% 20%; transform-origin: bottom center; animation: hms-kneel 4s ease-in-out infinite; }
.scn-horse-mistress-sonnet .horse-mistress { position:absolute; bottom:30%; right:20%; width:70px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 20% 20%; clip-path: polygon(10% 40%, 30% 10%, 60% 15%, 80% 40%, 65% 80%, 35% 80%); animation: hms-horse 6s ease-in-out infinite; }
.scn-horse-mistress-sonnet .sonnet-scroll { position:absolute; bottom:38%; left:35%; width:30px; height:20px; background: linear-gradient(180deg, #808070 0%, #606050 100%); border-radius:10% 10% 30% 30%; transform: rotate(-15deg); box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: hms-scroll 5s ease-in-out infinite; }
.scn-horse-mistress-sonnet .heart-glint { position:absolute; bottom:45%; left:35%; width:8px; height:8px; background: #c8553d; border-radius:50% 50% 0 50%; transform: rotate(45deg); box-shadow: 0 0 10px 4px #b04030; animation: hms-heart 3s ease-in-out infinite; }
.scn-horse-mistress-sonnet .ground-stones { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:40% 60% 0 0; }
@keyframes hms-arch { 0% { opacity:0.8; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.02) } 100% { opacity:0.85; transform:scaleY(1) } }
@keyframes hms-moon { 0% { transform: translate(0,0); opacity:0.6 } 50% { transform: translate(5px,-3px); opacity:0.9 } 100% { transform: translate(0,0); opacity:0.6 } }
@keyframes hms-kneel { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(-5deg) translateY(-1px) } 50% { transform: rotate(2deg) translateY(-2px) } 75% { transform: rotate(-3deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes hms-horse { 0% { transform: translateX(0) scaleX(0.98) } 50% { transform: translateX(2px) scaleX(1.02) } 100% { transform: translateX(0) scaleX(0.98) } }
@keyframes hms-scroll { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-2px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes hms-heart { 0% { transform: rotate(45deg) scale(0.9); opacity:0.7 } 50% { transform: rotate(45deg) scale(1.1); opacity:1 } 100% { transform: rotate(45deg) scale(0.9); opacity:0.7 } }

.scn-french-constable-wit { background: linear-gradient(180deg, #0f0a05 0%, #1a120a 40%, #2a1a0a 100%), radial-gradient(ellipse at 50% 70%, #3a2a12 0%, transparent 90%); }
.scn-french-constable-wit .bg-tent { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a0a 0%, #2a2a1a 50%, #0f0f05 100%); clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); animation: fcw-tent 15s ease-in-out infinite alternate; }
.scn-french-constable-wit .table { position:absolute; bottom:20%; left:25%; width:60px; height:10px; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 100%); border-radius:10%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: fcw-table 6s ease-in-out infinite; }
.scn-french-constable-wit .constable { position:absolute; bottom:25%; left:30%; width:22px; height:55px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius:40% 40% 20% 20%; transform-origin: bottom center; animation: fcw-constable 3.5s ease-in-out infinite; }
.scn-french-constable-wit .sow-body { position:absolute; bottom:20%; right:25%; width:40px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 30% 30%; animation: fcw-sow 4s ease-in-out infinite; }
.scn-french-constable-wit .sow-snout { position:absolute; bottom:22%; right:18%; width:12px; height:10px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:40% 30% 20% 20%; transform: rotate(10deg); animation: fcw-snout 3s ease-in-out infinite; }
.scn-french-constable-wit .sow-tail { position:absolute; bottom:35%; right:28%; width:10px; height:12px; border-radius:50%; border: 2px solid #5a4a3a; border-left: none; border-bottom: none; transform: rotate(45deg); animation: fcw-tail 2s ease-in-out infinite; }
.scn-french-constable-wit .sow-legs { position:absolute; bottom:12%; right:24%; width:20px; height:12px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 20% 20%; clip-path: polygon(10% 0%, 30% 0%, 30% 100%, 10% 100%, 50% 0%, 70% 0%, 70% 100%, 50% 100%); animation: fcw-legs 2.5s ease-in-out infinite; }
.scn-french-constable-wit .scatter-dots { position:absolute; bottom:30%; left:50%; width:4px; height:4px; background: #a08060; border-radius:50%; box-shadow: 0 0 6px 2px #806040; animation: fcw-dots 5s linear infinite; }
@keyframes fcw-tent { 0% { clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); opacity:0.8 } 50% { clip-path: polygon(18% 0%, 82% 0%, 100% 100%, 0% 100%); opacity:1 } 100% { clip-path: polygon(22% 0%, 78% 0%, 100% 100%, 0% 100%); opacity:0.8 } }
@keyframes fcw-table { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes fcw-constable { 0% { transform: rotate(-3deg) translateY(0) } 25% { transform: rotate(4deg) translateY(-2px) } 50% { transform: rotate(-2deg) translateY(-1px) } 75% { transform: rotate(3deg) translateY(-3px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes fcw-sow { 0% { transform: scaleX(0.95) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(0.95) } }
@keyframes fcw-snout { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-1px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes fcw-tail { 0% { transform: rotate(45deg) scaleY(1) } 50% { transform: rotate(60deg) scaleY(1.2) } 100% { transform: rotate(45deg) scaleY(1) } }
@keyframes fcw-legs { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(1px) rotate(2deg) } 75% { transform: translateX(-1px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes fcw-dots { 0% { transform: translate(0,0); opacity:0.6 } 50% { transform: translate(-8px,6px); opacity:0.9 } 100% { transform: translate(-16px,12px); opacity:0.3 } }

/* henry-stubborn-outside */
.scn-henry-stubborn-outside {
  background: linear-gradient(180deg, #fce4b8 0%, #d9b78a 50%, #b3875e 100%), radial-gradient(ellipse at 50% 0%, #fff6d0 0%, transparent 60%);
}
.scn-henry-stubborn-outside .bg-warm { position:absolute; inset:0; background:linear-gradient(180deg, #f5dbb1 0%, #d9b78a 60%, #b3875e 100%); }
.scn-henry-stubborn-outside .wall { position:absolute; top:0; left:0; right:0; bottom:30%; background:linear-gradient(180deg, #e8cc9e 0%, #cfa777 100%); border-bottom:4px solid #8f6640; }
.scn-henry-stubborn-outside .window-outside { position:absolute; top:8%; left:30%; width:35%; height:40%; background:linear-gradient(180deg, #a4c2d4 0%, #85a3b8 100%); border:6px solid #6b4c30; border-radius:4px; animation: hso-skylight 8s ease-in-out infinite alternate; }
.scn-henry-stubborn-outside .windowsill { position:absolute; bottom:28%; left:30%; width:35%; height:4%; background:linear-gradient(180deg, #8f6640 0%, #6b4c30 100%); border-radius:2px; }
.scn-henry-stubborn-outside .figure-stiff { position:absolute; bottom:30%; left:50%; width:14%; height:35%; background:linear-gradient(180deg, #4a3628 0%, #2d1f14 100%); border-radius:30% 30% 10% 10% / 40% 40% 20% 20%; transform:translateX(-50%); animation: hso-stiff 2s ease-in-out infinite; }
.scn-henry-stubborn-outside .shadow-wobble { position:absolute; bottom:30%; left:45%; width:20%; height:4%; background:rgba(0,0,0,0.2); border-radius:50%; filter:blur(4px); animation: hso-shadow 2s ease-in-out infinite; }
.scn-henry-stubborn-outside .chair { position:absolute; bottom:28%; left:68%; width:10%; height:20%; background:linear-gradient(180deg, #6b4c30 0%, #4a3628 100%); border-radius:8% 8% 4% 4%; transform:rotate(5deg); }
.scn-henry-stubborn-outside .dust-mote { position:absolute; top:20%; left:15%; width:3px; height:3px; background:#ffeecc; border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,238,204,0.6); animation: hso-dust 9s ease-in-out infinite alternate; }
@keyframes hso-skylight { 0% { opacity:0.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.02); } 100% { opacity:0.8; transform:scale(1); } }
@keyframes hso-stiff { 0% { transform:translateX(-50%) rotate(-2deg) scaleX(1.02); } 30% { transform:translateX(-50%) rotate(0deg) scaleX(0.98); } 60% { transform:translateX(-50%) rotate(3deg) scaleX(1.01); } 100% { transform:translateX(-50%) rotate(-1deg) scaleX(1); } }
@keyframes hso-shadow { 0% { transform:translateX(0) scale(1); opacity:0.2; } 50% { transform:translateX(4px) scale(1.2); opacity:0.35; } 100% { transform:translateX(-2px) scale(0.9); opacity:0.15; } }
@keyframes hso-dust { 0% { transform:translate(0,0) scale(1); } 50% { transform:translate(15px,-20px) scale(1.5); } 100% { transform:translate(-10px,10px) scale(0.8); } }

/* henry-proposes-marriage */
.scn-henry-proposes-marriage {
  background: linear-gradient(180deg, #ffeecc 0%, #e3c9a0 50%, #c09e74 100%), radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 70%);
}
.scn-henry-proposes-marriage .bg-warm { position:absolute; inset:0; background:linear-gradient(180deg, #fbe9ce 0%, #d9b78a 60%, #b3875e 100%); }
.scn-henry-proposes-marriage .throne-back { position:absolute; bottom:20%; left:50%; width:40%; height:60%; transform:translateX(-50%); background:linear-gradient(180deg, #8f6640 0%, #6b4c30 100%); border-radius:10% 10% 40% 40%; box-shadow:inset 0 -20px 30px rgba(0,0,0,0.3); }
.scn-henry-proposes-marriage .henry-kneeling { position:absolute; bottom:20%; left:38%; width:12%; height:25%; background:linear-gradient(180deg, #3a2a1e 0%, #1f140c 100%); border-radius:30% 30% 10% 10% / 50% 50% 20% 20%; transform:rotate(10deg) translateY(5%); animation: hpm-kneel 4s ease-in-out infinite; }
.scn-henry-proposes-marriage .kate-standing { position:absolute; bottom:20%; left:55%; width:10%; height:35%; background:linear-gradient(180deg, #6b4c30 0%, #4a3628 100%); border-radius:40% 40% 10% 10% / 50% 50% 20% 20%; }
.scn-henry-proposes-marriage .halo-glow { position:absolute; bottom:38%; left:48%; width:20%; height:30%; background:radial-gradient(circle, #ffdd99 0%, #ffe6b3 30%, transparent 70%); opacity:0.6; animation: hpm-glow 5s ease-in-out infinite alternate; }
.scn-henry-proposes-marriage .carpet { position:absolute; bottom:18%; left:20%; width:60%; height:6%; background:linear-gradient(90deg, #a0461a 0%, #c8553d 50%, #a0461a 100%); border-radius:10px; box-shadow:0 2px 8px rgba(0,0,0,0.3); }
.scn-henry-proposes-marriage .crown-float { position:absolute; bottom:60%; left:50%; width:8%; height:6%; transform:translateX(-50%); background:linear-gradient(180deg, #f2c94c 0%, #d4a843 100%); border-radius:50% 50% 40% 40%; clip-path:polygon(50% 0%, 60% 30%, 100% 30%, 70% 50%, 80% 80%, 50% 60%, 20% 80%, 30% 50%, 0% 30%, 40% 30%); animation: hpm-crown 3s ease-in-out infinite; }
@keyframes hpm-kneel { 0% { transform:rotate(10deg) translateY(5%) scaleY(1); } 50% { transform:rotate(8deg) translateY(3%) scaleY(1.02); } 100% { transform:rotate(12deg) translateY(6%) scaleY(0.98); } }
@keyframes hpm-glow { 0% { opacity:0.4; transform:scale(0.95); } 50% { opacity:0.8; transform:scale(1.1); } 100% { opacity:0.5; transform:scale(1); } }
@keyframes hpm-crown { 0% { transform:translateX(-50%) translateY(0) rotate(-5deg); } 50% { transform:translateX(-50%) translateY(-4px) rotate(5deg); } 100% { transform:translateX(-50%) translateY(0) rotate(-5deg); } }

/* henry-broken-answer */
.scn-henry-broken-answer {
  background: linear-gradient(180deg, #feeac1 0%, #e3c9a0 50%, #c09e74 100%), radial-gradient(ellipse at 30% 20%, #fff5d6 0%, transparent 50%);
}
.scn-henry-broken-answer .bg-warm { position:absolute; inset:0; background:linear-gradient(180deg, #fdecbf 0%, #d4b07e 60%, #b68b5a 100%); }
.scn-henry-broken-answer .desk { position:absolute; bottom:15%; left:50%; width:50%; height:20%; transform:translateX(-50%); background:linear-gradient(180deg, #6b4c30 0%, #4a3628 100%); border-radius:4px; box-shadow:0 4px 12px rgba(0,0,0,0.4); }
.scn-henry-broken-answer .map-unfurl { position:absolute; bottom:25%; left:32%; width:30%; height:18%; background:linear-gradient(135deg, #c9a96e 0%, #e1c68a 40%, #b48a4a 100%); border-radius:2px; transform:skewX(-5deg); animation: hba-map 10s ease-in-out infinite alternate; }
.scn-henry-broken-answer .henry-at-desk { position:absolute; bottom:20%; left:45%; width:12%; height:30%; background:linear-gradient(180deg, #3a2a1e 0%, #1f140c 100%); border-radius:30% 30% 10% 10% / 40% 40% 20% 20%; transform:rotate(-5deg); animation: hba-lean 6s ease-in-out infinite; }
.scn-henry-broken-answer .globe-spin { position:absolute; bottom:30%; left:68%; width:8%; height:12%; background:radial-gradient(circle at 40% 30%, #6ca0b0 0%, #3a6a7a 80%); border-radius:50%; box-shadow:inset -4px -4px 10px rgba(0,0,0,0.3); animation: hba-globe 12s linear infinite; }
.scn-henry-broken-answer .curtain-left { position:absolute; top:0; left:0; width:15%; height:100%; background:linear-gradient(180deg, #8f6640 0%, #4a3628 100%); border-radius:0 20% 20% 0; animation: hba-curtain 8s ease-in-out infinite alternate; }
.scn-henry-broken-answer .curtain-right { position:absolute; top:0; right:0; width:15%; height:100%; background:linear-gradient(180deg, #8f6640 0%, #4a3628 100%); border-radius:20% 0 0 20%; animation: hba-curtain 8s ease-in-out infinite alternate-reverse; }
.scn-henry-broken-answer .inkwell { position:absolute; bottom:22%; left:56%; width:4%; height:5%; background:linear-gradient(180deg, #2d1f14 0%, #1a0f08 100%); border-radius:50% 50% 30% 30%; box-shadow:0 2px 4px rgba(0,0,0,0.5); }
@keyframes hba-map { 0% { transform:skewX(-5deg) scaleX(0.9); } 50% { transform:skewX(0deg) scaleX(1.1); } 100% { transform:skewX(5deg) scaleX(0.95); } }
@keyframes hba-lean { 0% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(2deg) translateY(-2px); } 100% { transform:rotate(-4deg) translateY(0); } }
@keyframes hba-globe { 0% { transform:rotate(0deg) scale(1); } 25% { transform:rotate(90deg) scale(1.05); } 50% { transform:rotate(180deg) scale(1); } 75% { transform:rotate(270deg) scale(0.95); } 100% { transform:rotate(360deg) scale(1); } }
@keyframes hba-curtain { 0% { transform:scaleY(1) translateX(0); } 50% { transform:scaleY(1.02) translateX(3px); } 100% { transform:scaleY(0.98) translateX(-3px); } }

/* kate-accepts-henry */
.scn-kate-accepts-henry {
  background: linear-gradient(180deg, #ffeecc 0%, #e3c9a0 50%, #c09e74 100%), radial-gradient(ellipse at 50% 30%, #fff0c0 0%, transparent 60%);
}
.scn-kate-accepts-henry .bg-warm { position:absolute; inset:0; background:linear-gradient(180deg, #fbe9ce 0%, #d9b78a 60%, #b3875e 100%); }
.scn-kate-accepts-henry .henry-silhouette { position:absolute; bottom:15%; left:35%; width:14%; height:40%; background:linear-gradient(180deg, #3a2a1e 0%, #1f140c 100%); border-radius:30% 30% 10% 10% / 50% 50% 20% 20%; clip-path:polygon(30% 0%, 70% 0%, 75% 40%, 65% 50%, 70% 100%, 30% 100%, 35% 50%, 25% 40%); animation: kah-approach 7s ease-in-out infinite; }
.scn-kate-accepts-henry .kate-silhouette { position:absolute; bottom:15%; left:52%; width:12%; height:38%; background:linear-gradient(180deg, #4a3628 0%, #2d1f14 100%); border-radius:40% 40% 10% 10% / 50% 50% 20% 20%; clip-path:polygon(25% 0%, 75% 0%, 80% 45%, 70% 50%, 70% 100%, 30% 100%, 30% 50%, 20% 45%); }
.scn-kate-accepts-henry .hands-clasped { position:absolute; bottom:38%; left:45%; width:8%; height:6%; background:linear-gradient(135deg, #6b4c30 0%, #4a3628 100%); border-radius:40% 40% 20% 20%; transform:rotate(-10deg); animation: kah-hands 3s ease-in-out infinite alternate; }
.scn-kate-accepts-henry .glow-ring { position:absolute; bottom:35%; left:40%; width:18%; height:20%; background:radial-gradient(circle, #ffdd99 0%, #ffe6b3 30%, transparent 70%); opacity:0.5; animation: kah-glow 4s ease-in-out infinite alternate; }
.scn-kate-accepts-henry .petal { position:absolute; width:2%; height:3%; background:linear-gradient(180deg, #ffe0b2 0%, #ffcc80 100%); border-radius:50% 0 50% 0; animation: kah-fall 8s linear infinite; }
.scn-kate-accepts-henry .petal-a { left:20%; top:-5%; animation-delay:0s; }
.scn-kate-accepts-henry .petal-b { left:40%; top:-10%; width:1.5%; height:2.5%; animation-delay:2s; }
.scn-kate-accepts-henry .petal-c { left:60%; top:-8%; animation-delay:4s; }
.scn-kate-accepts-henry .petal-d { left:80%; top:-6%; width:2.5%; height:3.5%; animation-delay:6s; }
@keyframes kah-approach { 0% { transform:translateX(-10px) rotate(0deg); } 50% { transform:translateX(0px) rotate(-2deg); } 100% { transform:translateX(8px) rotate(1deg); } }
@keyframes kah-hands { 0% { transform:rotate(-10deg) scale(1); } 50% { transform:rotate(0deg) scale(1.05); } 100% { transform:rotate(5deg) scale(0.95); } }
@keyframes kah-glow { 0% { opacity:0.3; transform:scale(0.9); } 50% { opacity:0.7; transform:scale(1.15); } 100% { opacity:0.4; transform:scale(1); } }
@keyframes kah-fall { 0% { transform:translateY(0) rotate(0deg) scale(1); opacity:0.9; } 50% { transform:translateY(50vh) rotate(120deg) scale(1.2); opacity:0.6; } 100% { transform:translateY(110vh) rotate(240deg) scale(0.8); opacity:0; } }

.scn-chorus-siege-cannon {
  background: linear-gradient(180deg, #0f0f1e 0%, #1c1a30 30%, #2a1f30 60%, #1a1018 100%),
              radial-gradient(ellipse at 30% 80%, #2a2a3e 0%, transparent 60%);
}
.scn-chorus-siege-cannon .night-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #16163a 0%, #0c0b1a 80%);
  animation: ssc1-sky 15s ease-in-out infinite alternate;
}
.scn-chorus-siege-cannon .campfire {
  position: absolute; bottom: 22%; left: 18%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #ffb040 0%, #cc6622 40%, #8a3a0a 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,160,60,0.3);
  animation: ssc1-fire 2s ease-in-out infinite alternate;
}
.scn-chorus-siege-cannon .cannon-base {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 14px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2e2218 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.5);
  animation: ssc1-base 6s ease-in-out infinite alternate;
}
.scn-chorus-siege-cannon .cannon-barrel {
  position: absolute; bottom: 26%; left: 48%; width: 60px; height: 20px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 10% 10% 40% / 50% 20% 20% 50%;
  transform: rotate(3deg);
  box-shadow: 2px -2px 8px rgba(0,0,0,0.4);
  animation: ssc1-barrel 8s ease-in-out infinite alternate;
}
.scn-chorus-siege-cannon .cannon-wheel-l {
  position: absolute; bottom: 20%; left: 38%; width: 24px; height: 24px;
  background: radial-gradient(circle, #3a2e22 20%, #1e1610 80%);
  border-radius: 50%;
  box-shadow: inset 0 -2px 4px #0a0806;
  animation: ssc1-wheel 12s linear infinite;
}
.scn-chorus-siege-cannon .cannon-wheel-r {
  position: absolute; bottom: 20%; left: 58%; width: 24px; height: 24px;
  background: radial-gradient(circle, #3a2e22 20%, #1e1610 80%);
  border-radius: 50%;
  box-shadow: inset 0 -2px 4px #0a0806;
  animation: ssc1-wheel 12s linear infinite reverse;
}
.scn-chorus-siege-cannon .tent {
  position: absolute; bottom: 30%; right: 12%;
  width: 60px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  animation: ssc1-tent 9s ease-in-out infinite alternate;
}
.scn-chorus-siege-cannon .soldier-silhouette {
  position: absolute; bottom: 22%; left: 28%;
  width: 12px; height: 28px;
  background: linear-gradient(180deg, #1a0e0a 0%, #0d0806 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ssc1-soldier 4s ease-in-out infinite;
}
.scn-chorus-siege-cannon .ember-a {
  position: absolute; bottom: 22%; left: 18%; width: 4px; height: 4px;
  background: #ff8030; border-radius: 50%;
  box-shadow: 0 0 6px 2px #ff8030;
  animation: ssc1-ember1 3s ease-in-out infinite;
}
.scn-chorus-siege-cannon .ember-b {
  position: absolute; bottom: 22%; left: 18%; width: 4px; height: 4px;
  background: #ff6030; border-radius: 50%;
  box-shadow: 0 0 6px 2px #ff6030;
  animation: ssc1-ember2 3.5s ease-in-out infinite 1s;
}

@keyframes ssc1-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ssc1-fire { 0% { transform: scale(1); opacity:0.8 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.95); opacity:0.85 } }
@keyframes ssc1-base { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes ssc1-barrel { 0% { transform: rotate(2deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(1deg) } }
@keyframes ssc1-wheel { 0% { transform: rotate(0) } 100% { transform: rotate(360deg) } }
@keyframes ssc1-tent { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(0.98) } }
@keyframes ssc1-soldier { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(3deg) } 75% { transform: translateX(-4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes ssc1-ember1 { 0% { transform: translate(0,0) scale(1); opacity:1 } 50% { transform: translate(10px,-12px) scale(1.3); opacity:0.8 } 100% { transform: translate(20px,-24px) scale(0.5); opacity:0 } }
@keyframes ssc1-ember2 { 0% { transform: translate(0,0) scale(1); opacity:1 } 50% { transform: translate(-8px,-10px) scale(1.2); opacity:0.9 } 100% { transform: translate(-16px,-20px) scale(0.6); opacity:0 } }

/* Scene 2: chorus-cannon-fire */
.scn-chorus-cannon-fire {
  background: linear-gradient(180deg, #0a0a18 0%, #1a1620 40%, #2a1a1a 70%, #0e0808 100%),
              radial-gradient(ellipse at 50% 70%, #3a2020 0%, transparent 60%);
}
.scn-chorus-cannon-fire .fire-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0c0c1c 0%, #2a1a1a 60%);
  animation: scc2-sky 10s ease-in-out infinite alternate;
}
.scn-chorus-cannon-fire .muzzle-flash {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 80px;
  background: radial-gradient(circle, #fff8d0 0%, #ffa040 30%, #cc5500 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 100px 40px #ffa040, 0 0 200px 80px rgba(255,160,64,0.3);
  animation: scc2-flash 1.6s ease-in-out 6;
}
.scn-chorus-cannon-fire .cannon-smoke {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 100px;
  background: radial-gradient(circle, rgba(200,200,200,0.6) 0%, rgba(150,150,150,0.2) 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: scc2-smoke 4s ease-out 1 forwards;
}
.scn-chorus-cannon-fire .cannon-barrel-2 {
  position: absolute; bottom: 22%; left: 48%; width: 60px; height: 18px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2e2218 100%);
  border-radius: 40% 10% 10% 40% / 50% 20% 20% 50%;
  transform: rotate(5deg);
  box-shadow: 2px -2px 8px rgba(0,0,0,0.5);
  animation: scc2-barrel 2.4s ease-in-out infinite;
}
.scn-chorus-cannon-fire .cannon-wheel-l2 {
  position: absolute; bottom: 16%; left: 38%; width: 22px; height: 22px;
  background: radial-gradient(circle, #3a2e22 20%, #1e1610 80%);
  border-radius: 50%;
  box-shadow: inset 0 -2px 4px #0a0806;
  animation: scc2-wheel 1.5s linear infinite;
}
.scn-chorus-cannon-fire .cannon-wheel-r2 {
  position: absolute; bottom: 16%; left: 58%; width: 22px; height: 22px;
  background: radial-gradient(circle, #3a2e22 20%, #1e1610 80%);
  border-radius: 50%;
  box-shadow: inset 0 -2px 4px #0a0806;
  animation: scc2-wheel 1.5s linear infinite reverse;
}
.scn-chorus-cannon-fire .soldier-back {
  position: absolute; bottom: 18%; left: 30%;
  width: 14px; height: 30px;
  background: linear-gradient(180deg, #1a0e0a 0%, #0d0806 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scc2-soldier 2s ease-in-out infinite alternate;
}
.scn-chorus-cannon-fire .debris {
  position: absolute; bottom: 20%; right: 20%;
  width: 8px; height: 8px;
  background: #4a3a2a;
  border-radius: 20%;
  animation: scc2-debris 1.5s ease-out 1 forwards;
}

@keyframes scc2-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes scc2-flash { 0% { transform: translateX(-50%) scale(0.5); opacity:1 } 50% { transform: translateX(-50%) scale(1.2); opacity:1 } 100% { transform: translateX(-50%) scale(0.3); opacity:0 } }
@keyframes scc2-smoke { 0% { transform: translateX(-50%) scale(1); opacity:0.7 } 100% { transform: translateX(-50%) translateY(-60px) scale(2.5); opacity:0 } }
@keyframes scc2-barrel { 0% { transform: rotate(3deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(2deg) } }
@keyframes scc2-wheel { 0% { transform: rotate(0) } 100% { transform: rotate(360deg) } }
@keyframes scc2-soldier { 0% { transform: translateY(0) rotate(-3deg) } 100% { transform: translateY(-4px) rotate(3deg) } }
@keyframes scc2-debris { 0% { transform: translate(0,0) rotate(0); opacity:1 } 100% { transform: translate(-30px,-20px) rotate(180deg); opacity:0 } }

/* Scene 3: harfleur-breach-assault */
.scn-harfleur-breach-assault {
  background: linear-gradient(180deg, #b0c4de 0%, #87ceeb 40%, #f0e68c 70%, #d2b48c 100%),
              radial-gradient(ellipse at 50% 100%, #f0e68c 0%, transparent 70%);
}
.scn-harfleur-breach-assault .sun-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #fff8dc 60%);
  animation: hba3-sky 12s ease-in-out infinite alternate;
}
.scn-harfleur-breach-assault .city-wall {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #b8860b 0%, #8b4513 40%, #5c3317 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.3);
  animation: hba3-wall 8s ease-in-out infinite alternate;
}
.scn-harfleur-breach-assault .breach {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  box-shadow: inset 0 0 20px #000;
  animation: hba3-breach 6s ease-in-out infinite alternate;
}
.scn-harfleur-breach-assault .ladder {
  position: absolute; bottom: 30%; left: 45%;
  width: 6px; height: 70px;
  background: #8b4513;
  transform: rotate(15deg);
  animation: hba3-ladder 4s ease-in-out infinite alternate;
}
.scn-harfleur-breach-assault .soldier-climb {
  position: absolute; bottom: 38%; left: 43%;
  width: 10px; height: 24px;
  background: #2e2218;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hba3-climber 3s ease-in-out infinite;
}
.scn-harfleur-breach-assault .soldier-rush {
  position: absolute; bottom: 20%; right: 25%;
  width: 12px; height: 28px;
  background: #3a2a1a;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hba3-rush 5s ease-in-out infinite;
}
.scn-harfleur-breach-assault .banner {
  position: absolute; bottom: 45%; left: 50%; transform: translateX(-50%);
  width: 4px; height: 40px; background: #8b4513;
  animation: hba3-banner 8s ease-in-out infinite alternate;
}
.scn-harfleur-breach-assault .banner::after {
  content: ''; position: absolute; top: 0; left: -10px;
  width: 24px; height: 16px;
  background: #a0522d;
  border-radius: 0 50% 50% 0;
  animation: hba3-flag 3s ease-in-out infinite alternate;
}
.scn-harfleur-breach-assault .dust-cloud {
  position: absolute; bottom: 20%; left: 40%;
  width: 60px; height: 30px;
  background: rgba(210,180,140,0.5);
  border-radius: 50%;
  filter: blur(8px);
  animation: hba3-dust 10s linear infinite;
}

@keyframes hba3-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes hba3-wall { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes hba3-breach { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.05) } 100% { transform: translateX(-50%) scaleY(0.95) } }
@keyframes hba3-ladder { 0% { transform: rotate(12deg) } 50% { transform: rotate(18deg) } 100% { transform: rotate(14deg) } }
@keyframes hba3-climber { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-6px) rotate(-3deg) } 50% { transform: translateY(-12px) rotate(0) } 75% { transform: translateY(-6px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes hba3-rush { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(-15px) rotate(2deg) } 100% { transform: translateX(-30px) rotate(-1deg) } }
@keyframes hba3-banner { 0% { transform: translateX(-50%) rotate(-2deg) } 100% { transform: translateX(-50%) rotate(2deg) } }
@keyframes hba3-flag { 0% { transform: rotate(-5deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-3deg) } }
@keyframes hba3-dust { 0% { transform: translateX(0) scale(1); opacity:0.6 } 100% { transform: translateX(80px) scale(1.5); opacity:0 } }

/* Scene 4: harfleur-sinew-rage */
.scn-harfleur-sinew-rage {
  background: linear-gradient(135deg, #87ceeb 0%, #f0e68c 40%, #d2b48c 70%, #b8860b 100%),
              radial-gradient(ellipse at 70% 30%, #fff8dc 0%, transparent 50%);
}
.scn-harfleur-sinew-rage .day-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #fff8dc 60%);
  animation: hsr4-sky 15s ease-in-out infinite alternate;
}
.scn-harfleur-sinew-rage .soldier-torso {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2e2218 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 50% 50%;
  animation: hsr4-torso 8s ease-in-out infinite alternate;
}
.scn-harfleur-sinew-rage .soldier-helmet {
  position: absolute; bottom: 58%; left: 50%; transform: translateX(-50%);
  width: 36px; height: 28px;
  background: linear-gradient(135deg, #8b4513 0%, #5c3317 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
  animation: hsr4-helmet 3s ease-in-out infinite alternate;
}
.scn-harfleur-sinew-rage .soldier-arm-left {
  position: absolute; bottom: 30%; left: 44%; transform-origin: top right;
  width: 10px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1610 100%);
  border-radius: 20% 20% 40% 40%;
  transform: rotate(-30deg);
  animation: hsr4-arm-left 2s ease-in-out infinite alternate;
}
.scn-harfleur-sinew-rage .soldier-arm-right {
  position: absolute; bottom: 30%; right: 44%; transform-origin: top left;
  width: 10px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1610 100%);
  border-radius: 20% 20% 40% 40%;
  transform: rotate(20deg);
  animation: hsr4-arm-right 2s ease-in-out infinite alternate;
}
.scn-harfleur-sinew-rage .sword {
  position: absolute; bottom: 45%; right: 42%;
  width: 4px; height: 60px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 10%;
  transform: rotate(40deg);
  box-shadow: 0 0 8px rgba(192,192,192,0.5);
  animation: hsr4-sword 1.5s ease-in-out infinite alternate;
}
.scn-harfleur-sinew-rage .red-cloak {
  position: absolute; bottom: 15%; left: 45%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #a0461a 0%, #5e1a1d 100%);
  border-radius: 10% 40% 50% 10%;
  transform: rotate(5deg);
  animation: hsr4-cloak 4s ease-in-out infinite alternate;
}
.scn-harfleur-sinew-rage .ground-shadow {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: hsr4-shadow 3s ease-in-out infinite alternate;
}

@keyframes hsr4-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes hsr4-torso { 0% { transform: translateX(-50%) rotate(0) scaleX(1) } 50% { transform: translateX(-50%) rotate(2deg) scaleX(1.02) } 100% { transform: translateX(-50%) rotate(-2deg) scaleX(0.98) } }
@keyframes hsr4-helmet { 0% { transform: translateX(-50%) rotate(-3deg) translateY(0) } 50% { transform: translateX(-50%) rotate(3deg) translateY(-2px) } 100% { transform: translateX(-50%) rotate(-2deg) translateY(1px) } }
@keyframes hsr4-arm-left { 0% { transform: rotate(-25deg) } 50% { transform: rotate(-35deg) } 100% { transform: rotate(-28deg) } }
@keyframes hsr4-arm-right { 0% { transform: rotate(15deg) } 50% { transform: rotate(30deg) } 100% { transform: rotate(20deg) } }
@keyframes hsr4-sword { 0% { transform: rotate(35deg) translateX(0) } 50% { transform: rotate(50deg) translateX(2px) } 100% { transform: rotate(40deg) translateX(0) } }
@keyframes hsr4-cloak { 0% { transform: rotate(3deg) scaleY(1) } 50% { transform: rotate(8deg) scaleY(1.05) } 100% { transform: rotate(5deg) scaleY(0.98) } }
@keyframes hsr4-shadow { 0% { transform: scaleX(1); opacity:0.6 } 50% { transform: scaleX(1.1); opacity:0.8 } 100% { transform: scaleX(0.9); opacity:0.5 } }

/* first-prologue – dim interior theatre stage */
.scn-first-prologue {
  background: linear-gradient(180deg, #2a1e28 0%, #1a1218 50%, #2a1e28 100%);
  box-shadow: inset 0 0 60px rgba(10,5,10,.8);
}
.scn-first-prologue .stage-floor {
  position: absolute; bottom: 8%; left: 5%; width: 90%; height: 18%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e18 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: 0 -8px 30px rgba(0,0,0,.6);
  animation: fp-floor 20s ease-in-out infinite alternate;
}
.scn-first-prologue .curtain-l {
  position: absolute; top: 0; left: 0; width: 20%; height: 92%;
  background: linear-gradient(135deg, #703020 0%, #4a1a10 100%);
  border-radius: 0 40% 40% 0;
  filter: drop-shadow(10px 0 15px rgba(0,0,0,.5));
  animation: fp-curtain 6s ease-in-out infinite alternate;
}
.scn-first-prologue .curtain-r {
  position: absolute; top: 0; right: 0; width: 20%; height: 92%;
  background: linear-gradient(225deg, #703020 0%, #4a1a10 100%);
  border-radius: 40% 0 0 40%;
  filter: drop-shadow(-10px 0 15px rgba(0,0,0,.5));
  animation: fp-curtain 6s ease-in-out infinite alternate-reverse;
}
.scn-first-prologue .backdrop {
  position: absolute; top: 0; left: 20%; width: 60%; height: 92%;
  background: radial-gradient(ellipse at 50% 30%, #3a2a3a 0%, #1a1018 100%);
  box-shadow: inset 0 0 40px #0a0508;
  animation: fp-backdrop 15s ease-in-out infinite alternate;
}
.scn-first-prologue .chorus-fig {
  position: absolute; bottom: 18%; left: 50%; width: 40px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a303a 0%, #1a1218 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 6px 20px rgba(0,0,0,.7);
  animation: fp-chorus 8s ease-in-out infinite;
}
.scn-first-prologue .light-beam {
  position: absolute; top: -5%; left: 50%; width: 60px; height: 45%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(255,220,180,.15) 0%, rgba(255,180,120,.05) 100%);
  clip-path: polygon(30% 0%, 70% 0%, 80% 100%, 20% 100%);
  filter: blur(4px);
  animation: fp-lbeam 12s ease-in-out infinite alternate;
}
.scn-first-prologue .crown-glow {
  position: absolute; bottom: 50%; left: 50%; width: 20px; height: 20px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #d4a060 0%, #a07030 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 6px #b08040, 0 0 60px 15px rgba(176,128,64,.3);
  animation: fp-crown 4s ease-in-out infinite alternate;
}
@keyframes fp-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes fp-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(-2px); } }
@keyframes fp-backdrop { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes fp-chorus { 0% { transform: translateX(-50%) translateY(0) rotate(0); } 25% { transform: translateX(-50%) translateY(-4px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(0); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes fp-lbeam { 0% { opacity: .4; transform: translateX(-50%) scaleY(1); } 50% { opacity: .7; transform: translateX(-50%) scaleY(1.08); } 100% { opacity: .5; transform: translateX(-50%) scaleY(0.95); } }
@keyframes fp-crown { 0% { opacity: .5; transform: translate(-50%,-50%) scale(1); } 50% { opacity: 1; transform: translate(-50%,-50%) scale(1.05); } 100% { opacity: .7; transform: translate(-50%,-50%) scale(0.95); } }

/* first-prologue-chorus-appeal – calm dim interior with imaginative horse */
.scn-first-prologue-chorus-appeal {
  background: linear-gradient(180deg, #2a2028 0%, #1a1418 50%, #2a2028 100%);
  box-shadow: inset 0 0 50px #0a0508;
}
.scn-first-prologue-chorus-appeal .stage-floor { /* reuse floor from scene 1, but tweak color? We'll keep similar but unique */
  position: absolute; bottom: 6%; left: 5%; width: 90%; height: 16%;
  background: linear-gradient(180deg, #4a3830 0%, #2a1e1a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: 0 -6px 25px rgba(0,0,0,.5);
  animation: fpc-floor 25s ease-in-out infinite alternate;
}
.scn-first-prologue-chorus-appeal .curtain-l {
  position: absolute; top: 0; left: 0; width: 18%; height: 94%;
  background: linear-gradient(135deg, #6a3028 0%, #3a1810 100%);
  border-radius: 0 30% 30% 0;
  filter: drop-shadow(5px 0 12px rgba(0,0,0,.4));
  animation: fpc-curtain 8s ease-in-out infinite alternate;
}
.scn-first-prologue-chorus-appeal .curtain-r {
  position: absolute; top: 0; right: 0; width: 18%; height: 94%;
  background: linear-gradient(225deg, #6a3028 0%, #3a1810 100%);
  border-radius: 30% 0 0 30%;
  filter: drop-shadow(-5px 0 12px rgba(0,0,0,.4));
  animation: fpc-curtain 8s ease-in-out infinite alternate-reverse;
}
.scn-first-prologue-chorus-appeal .chorus-fig {
  position: absolute; bottom: 18%; left: 50%; width: 35px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2e36 0%, #1a1216 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 4px 18px rgba(0,0,0,.6);
  animation: fpc-chorus 10s ease-in-out infinite;
}
.scn-first-prologue-chorus-appeal .horse-dream {
  position: absolute; bottom: 40%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(200,180,160,.2) 0%, rgba(180,140,100,.05) 100%);
  border-radius: 40% 60% 40% 60% / 50% 50% 50% 50%;
  filter: blur(3px);
  animation: fpc-horse 12s ease-in-out infinite alternate;
}
.scn-first-prologue-chorus-appeal .thought-spark {
  position: absolute; top: 30%; left: 50%; width: 8px; height: 8px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #c09050, 0 0 40px 16px rgba(192,144,80,.2);
  animation: fpc-spark 3s ease-in-out infinite alternate;
}
.scn-first-prologue-chorus-appeal .light-beam {
  position: absolute; top: -3%; left: 50%; width: 50px; height: 50%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(240,210,180,.12) 0%, rgba(200,160,120,.04) 100%);
  clip-path: polygon(35% 0%, 65% 0%, 75% 100%, 25% 100%);
  filter: blur(3px);
  animation: fpc-lbeam 15s ease-in-out infinite alternate;
}
@keyframes fpc-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.97); } }
@keyframes fpc-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(-1px); } }
@keyframes fpc-chorus { 0% { transform: translateX(-50%) translateY(0) rotate(0); } 30% { transform: translateX(-50%) translateY(-6px) rotate(1.5deg); } 60% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes fpc-horse { 0% { opacity: .1; transform: translateX(-50%) scale(.8); } 50% { opacity: .4; transform: translateX(-50%) scale(1.1); } 100% { opacity: .2; transform: translateX(-50%) scale(.9); } }
@keyframes fpc-spark { 0% { opacity: .3; transform: translateX(-50%) scale(.9); } 50% { opacity: 1; transform: translateX(-50%) scale(1.2); } 100% { opacity: .6; transform: translateX(-50%) scale(1); } }
@keyframes fpc-lbeam { 0% { opacity: .3; transform: translateX(-50%) scaleY(1); } 50% { opacity: .6; transform: translateX(-50%) scaleY(1.05); } 100% { opacity: .4; transform: translateX(-50%) scaleY(0.95); } }

/* ante-chamber-bill-urged – tense window-lit palace interior */
.scn-ante-chamber-bill-urged {
  background: linear-gradient(180deg, #3a3038 0%, #2a2028 50%, #1a1218 100%);
  box-shadow: inset 0 0 40px #0a0508;
}
.scn-ante-chamber-bill-urged .window-cast {
  position: absolute; top: 8%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #d0c0a0 0%, #a09080 100%);
  border-radius: 10px;
  box-shadow: 0 0 30px rgba(200,180,160,.3);
  clip-path: polygon(10% 10%, 90% 10%, 90% 90%, 10% 90%);
}
.scn-ante-chamber-bill-urged .light-shaft {
  position: absolute; top: 8%; left: 50%; width: 60px; height: 60%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(220,200,180,.25) 0%, rgba(180,160,140,.05) 100%);
  clip-path: polygon(30% 0%, 70% 0%, 80% 100%, 20% 100%);
  filter: blur(5px);
  animation: abu-shaft 6s ease-in-out infinite alternate;
}
.scn-ante-chamber-bill-urged .figure-left {
  position: absolute; bottom: 25%; left: 25%; width: 30px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: abu-fig-shape 8s ease-in-out infinite, abu-fig-left 4s ease-in-out infinite alternate;
}
.scn-ante-chamber-bill-urged .figure-right {
  position: absolute; bottom: 25%; right: 25%; width: 30px; height: 70px;
  transform: translateX(50%);
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: abu-fig-shape 8s ease-in-out infinite reverse, abu-fig-right 4s ease-in-out infinite alternate;
}
.scn-ante-chamber-bill-urged .table-bill {
  position: absolute; bottom: 32%; left: 50%; width: 50px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: abu-table 10s ease-in-out infinite alternate;
}
.scn-ante-chamber-bill-urged .shadow-left {
  position: absolute; bottom: 18%; left: 22%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: abu-shadow 6s ease-in-out infinite alternate;
}
.scn-ante-chamber-bill-urged .shadow-right {
  position: absolute; bottom: 18%; right: 22%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: abu-shadow 6s ease-in-out infinite alternate-reverse;
}
@keyframes abu-shaft { 0% { opacity: .4; transform: translateX(-50%) skewX(-2deg); } 50% { opacity: .8; transform: translateX(-50%) skewX(0); } 100% { opacity: .6; transform: translateX(-50%) skewX(2deg); } }
@keyframes abu-fig-shape { 0% { border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; } 50% { border-radius: 45% 55% 35% 45% / 55% 65% 35% 45%; } 100% { border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; } }
@keyframes abu-fig-left { 0% { transform: translateX(-50%) rotate(0); } 100% { transform: translateX(-50%) rotate(2deg); } }
@keyframes abu-fig-right { 0% { transform: translateX(50%) rotate(0); } 100% { transform: translateX(50%) rotate(-2deg); } }
@keyframes abu-table { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(1px); } 100% { transform: translateX(-50%) translateY(-1px); } }
@keyframes abu-shadow { 0% { opacity: .3; transform: scale(1); } 50% { opacity: .5; transform: scale(1.05); } 100% { opacity: .4; transform: scale(0.95); } }

/* ante-chamber-king-transformed – warm window-lit with angel */
.scn-ante-chamber-king-transformed {
  background: linear-gradient(180deg, #4a3828 0%, #3a2a1e 50%, #2a1a12 100%);
  box-shadow: inset 0 0 50px #1a100a;
}
.scn-ante-chamber-king-transformed .window-cast {
  position: absolute; top: 12%; left: 50%; width: 90px; height: 110px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #e8d0b0 0%, #c8b090 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 20px #b09878, 0 0 40px rgba(200,180,150,.4);
  clip-path: polygon(5% 5%, 95% 5%, 95% 95%, 5% 95%);
  animation: akt-window 15s ease-in-out infinite alternate;
}
.scn-ante-chamber-king-transformed .light-shaft {
  position: absolute; top: 12%; left: 50%; width: 70px; height: 70%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(240,220,180,.3) 0%, rgba(200,180,140,.08) 100%);
  clip-path: polygon(25% 0%, 75% 0%, 85% 100%, 15% 100%);
  filter: blur(6px);
  animation: akt-shaft 10s ease-in-out infinite alternate;
}
.scn-ante-chamber-king-transformed .king-fig {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 6px 20px rgba(0,0,0,.5);
  animation: akt-king 12s ease-in-out infinite;
}
.scn-ante-chamber-king-transformed .angel-presence {
  position: absolute; top: 25%; left: 50%; width: 90px; height: 70px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, rgba(255,220,180,.25) 0%, rgba(200,160,120,.1) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: akt-angel 20s ease-in-out infinite alternate;
}
.scn-ante-chamber-king-transformed .crown-light {
  position: absolute; bottom: 55%; left: 50%; width: 24px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0c060 0%, #c09040 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px #d0a050, 0 0 60px 20px rgba(208,160,80,.3);
  animation: akt-crown 6s ease-in-out infinite alternate;
}
.scn-ante-chamber-king-transformed .old-self-shadow {
  position: absolute; bottom: 15%; left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%) scaleX(-1);
  background: linear-gradient(180deg, rgba(30,20,15,.2) 0%, rgba(20,12,8,.1) 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(5px);
  opacity: .3;
  animation: akt-shadow 8s ease-in-out infinite alternate;
}
@keyframes akt-window { 0% { opacity: .7; transform: translateX(-50%) scaleY(1); } 50% { opacity: 1; transform: translateX(-50%) scaleY(1.03); } 100% { opacity: .8; transform: translateX(-50%) scaleY(0.97); } }
@keyframes akt-shaft { 0% { opacity: .4; transform: translateX(-50%) scaleY(1) skewX(-3deg); } 50% { opacity: .8; transform: translateX(-50%) scaleY(1.08) skewX(0); } 100% { opacity: .6; transform: translateX(-50%) scaleY(0.95) skewX(3deg); } }
@keyframes akt-king { 0% { transform: translateX(-50%) translateY(0) rotate(0); } 30% { transform: translateX(-50%) translateY(-6px) rotate(2deg); } 60% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes akt-angel { 0% { opacity: .2; transform: translateX(-50%) scale(.9); } 50% { opacity: .5; transform: translateX(-50%) scale(1.1); } 100% { opacity: .3; transform: translateX(-50%) scale(1); } }
@keyframes akt-crown { 0% { opacity: .6; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.08); } 100% { opacity: .7; transform: translateX(-50%) scale(0.95); } }
@keyframes akt-shadow { 0% { opacity: .2; transform: translateX(-50%) scaleX(-1) scaleY(1); } 50% { opacity: .4; transform: translateX(-50%) scaleX(-1) scaleY(1.05); } 100% { opacity: .3; transform: translateX(-50%) scaleX(-1) scaleY(0.95); } }

.scn-item-articles-granted {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b68a 50%, #b8946e 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 60%);
}
.scn-item-articles-granted .bg-room {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e8d5b5 0%, #c8a96e 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  animation: gr1-sky 12s ease-in-out infinite alternate;
}
.scn-item-articles-granted .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #9a7a4a 0%, #6a5030 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
}
.scn-item-articles-granted .table {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-item-articles-granted .document {
  position: absolute; bottom: 22%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #fff8e7 0%, #f0dcc0 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2), 0 0 20px 4px rgba(255, 215, 150, 0.3);
  animation: gr1-glow 4s ease-in-out infinite alternate;
}
.scn-item-articles-granted .quill {
  position: absolute; bottom: 27%; left: 55%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #d4b68a 0%, #8b6a3f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gr1-scribble 5s ease-in-out infinite;
}
.scn-item-articles-granted .king {
  position: absolute; bottom: 12%; left: 42%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gr1-nod 6s ease-in-out infinite;
}
.scn-item-articles-granted .seal {
  position: absolute; bottom: 22%; left: 46%; width: 12px; height: 12px;
  background: radial-gradient(circle, #c8553d 0%, #8a301a 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,85,61,0.5);
  animation: gr1-press 7s ease-in-out infinite;
}
.scn-item-articles-granted .candle {
  position: absolute; bottom: 18%; left: 60%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b68a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 4px rgba(255, 200, 100, 0.7);
  animation: gr1-flicker 2s ease-in-out infinite alternate;
}
@keyframes gr1-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes gr1-glow {
  0% { box-shadow: 0 4px 8px rgba(0,0,0,0.2), 0 0 15px 2px rgba(255,215,150,0.2); }
  50% { box-shadow: 0 4px 12px rgba(0,0,0,0.3), 0 0 30px 8px rgba(255,215,150,0.5); }
  100% { box-shadow: 0 4px 8px rgba(0,0,0,0.2), 0 0 20px 4px rgba(255,215,150,0.3); }
}
@keyframes gr1-scribble {
  0% { transform: rotate(-5deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(-2px); }
  50% { transform: rotate(-3deg) translateY(0); }
  75% { transform: rotate(4deg) translateY(-1px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes gr1-nod {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes gr1-press {
  0% { transform: scale(1); }
  30% { transform: scale(1.1); box-shadow: 0 0 12px 4px rgba(200,85,61,0.7); }
  70% { transform: scale(0.95); }
  100% { transform: scale(1); }
}
@keyframes gr1-flicker {
  0% { opacity: 0.8; transform: scaleY(1); }
  30% { opacity: 1; transform: scaleY(1.05); }
  60% { opacity: 0.9; transform: scaleY(0.95); }
  100% { opacity: 0.85; transform: scaleY(1); }
}

.scn-item-articles-king-title {
  background: linear-gradient(180deg, #f0dcc0 0%, #d4b68a 50%, #b8946e 100%),
              radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 60%);
}
.scn-item-articles-king-title .bg-room {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e8d5b5 0%, #c8a96e 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  animation: ki2-sky 14s ease-in-out infinite alternate;
}
.scn-item-articles-king-title .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #9a7a4a 0%, #6a5030 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
}
.scn-item-articles-king-title .table {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-item-articles-king-title .document {
  position: absolute; bottom: 22%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #fff8e7 0%, #f0dcc0 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2), 0 0 20px 4px rgba(255, 215, 150, 0.3);
  animation: ki2-glow 5s ease-in-out infinite alternate;
}
.scn-item-articles-king-title .hand {
  position: absolute; bottom: 26%; left: 48%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #c8a96e 0%, #8b6a3f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ki2-write 4s ease-in-out infinite;
}
.scn-item-articles-king-title .inkwell {
  position: absolute; bottom: 19%; left: 56%; width: 14px; height: 18px;
  background: radial-gradient(circle at 50% 30%, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
  animation: ki2-ripple 8s ease-in-out infinite;
}
.scn-item-articles-king-title .crown {
  position: absolute; bottom: 28%; left: 38%; width: 20px; height: 12px;
  background: linear-gradient(180deg, #e8c84a 0%, #c8a030 100%);
  border-radius: 20% 20% 40% 40% / 40% 40% 20% 20%;
  box-shadow: 0 0 10px 2px rgba(200,160,48,0.5);
  animation: ki2-shine 6s ease-in-out infinite;
}
.scn-item-articles-king-title .scroll-edge {
  position: absolute; bottom: 22%; left: 44%; width: 8px; height: 38px;
  background: linear-gradient(180deg, #d4b68a 0%, #a08050 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(5deg);
  animation: ki2-roll 10s linear infinite;
}
@keyframes ki2-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ki2-glow {
  0% { box-shadow: 0 4px 8px rgba(0,0,0,0.2), 0 0 15px 2px rgba(255,215,150,0.2); }
  50% { box-shadow: 0 4px 12px rgba(0,0,0,0.3), 0 0 30px 8px rgba(255,215,150,0.5); }
  100% { box-shadow: 0 4px 8px rgba(0,0,0,0.2), 0 0 20px 4px rgba(255,215,150,0.3); }
}
@keyframes ki2-write {
  0% { transform: rotate(-10deg) translateY(0); }
  25% { transform: rotate(5deg) translateY(-3px); }
  50% { transform: rotate(-8deg) translateY(0); }
  75% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes ki2-ripple {
  0% { transform: scaleY(1); }
  30% { transform: scaleY(1.05); }
  70% { transform: scaleY(0.95); }
  100% { transform: scaleY(1); }
}
@keyframes ki2-shine {
  0%,100% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); box-shadow: 0 0 16px 4px rgba(200,160,48,0.8); }
}
@keyframes ki2-roll {
  0% { transform: rotate(3deg); }
  50% { transform: rotate(7deg); }
  100% { transform: rotate(3deg); }
}

.scn-henry-receives-kate {
  background: linear-gradient(180deg, #f5dcc0 0%, #d4a86e 50%, #b88a4e 100%),
              radial-gradient(ellipse at 50% 0%, #ffe8d0 0%, transparent 60%);
}
.scn-henry-receives-kate .bg-court {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e8c8a0 0%, #c8a060 100%);
  border-radius: 0 0 40% 40% / 0 0 15% 15%;
  animation: hk3-sky 16s ease-in-out infinite alternate;
}
.scn-henry-receives-kate .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
}
.scn-henry-receives-kate .figure-left {
  position: absolute; bottom: 12%; left: 35%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hk3-left 5s ease-in-out infinite;
}
.scn-henry-receives-kate .figure-right {
  position: absolute; bottom: 12%; left: 55%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hk3-right 5s ease-in-out infinite alternate;
}
.scn-henry-receives-kate .hands {
  position: absolute; bottom: 22%; left: 50%; width: 18px; height: 14px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #c8a86e 0%, #a08050 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  box-shadow: 0 0 12px 4px rgba(200,168,110,0.5);
  animation: hk3-clasp 4s ease-in-out infinite;
}
.scn-henry-receives-kate .glow-heart {
  position: absolute; bottom: 26%; left: 50%; width: 24px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd0a0 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,208,160,0.4);
  animation: hk3-heart 7s ease-in-out infinite alternate;
}
.scn-henry-receives-kate .token {
  position: absolute; bottom: 18%; left: 48%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #e8c84a 0%, #c8a030 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%;
  animation: hk3-token 6s ease-in-out infinite;
}
@keyframes hk3-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes hk3-left {
  0%,100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
}
@keyframes hk3-right {
  0% { transform: translateY(-2px) rotate(0); }
  50% { transform: translateY(0) rotate(-2deg); }
  100% { transform: translateY(-2px) rotate(0); }
}
@keyframes hk3-clasp {
  0% { transform: translateX(-50%) scale(1); }
  30% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 18px 6px rgba(200,168,110,0.7); }
  70% { transform: translateX(-50%) scale(0.95); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes hk3-heart {
  0% { opacity: 0.3; transform: translateX(-50%) scale(0.8); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.2); }
  100% { opacity: 0.5; transform: translateX(-50%) scale(1); }
}
@keyframes hk3-token {
  0%,100% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-2px) rotate(5deg); }
}

.scn-marriage-blessing {
  background: linear-gradient(180deg, #f0d8b0 0%, #d4b080 50%, #b88a5a 100%),
              radial-gradient(ellipse at 50% 0%, #ffe0b0 0%, transparent 60%);
}
.scn-marriage-blessing .bg-church {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #e8c8a0 0%, #c8a060 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  animation: bl4-glow 18s ease-in-out infinite alternate;
}
.scn-marriage-blessing .altar {
  position: absolute; bottom: 12%; left: 50%; width: 80px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
}
.scn-marriage-blessing .hands-clasped {
  position: absolute; bottom: 22%; left: 50%; width: 20px; height: 18px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #c8a86e 0%, #a08050 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  box-shadow: 0 0 16px 4px rgba(200,168,110,0.5);
  animation: bl4-clasp 6s ease-in-out infinite;
}
.scn-marriage-blessing .halo {
  position: absolute; bottom: 34%; left: 50%; width: 28px; height: 28px;
  transform: translateX(-50%);
  border: 3px solid rgba(255,215,150,0.6);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(255,215,150,0.3);
  animation: bl4-halo 10s linear infinite;
}
.scn-marriage-blessing .rays {
  position: absolute; bottom: 20%; left: 0; right: 0; top: 0;
  background: radial-gradient(ellipse at 50% 40%, transparent 40%, rgba(255,215,150,0.15) 60%);
  pointer-events: none;
  animation: bl4-rays 8s ease-in-out infinite alternate;
}
.scn-marriage-blessing .cross {
  position: absolute; bottom: 22%; left: 50%; width: 6px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a86e 0%, #8a6a3a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 8px 2px rgba(200,168,110,0.4);
  animation: bl4-cross 12s ease-in-out infinite;
}
@keyframes bl4-glow {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes bl4-clasp {
  0% { transform: translateX(-50%) scale(1); }
  30% { transform: translateX(-50%) scale(1.1); box-shadow: 0 0 24px 8px rgba(200,168,110,0.8); }
  70% { transform: translateX(-50%) scale(0.95); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes bl4-halo {
  0% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(360deg); }
}
@keyframes bl4-rays {
  0% { opacity: 0.2; transform: scaleY(0.95); }
  50% { opacity: 0.5; transform: scaleY(1.05); }
  100% { opacity: 0.3; transform: scaleY(1); }
}
@keyframes bl4-cross {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
}

.scn-katherine-english-lesson {
  background: linear-gradient(180deg, #f5e6d0 0%, #e8d5b0 30%, #d4b896 60%, #c4a77a 100%),
              radial-gradient(ellipse at 70% 20%, #fff8e8 0%, transparent 60%);
}
.scn-katherine-english-lesson .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #fcf3e3 0%, #f0e0c8 100%);
  opacity: 0.6;
}
.scn-katherine-english-lesson .wall-frame {
  position: absolute; left: 10%; top: 5%; width: 30%; height: 40%;
  border: 6px solid #a08060; border-radius: 10px;
  box-shadow: inset 0 0 30px rgba(255,230,180,0.3);
}
.scn-katherine-english-lesson .window-glow {
  position: absolute; right: 8%; top: 8%; width: 18%; height: 35%;
  background: linear-gradient(135deg, #fff8e0 0%, #fce8b0 40%, transparent 100%);
  border-radius: 12px 12px 4px 4px;
  box-shadow: 0 0 40px 10px rgba(255,240,180,0.3);
  animation: ke1-glow 4s ease-in-out infinite alternate;
}
.scn-katherine-english-lesson .teacher {
  position: absolute; bottom: 30%; left: 12%; width: 22%; height: 50%;
  background: linear-gradient(180deg, #5a3e2a 0%, #3a2a1a 60%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ke1-bob 3s ease-in-out infinite alternate;
}
.scn-katherine-english-lesson .hand {
  position: absolute; bottom: 35%; left: 35%; width: 30%; height: 35%;
  background: radial-gradient(ellipse at 35% 60%, #e0c0a0 0%, #c0a080 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  box-shadow: 0 4px 15px rgba(0,0,0,0.2);
  animation: ke1-hand 5s ease-in-out infinite alternate;
}
.scn-katherine-english-lesson .finger {
  position: absolute; bottom: 55%; left: 38%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #dbb896 0%, #a08060 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}
.scn-katherine-english-lesson .finger-a { left: 36%; animation: ke1-point 2s ease-in-out infinite; }
.scn-katherine-english-lesson .finger-b { left: 42%; animation: ke1-point 2.3s ease-in-out infinite 0.4s; }
.scn-katherine-english-lesson .finger-c { left: 48%; animation: ke1-point 2.6s ease-in-out infinite 0.8s; }
.scn-katherine-english-lesson .student {
  position: absolute; bottom: 27%; right: 20%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #6a4e34 0%, #4a3420 60%, #2a1a0c 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: ke1-nod 4s ease-in-out infinite;
}
@keyframes ke1-glow {
  0% { opacity: 0.6; box-shadow: 0 0 30px 5px rgba(255,240,180,0.2); }
  50% { opacity: 1; box-shadow: 0 0 60px 20px rgba(255,240,180,0.5); }
  100% { opacity: 0.8; box-shadow: 0 0 40px 10px rgba(255,240,180,0.3); }
}
@keyframes ke1-bob {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ke1-hand {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-5px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes ke1-point {
  0%,100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-4px); }
}
@keyframes ke1-nod {
  0%,100% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(-2px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(-2deg) translateY(-2px); }
}

.scn-katherine-practice-nails {
  background: linear-gradient(180deg, #f0e2cc 0%, #e0d0b6 30%, #cebc9e 60%, #bea888 100%),
              radial-gradient(ellipse at 50% 40%, #fff8ec 0%, transparent 50%);
}
.scn-katherine-practice-nails .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #faf0e0 0%, #eddcc4 100%);
  opacity: 0.5;
}
.scn-katherine-practice-nails .arm {
  position: absolute; bottom: 20%; left: 20%; width: 55%; height: 25%;
  background: linear-gradient(180deg, #dab898 0%, #b89068 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 20% 20%;
  box-shadow: 0 4px 20px rgba(0,0,0,0.15);
  transform-origin: bottom left;
  animation: ke2-arm 7s ease-in-out infinite alternate;
}
.scn-katherine-practice-nails .hand {
  position: absolute; bottom: 30%; left: 65%; width: 25%; height: 32%;
  background: radial-gradient(ellipse at 40% 50%, #e0bea0 0%, #c0a080 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  animation: ke2-hand 6s ease-in-out infinite alternate;
}
.scn-katherine-practice-nails .nail {
  position: absolute; bottom: 52%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  animation: ke2-nail 3s ease-in-out infinite alternate;
}
.scn-katherine-practice-nails .nail-1 { left: 66%; }
.scn-katherine-practice-nails .nail-2 { left: 70%; animation-delay: 0.6s; }
.scn-katherine-practice-nails .nail-3 { left: 74%; animation-delay: 1.2s; }
.scn-katherine-practice-nails .nail-4 { left: 78%; animation-delay: 1.8s; }
.scn-katherine-practice-nails .ring {
  position: absolute; bottom: 43%; left: 68%; width: 8%; height: 6%;
  background: radial-gradient(circle, #f0d080 0%, #c0a050 60%, #806020 100%);
  border-radius: 40% 40% 20% 20% / 30% 30% 20% 20%;
  box-shadow: 0 0 10px 3px rgba(192,160,80,0.4);
  animation: ke2-ring 4s ease-in-out infinite alternate;
}
@keyframes ke2-arm {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-4px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes ke2-hand {
  0% { transform: rotate(-3deg) scale(1); }
  50% { transform: rotate(0deg) scale(1.03); }
  100% { transform: rotate(3deg) scale(1); }
}
@keyframes ke2-nail {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.2); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0.9; }
}
@keyframes ke2-ring {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(10deg) translateY(0); }
}

.scn-katherine-col-menton {
  background: linear-gradient(180deg, #f2e4ce 0%, #e2d2b8 25%, #d2c0a2 50%, #c0ac8a 75%, #b89e7a 100%),
              radial-gradient(ellipse at 30% 50%, #fff8ea 0%, transparent 60%);
}
.scn-katherine-col-menton .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #fcf3e5 0%, #ede0cc 100%);
  opacity: 0.4;
}
.scn-katherine-col-menton .mirror {
  position: absolute; right: 8%; top: 10%; width: 25%; height: 45%;
  border: 8px solid #a08060; border-radius: 50%;
  box-shadow: inset 0 0 40px rgba(255,235,180,0.3), 0 0 20px rgba(0,0,0,0.1);
  background: linear-gradient(135deg, #d8c8aa 0%, #c0b090 100%);
}
.scn-katherine-col-menton .profile-head {
  position: absolute; bottom: 30%; left: 18%; width: 18%; height: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a22 100%);
  border-radius: 50% 20% 30% 40% / 50% 30% 40% 50%;
  transform-origin: bottom center;
  animation: ke3-head 5s ease-in-out infinite alternate;
}
.scn-katherine-col-menton .neck {
  position: absolute; bottom: 15%; left: 24%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a22 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
}
.scn-katherine-col-menton .chin-glow {
  position: absolute; bottom: 28%; left: 21%; width: 10%; height: 12%;
  background: radial-gradient(circle, #ffebb8 0%, rgba(255,235,184,0) 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,235,184,0.5);
  animation: ke3-chin 3s ease-in-out infinite alternate;
}
.scn-katherine-col-menton .teacher-hand {
  position: absolute; bottom: 42%; right: 35%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #dab898 0%, #b89068 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform-origin: top right;
  animation: ke3-point 4s ease-in-out infinite;
}
.scn-katherine-col-menton .student-body {
  position: absolute; bottom: 12%; right: 15%; width: 22%; height: 50%;
  background: linear-gradient(180deg, #6a4e34 0%, #4a3420 60%, #2a1a0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ke3-sway 6s ease-in-out infinite alternate;
}
.scn-katherine-col-menton .collar {
  position: absolute; bottom: 32%; left: 21%; width: 16%; height: 8%;
  background: radial-gradient(ellipse, #f0e0c8 0%, #d0b898 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}
@keyframes ke3-head {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-3px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes ke3-chin {
  0% { opacity: 0.4; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.6; transform: scale(0.9); }
}
@keyframes ke3-point {
  0%,100% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-5px); }
}
@keyframes ke3-sway {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(8px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}

.scn-katherine-foot-coun {
  background: linear-gradient(180deg, #f0e0cc 0%, #e0ceb6 25%, #cebca0 50%, #beaa88 75%, #ae9a76 100%),
              radial-gradient(ellipse at 60% 30%, #fff8ec 0%, transparent 60%);
}
.scn-katherine-foot-coun .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #faf1e2 0%, #ece0ce 100%);
  opacity: 0.4;
}
.scn-katherine-foot-coun .foot {
  position: absolute; bottom: 5%; left: 30%; width: 30%; height: 22%;
  background: linear-gradient(180deg, #b89070 0%, #987858 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 20px rgba(0,0,0,0.2);
  transform-origin: bottom center;
  animation: ke4-foot 4s ease-in-out infinite alternate;
}
.scn-katherine-foot-coun .ankle {
  position: absolute; bottom: 22%; left: 42%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #c8a884 0%, #a88868 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
}
.scn-katherine-foot-coun .shocked-figure {
  position: absolute; bottom: 25%; right: 10%; width: 28%; height: 55%;
  background: linear-gradient(180deg, #5a3e2a 0%, #3a2a1a 60%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ke4-shock 2.5s ease-in-out infinite alternate;
}
.scn-katherine-foot-coun .fan {
  position: absolute; top: 20%; right: 18%; width: 10%; height: 18%;
  background: radial-gradient(ellipse, #e0d0b0 0%, #c0a888 100%);
  border-radius: 20% 80% 20% 80% / 50% 50% 50% 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  animation: ke4-fan 1.5s ease-in-out infinite;
}
.scn-katherine-foot-coun .floor-mat {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5538 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-katherine-foot-coun .shadow {
  position: absolute; bottom: 0; left: 25%; width: 40%; height: 5%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 100%);
  animation: ke4-shadow 4s ease-in-out infinite alternate;
}
.scn-katherine-foot-coun .book {
  position: absolute; bottom: 8%; left: 10%; width: 12%; height: 14%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 4%; box-shadow: 2px 4px 10px rgba(0,0,0,0.2);
  transform: rotate(-15deg);
  animation: ke4-book 6s ease-in-out infinite alternate;
}
@keyframes ke4-foot {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes ke4-shock {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(-10px) rotate(4deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes ke4-fan {
  0%,100% { transform: rotate(-30deg); }
  50% { transform: rotate(30deg); }
}
@keyframes ke4-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.3); opacity: 0.8; }
  100% { transform: scaleX(1); opacity: 0.5; }
}
@keyframes ke4-book {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-3px); }
  100% { transform: rotate(-15deg) translateY(0); }
}

/* henry-welshman-praise */
.scn-henry-welshman-praise{
  background:linear-gradient(180deg,#0d0d1a 0%,#1a1a2e 40%,#2a1a0e 70%,#3a2a1a 100%),radial-gradient(ellipse at 50% 100%,#6a4a2a 0%,transparent 60%);
}
.scn-henry-welshman-praise .sky{
  position:absolute;inset:0 0 30% 0;background:linear-gradient(180deg,#0a0a1a 0%,#151530 60%,transparent);animation:hwp-sky 15s ease-in-out infinite alternate;
}
.scn-henry-welshman-praise .hills{
  position:absolute;bottom:30%;left:0;right:0;height:25%;background:linear-gradient(180deg,#1e2a1e 0%,#0e1a0e 100%);border-radius:40% 60% 0 0/80% 70% 0 0;box-shadow:inset 0 8px 20px rgba(0,0,0,.6);animation:hwp-hills 18s ease-in-out infinite alternate;
}
.scn-henry-welshman-praise .figure{
  position:absolute;bottom:28%;left:45%;width:20px;height:40px;background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:hwp-figure 4s ease-in-out infinite;
}
.scn-henry-welshman-praise .dawn-glow{
  position:absolute;bottom:30%;left:50%;width:80px;height:40px;transform:translateX(-50%);background:radial-gradient(circle,#c08040 0%,transparent 70%);border-radius:50%;filter:blur(8px);animation:hwp-glow 6s ease-in-out infinite alternate;
}
.scn-henry-welshman-praise .cloud-a{
  position:absolute;top:15%;left:10%;width:70px;height:16px;background:linear-gradient(180deg,rgba(200,200,220,.6) 0%,rgba(200,200,220,.1) 100%);border-radius:50%;filter:blur(5px);animation:hwp-clouda 40s linear infinite;
}
.scn-henry-welshman-praise .cloud-b{
  position:absolute;top:25%;right:5%;width:50px;height:12px;background:linear-gradient(180deg,rgba(180,180,200,.4) 0%,rgba(180,180,200,.05) 100%);border-radius:50%;filter:blur(4px);animation:hwp-cloudb 50s linear infinite;
}
.scn-henry-welshman-praise .star{
  position:absolute;top:10%;left:30%;width:4px;height:4px;background:#f0e0c0;border-radius:50%;box-shadow:0 0 6px 2px rgba(240,224,192,.6);animation:hwp-star 3s ease-in-out infinite;
}
@keyframes hwp-sky{0%{opacity:.8}50%{opacity:1}100%{opacity:.75}}
@keyframes hwp-hills{0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)}}
@keyframes hwp-figure{0%{transform:translateX(0) rotate(-1deg)}50%{transform:translateX(3px) rotate(1deg)}100%{transform:translateX(0) rotate(0)}}
@keyframes hwp-glow{0%{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}100%{opacity:.5;transform:scale(.95)}}
@keyframes hwp-clouda{0%{transform:translateX(-60px)}100%{transform:translateX(120vw)}}
@keyframes hwp-cloudb{0%{transform:translateX(120vw)}100%{transform:translateX(-60px)}}
@keyframes hwp-star{0%,100%{opacity:.2;transform:scale(.5)}50%{opacity:1;transform:scale(1.2)}}

/* soldiers-king-man */
.scn-soldiers-king-man{
  background:linear-gradient(180deg,#1a1a2e 0%,#2a2a4e 30%,#4a3a5a 60%,#8a6a4a 100%),radial-gradient(ellipse at 50% 100%,#c08040 0%,transparent 70%);
}
.scn-soldiers-king-man .sky{
  position:absolute;inset:0 0 20% 0;background:linear-gradient(180deg,#1a1a3e 0%,#3a3a5e 60%,#6a5a3a);animation:skm-sky 12s ease-in-out infinite alternate;
}
.scn-soldiers-king-man .sun-glow{
  position:absolute;bottom:25%;left:50%;width:100px;height:60px;transform:translateX(-50%);background:radial-gradient(circle,#ffd060 0%,#e09030 40%,transparent 70%);border-radius:50%;filter:blur(10px);animation:skm-sun 3s ease-in-out infinite alternate;
}
.scn-soldiers-king-man .soldier1{
  position:absolute;bottom:15%;left:30%;width:18px;height:38px;background:linear-gradient(180deg,#2a2a3a 0%,#0a0a1a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom;animation:skm-soldier 1.8s ease-in-out infinite;
}
.scn-soldiers-king-man .soldier2{
  position:absolute;bottom:15%;left:45%;width:18px;height:38px;background:linear-gradient(180deg,#2a2a3a 0%,#0a0a1a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom;animation:skm-soldier 1.8s ease-in-out infinite reverse;
}
.scn-soldiers-king-man .soldier3{
  position:absolute;bottom:15%;left:60%;width:18px;height:38px;background:linear-gradient(180deg,#2a2a3a 0%,#0a0a1a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom;animation:skm-soldier 1.8s ease-in-out infinite 0.2s;
}
.scn-soldiers-king-man .ground{
  position:absolute;bottom:10%;left:0;right:0;height:15%;background:linear-gradient(180deg,#2a2a1a 0%,#0a0a0a 100%);border-radius:20% 20% 0 0/40% 40% 0 0;box-shadow:inset 0 8px 20px rgba(0,0,0,.7);
}
.scn-soldiers-king-man .cloud-fast{
  position:absolute;top:12%;right:0;width:80px;height:14px;background:linear-gradient(180deg,rgba(200,200,220,.5) 0%,rgba(200,200,220,.1) 100%);border-radius:50%;filter:blur(4px);animation:skm-cloud 8s linear infinite;
}
@keyframes skm-sky{0%{opacity:.8}50%{opacity:1}100%{opacity:.7}}
@keyframes skm-sun{0%{opacity:.6;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}100%{opacity:.7;transform:scale(.95)}}
@keyframes skm-soldier{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-2px) rotate(2deg)}100%{transform:translateY(0) rotate(0)}}
@keyframes skm-cloud{0%{transform:translateX(120vw)}100%{transform:translateX(-120vw)}}

/* king-soldiers-responsibility */
.scn-king-soldiers-responsibility{
  background:linear-gradient(180deg,#0a0a1a 0%,#1a1a3e 30%,#2a2a4e 60%,#3a3a5e 100%),radial-gradient(ellipse at 50% 80%,#2a2a5e 0%,transparent 70%);
}
.scn-king-soldiers-responsibility .sky{
  position:absolute;inset:0 0 30% 0;background:linear-gradient(180deg,#0a0a2a 0%,#1a1a4e 40%,#2a2a5e 70%,#3a3a4e);animation:ksr-sky 14s ease-in-out infinite alternate;
}
.scn-king-soldiers-responsibility .sea{
  position:absolute;bottom:20%;left:0;right:0;height:15%;background:linear-gradient(180deg,#0e1a2a 0%,#1a2a3a 100%);border-radius:30% 30% 0 0/50% 50% 0 0;animation:ksr-sea 4s ease-in-out infinite alternate;
}
.scn-king-soldiers-responsibility .ship{
  position:absolute;bottom:30%;left:40%;width:80px;height:25px;background:linear-gradient(180deg,#3a2a1a 0%,#1a0e0a 100%);border-radius:30% 30% 10% 10%;box-shadow:0 4px 8px rgba(0,0,0,.5);animation:ksr-ship 3s ease-in-out infinite;
}
.scn-king-soldiers-responsibility .sail1{
  position:absolute;bottom:45%;left:47%;width:12px;height:40px;background:linear-gradient(180deg,#4a3a2a 0%,#1a1a0a 100%);border-radius:50% 50% 0 0/60% 60% 0 0;transform-origin:bottom center;animation:ksr-sail1 3.5s ease-in-out infinite;
}
.scn-king-soldiers-responsibility .sail2{
  position:absolute;bottom:45%;left:55%;width:10px;height:35px;background:linear-gradient(180deg,#3a2a1a 0%,#0e0e0a 100%);border-radius:50% 50% 0 0/60% 60% 0 0;transform-origin:bottom center;animation:ksr-sail2 3.5s ease-in-out infinite reverse;
}
.scn-king-soldiers-responsibility .wave1{
  position:absolute;bottom:22%;left:0;right:0;height:10px;background:linear-gradient(180deg,rgba(100,120,140,.3) 0%,rgba(100,120,140,.1) 100%);border-radius:50%;filter:blur(3px);animation:ksr-wave1 5s ease-in-out infinite;
}
.scn-king-soldiers-responsibility .wave2{
  position:absolute;bottom:18%;left:0;right:0;height:8px;background:linear-gradient(180deg,rgba(120,140,160,.2) 0%,rgba(120,140,160,.05) 100%);border-radius:50%;filter:blur(2px);animation:ksr-wave2 5s ease-in-out infinite 2.5s;
}
.scn-king-soldiers-responsibility .cliff{
  position:absolute;bottom:20%;left:70%;width:60px;height:40px;background:linear-gradient(180deg,#1a1a2a 0%,#0e0e1a 100%);border-radius:20% 20% 10% 10%;box-shadow:inset 0 4px 10px rgba(0,0,0,.6);animation:ksr-cliff 6s ease-in-out infinite alternate;
}
.scn-king-soldiers-responsibility .father-figure{
  position:absolute;bottom:33%;left:72%;width:14px;height:30px;background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom;animation:ksr-father 4s ease-in-out infinite;
}
@keyframes ksr-sky{0%{opacity:.8}50%{opacity:1}100%{opacity:.75}}
@keyframes ksr-sea{0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)}}
@keyframes ksr-ship{0%{transform:translateX(-2px) rotate(-1deg)}50%{transform:translateX(2px) rotate(1deg)}100%{transform:translateX(-2px) rotate(-1deg)}}
@keyframes ksr-sail1{0%{transform:rotate(-2deg) scaleY(1)}50%{transform:rotate(2deg) scaleY(1.05)}100%{transform:rotate(-2deg) scaleY(1)}}
@keyframes ksr-sail2{0%{transform:rotate(2deg) scaleY(1)}50%{transform:rotate(-2deg) scaleY(1.05)}100%{transform:rotate(2deg) scaleY(1)}}
@keyframes ksr-wave1{0%{transform:translateX(0) scaleY(1)}50%{transform:translateX(10px) scaleY(1.2)}100%{transform:translateX(0) scaleY(1)}}
@keyframes ksr-wave2{0%{transform:translateX(0) scaleY(1)}50%{transform:translateX(-10px) scaleY(1.2)}100%{transform:translateX(0) scaleY(1)}}
@keyframes ksr-cliff{0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)}}
@keyframes ksr-father{0%{transform:translateX(0) rotate(0)}50%{transform:translateX(2px) rotate(1deg)}100%{transform:translateX(0) rotate(0)}}

/* soldiers-quarrel */
.scn-soldiers-quarrel{
  background:linear-gradient(180deg,#1a1a2e 0%,#3a3a5e 30%,#6a5a4a 70%,#8a7a5a 100%),radial-gradient(ellipse at 50% 100%,#c08040 0%,transparent 60%);
}
.scn-soldiers-quarrel .sky{
  position:absolute;inset:0 0 15% 0;background:linear-gradient(180deg,#1a1a3e 0%,#3a3a5e 60%,#6a5a3a);animation:sq-sky 10s ease-in-out infinite alternate;
}
.scn-soldiers-quarrel .sun{
  position:absolute;bottom:15%;left:50%;width:50px;height:30px;transform:translateX(-50%);background:radial-gradient(circle,#ffd060 0%,#e09030 50%,transparent 70%);border-radius:50%;filter:blur(6px);animation:sq-sun 2s ease-in-out infinite alternate;
}
.scn-soldiers-quarrel .soldier1{
  position:absolute;bottom:10%;left:30%;width:20px;height:42px;background:linear-gradient(180deg,#2a2a3a 0%,#0a0a1a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom;animation:sq-soldier1 1.6s ease-in-out infinite;
}
.scn-soldiers-quarrel .soldier2{
  position:absolute;bottom:10%;left:55%;width:20px;height:42px;background:linear-gradient(180deg,#2a2a3a 0%,#0a0a1a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom;animation:sq-soldier2 1.6s ease-in-out infinite reverse;
}
.scn-soldiers-quarrel .ground{
  position:absolute;bottom:5%;left:0;right:0;height:12%;background:linear-gradient(180deg,#2a2a1a 0%,#0a0a0a 100%);border-radius:30% 30% 0 0/50% 50% 0 0;box-shadow:inset 0 6px 12px rgba(0,0,0,.6);
}
.scn-soldiers-quarrel .cloud-fast{
  position:absolute;top:8%;right:0;width:90px;height:12px;background:linear-gradient(180deg,rgba(200,200,220,.5) 0%,rgba(200,200,220,.1) 100%);border-radius:50%;filter:blur(3px);animation:sq-cloud 6s linear infinite;
}
.scn-soldiers-quarrel .spark{
  position:absolute;bottom:35%;left:45%;width:6px;height:6px;background:radial-gradient(circle,#ffd060 0%,transparent 70%);border-radius:50%;box-shadow:0 0 12px 4px rgba(255,208,96,.5);animation:sq-spark 1.5s ease-in-out infinite alternate;
}
@keyframes sq-sky{0%{opacity:.7}50%{opacity:1}100%{opacity:.8}}
@keyframes sq-sun{0%{opacity:.7;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}100%{opacity:.8;transform:scale(.95)}}
@keyframes sq-soldier1{0%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-3px) rotate(3deg)}100%{transform:translateY(0) rotate(-2deg)}}
@keyframes sq-soldier2{0%{transform:translateY(0) rotate(3deg)}50%{transform:translateY(-3px) rotate(-3deg)}100%{transform:translateY(0) rotate(2deg)}}
@keyframes sq-cloud{0%{transform:translateX(120vw)}100%{transform:translateX(-120vw)}}
@keyframes sq-spark{0%{opacity:.3;transform:scale(.5)}100%{opacity:1;transform:scale(1.5)}}

/* boy-villains-account (bva) - funny, bright interior close-up */
.scn-boy-villains-account{background:linear-gradient(180deg,#f5e6c8 0%,#d4a76a 100%),radial-gradient(ellipse at 50% 100%,#c8814a 0%,transparent 70%)}
.scn-boy-villains-account .bg{position:absolute;inset:0 0 30% 0;background:linear-gradient(180deg,#fce4b8 0%,#f0d4a0 100%);animation:bva-bg 10s ease-in-out infinite alternate}
.scn-boy-villains-account .fl{position:absolute;bottom:0;left:0;right:0;height:30%;background:linear-gradient(180deg,#b58a5a 0%,#8b6b4a 100%);border-radius:0 0 10% 10%}
.scn-boy-villains-account .po{position:absolute;bottom:15%;left:20%;width:12px;height:60%;background:linear-gradient(90deg,#7a5430 0%,#5a3a1a 100%);border-radius:4px;box-shadow:4px 0 8px rgba(0,0,0,.2);animation:bva-po 6s ease-in-out infinite}
.scn-boy-villains-account .fi{position:absolute;bottom:20%;left:30%;width:24px;height:50px;background:linear-gradient(180deg,#3a2a1a 0%,#2a1a0a 100%);border-radius:50% 50% 30% 30%/60% 60% 40% 40%;transform-origin:bottom center;animation:bva-fi 4s ease-in-out infinite}
.scn-boy-villains-account .bo{position:absolute;bottom:18%;right:30%;width:8px;height:16px;background:linear-gradient(180deg,#6a5a3a 0%,#4a3a2a 100%);border-radius:20% 20% 30% 30%;transform:rotate(15deg);animation:bva-bo 5s ease-in-out infinite}
.scn-boy-villains-account .sh{position:absolute;bottom:0;left:20%;width:60px;height:10px;background:radial-gradient(ellipse at 50% 50%,rgba(0,0,0,.3) 0%,transparent 70%);animation:bva-sh 6s ease-in-out infinite}
@keyframes bva-bg{0%{opacity:.8}50%{opacity:1}100%{opacity:.9}}
@keyframes bva-po{0%,100%{transform:translateX(0)}50%{transform:translateX(2px)}}
@keyframes bva-fi{0%{transform:translateX(0) translateY(0) rotate(2deg)}25%{transform:translateX(2px) translateY(-1px) rotate(-3deg)}50%{transform:translateX(4px) translateY(0) rotate(2deg)}75%{transform:translateX(2px) translateY(-1px) rotate(-1deg)}100%{transform:translateX(0) translateY(0) rotate(2deg)}}
@keyframes bva-bo{0%,100%{transform:rotate(15deg)}50%{transform:rotate(-10deg) translateY(1px)}}
@keyframes bva-sh{0%,100%{transform:scaleX(1)}50%{transform:scaleX(1.2) opacity:.7}}

/* fluellen-mines-dispute (fmd) - tense, bright interior cutaway */
.scn-fluellen-mines-dispute{background:linear-gradient(180deg,#e8e4de 0%,#c8c0b8 100%),radial-gradient(ellipse at 50% 100%,#a09890 0%,transparent 70%)}
.scn-fluellen-mines-dispute .tb{position:absolute;inset:0 0 30% 0;background:linear-gradient(180deg,#f0ece4 0%,#d0c8c0 100%);animation:fmd-tb 12s ease-in-out infinite alternate}
.scn-fluellen-mines-dispute .tf{position:absolute;bottom:0;left:0;right:0;height:30%;background:linear-gradient(180deg,#9a8a7a 0%,#6a5a4a 100%)}
.scn-fluellen-mines-dispute .ta{position:absolute;bottom:20%;left:25%;right:25%;height:12%;background:linear-gradient(90deg,#7a5a3a 0%,#5a3a1a 100%);border-radius:6px;box-shadow:0 4px 8px rgba(0,0,0,.3);animation:fmd-ta 8s ease-in-out infinite}
.scn-fluellen-mines-dispute .fl{position:absolute;bottom:16%;left:20%;width:22px;height:40px;background:linear-gradient(180deg,#2a1a0a 0%,#1a0a00 100%);border-radius:40% 40% 20% 20%/60% 60% 30% 30%;transform-origin:bottom center;animation:fmd-fl 4s ease-in-out infinite}
.scn-fluellen-mines-dispute .fr{position:absolute;bottom:16%;right:20%;width:22px;height:40px;background:linear-gradient(180deg,#2a1a0a 0%,#1a0a00 100%);border-radius:40% 40% 20% 20%/60% 60% 30% 30%;transform-origin:bottom center;animation:fmd-fr 4.5s ease-in-out infinite}
.scn-fluellen-mines-dispute .mp{position:absolute;bottom:26%;left:30%;right:30%;height:8%;background:linear-gradient(135deg,#e8dcc8 0%,#c8b8a0 100%);border-radius:4px;transform:rotate(5deg);opacity:.8;animation:fmd-mp 10s ease-in-out infinite}
.scn-fluellen-mines-dispute .ln{position:absolute;bottom:32%;left:48%;width:8px;height:12px;background:radial-gradient(circle,#ffd680 0%,#c08040 100%);border-radius:30%;box-shadow:0 0 12px 4px rgba(255,214,128,.5);animation:fmd-ln 2s ease-in-out infinite alternate}
@keyframes fmd-tb{0%{opacity:.9}50%{opacity:1}100%{opacity:.8}}
@keyframes fmd-ta{0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)}}
@keyframes fmd-fl{0%{transform:translateX(0) rotate(0)}25%{transform:translateX(3px) rotate(5deg)}50%{transform:translateX(0) rotate(0)}75%{transform:translateX(-2px) rotate(-5deg)}100%{transform:translateX(0) rotate(0)}}
@keyframes fmd-fr{0%{transform:translateX(0) rotate(0)}30%{transform:translateX(-3px) rotate(-5deg)}60%{transform:translateX(0) rotate(0)}100%{transform:translateX(2px) rotate(5deg)}}
@keyframes fmd-mp{0%,100%{transform:rotate(5deg)}50%{transform:rotate(-5deg) translateY(1px)}}
@keyframes fmd-ln{0%{box-shadow:0 0 8px 2px rgba(255,214,128,.4);opacity:.8}100%{box-shadow:0 0 16px 6px rgba(255,214,128,.7);opacity:1}}

/* macmorris-irish-captain (mmc) - tense, bright interior overhead */
.scn-macmorris-irish-captain{background:linear-gradient(180deg,#d8d0c8 0%,#b8b0a8 100%),radial-gradient(ellipse at 50% 100%,#908078 0%,transparent 70%)}
.scn-macmorris-irish-captain .bf{position:absolute;inset:0;background:linear-gradient(135deg,#c8b090 0%,#a08870 100%)}
.scn-macmorris-irish-captain .ta{position:absolute;bottom:20%;left:30%;right:30%;height:25%;background:radial-gradient(ellipse at 50% 50%,#8a6a4a 0%,#6a4a2a 100%);border-radius:50%;box-shadow:0 0 20px rgba(0,0,0,.2);animation:mmc-ta 8s ease-in-out infinite}
.scn-macmorris-irish-captain .f1{position:absolute;bottom:35%;left:35%;width:20px;height:20px;background:radial-gradient(circle,#2a1a0a 0%,#1a0a00 100%);border-radius:50%;animation:mmc-f1 5s ease-in-out infinite}
.scn-macmorris-irish-captain .f2{position:absolute;bottom:35%;right:35%;width:20px;height:20px;background:radial-gradient(circle,#2a1a0a 0%,#1a0a00 100%);border-radius:50%;animation:mmc-f2 5.5s ease-in-out infinite}
.scn-macmorris-irish-captain .f3{position:absolute;top:40%;left:50%;width:18px;height:18px;background:radial-gradient(circle,#2a1a0a 0%,#1a0a00 100%);border-radius:50%;transform:translateX(-50%);animation:mmc-f3 6s ease-in-out infinite}
.scn-macmorris-irish-captain .dc{position:absolute;bottom:28%;left:48%;width:14px;height:10px;background:linear-gradient(135deg,#f0e8d8 0%,#d0c8b0 100%);border-radius:2px;transform:rotate(10deg);animation:mmc-dc 9s ease-in-out infinite}
.scn-macmorris-irish-captain .ca{position:absolute;bottom:30%;left:50%;width:4px;height:6px;background:radial-gradient(circle,#ffd680 0%,#c08040 100%);border-radius:50%;box-shadow:0 0 8px 2px rgba(255,214,128,.6);animation:mmc-ca 2.5s ease-in-out infinite alternate}
@keyframes mmc-ta{0%{transform:scale(1) rotate(0)}50%{transform:scale(1.02) rotate(2deg)}100%{transform:scale(1) rotate(0)}}
@keyframes mmc-f1{0%,100%{transform:translateX(0)}50%{transform:translateX(3px) rotate(10deg)}}
@keyframes mmc-f2{0%,100%{transform:translateX(0)}50%{transform:translateX(-3px) rotate(-10deg)}}
@keyframes mmc-f3{0%,100%{transform:translateX(-50%)}50%{transform:translateX(-50%) translateY(2px) rotate(5deg)}}
@keyframes mmc-dc{0%,100%{transform:rotate(10deg)}50%{transform:rotate(-5deg) translateY(1px)}}
@keyframes mmc-ca{0%{box-shadow:0 0 4px 1px rgba(255,214,128,.4);opacity:.8}100%{box-shadow:0 0 12px 4px rgba(255,214,128,.7);opacity:1}}

/* jamy-scots-captain (jsc) - tense, bright interior silhouette against sky */
.scn-jamy-scots-captain{background:linear-gradient(180deg,#2a2a3a 0%,#1a1a2a 100%),radial-gradient(ellipse at 50% 100%,#4a4a5a 0%,transparent 70%)}
.scn-jamy-scots-captain .td{position:absolute;inset:0;background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%)}
.scn-jamy-scots-captain .op{position:absolute;top:15%;left:20%;right:20%;bottom:25%;background:linear-gradient(180deg,#f0e8d8 0%,#d0c8b8 100%);border-radius:8% 8% 0 0;animation:jsc-op 12s ease-in-out infinite alternate}
.scn-jamy-scots-captain .g1{position:absolute;bottom:20%;left:25%;width:18px;height:40px;background:#0a0a1a;border-radius:30% 30% 20% 20%/50% 50% 30% 30%;transform-origin:bottom center;animation:jsc-g1 4s ease-in-out infinite}
.scn-jamy-scots-captain .g2{position:absolute;bottom:20%;left:45%;width:18px;height:40px;background:#0a0a1a;border-radius:30% 30% 20% 20%/50% 50% 30% 30%;transform-origin:bottom center;animation:jsc-g2 4.5s ease-in-out infinite}
.scn-jamy-scots-captain .g3{position:absolute;bottom:20%;right:25%;width:18px;height:40px;background:#0a0a1a;border-radius:30% 30% 20% 20%/50% 50% 30% 30%;transform-origin:bottom center;animation:jsc-g3 5s ease-in-out infinite}
.scn-jamy-scots-captain .gr{position:absolute;bottom:0;left:0;right:0;height:20%;background:linear-gradient(180deg,#2a2a3a 0%,#1a1a2a 100%)}
@keyframes jsc-op{0%{opacity:.7}50%{opacity:1}100%{opacity:.8}}
@keyframes jsc-g1{0%{transform:translateX(0) rotate(0)}25%{transform:translateX(2px) rotate(2deg)}50%{transform:translateX(0) rotate(0)}75%{transform:translateX(-2px) rotate(-2deg)}100%{transform:translateX(0) rotate(0)}}
@keyframes jsc-g2{0%{transform:translateX(0) rotate(0)}30%{transform:translateX(-2px) rotate(-3deg)}60%{transform:translateX(0) rotate(0)}100%{transform:translateX(2px) rotate(3deg)}}
@keyframes jsc-g3{0%{transform:translateX(0) rotate(0)}20%{transform:translateX(3px) rotate(2deg)}40%{transform:translateX(0) rotate(0)}80%{transform:translateX(-3px) rotate(-2deg)}100%{transform:translateX(0) rotate(0)}}

/* ===== Scene: macmorris-quits-mines (tense bright interior) ===== */
.scn-macmorris-quits-mines {
  background:
    radial-gradient(ellipse at 40% 50%, #f5d5a0 0%, #c08050 30%, #5a3a1a 70%, #2a1a0a 100%),
    linear-gradient(180deg, #f0c080 0%, #a06830 60%, #4a2a0a 100%);
}
.scn-macmorris-quits-mines .tent-bg {
  position:absolute; inset:0;
  background: repeating-linear-gradient(0deg, #9a7a4a 0px, #9a7a4a 2px, #b09060 2px, #b09060 4px);
  opacity:0.25;
  animation: mm-tent-bg 10s ease-in-out infinite alternate;
}
.scn-macmorris-quits-mines .tent-pole {
  position:absolute; bottom:0; left:30%; width:8px; height:100%;
  background: linear-gradient(0deg, #4a2a0a 0%, #3a1a00 100%);
  border-radius:4px; transform-origin: bottom;
  animation: mm-pole-sway 5s ease-in-out infinite;
}
.scn-macmorris-quits-mines .table {
  position:absolute; bottom:20%; left:40%; width:100px; height:10px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3010 100%);
  border-radius:2px; box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: mm-table 8s ease-in-out infinite;
}
.scn-macmorris-quits-mines .map {
  position:absolute; bottom:22%; left:42%; width:80px; height:50px;
  background: linear-gradient(135deg, #d4b680 0%, #b09050 50%, #8a6a30 100%);
  border-radius:4px; transform: rotate(-2deg);
  animation: mm-map-rustle 12s ease-in-out infinite;
}
.scn-macmorris-quits-mines .figure {
  position:absolute; bottom:20%; left:45%; width:30px; height:60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: mm-figure-gesture 3s ease-in-out infinite;
}
.scn-macmorris-quits-mines .lantern {
  position:absolute; bottom:30%; left:60%; width:10px; height:15px;
  background: radial-gradient(circle, #ffd080 0%, #b07020 100%);
  border-radius:50%;
  box-shadow: 0 0 12px 4px rgba(255,208,128,0.6);
  animation: mm-lantern-swing 4s ease-in-out infinite;
}
.scn-macmorris-quits-mines .mine-shaft {
  position:absolute; bottom:0; left:5%; width:80px; height:70px;
  background: radial-gradient(ellipse at 50% 50%, #0a0a00 0%, #1a1a00 60%, #2a1a0a 100%);
  border-radius:0 0 50% 50% / 0 0 20% 20%;
  animation: mm-mine-glow 6s ease-in-out infinite alternate;
}
.scn-macmorris-quits-mines .trumpet {
  position:absolute; bottom:30%; left:35%; width:20px; height:8px;
  background: linear-gradient(180deg, #b08040 0%, #805020 100%);
  border-radius: 50% 50% 0 0; transform: rotate(20deg);
  animation: mm-trumpet-swing 7s ease-in-out infinite;
}
@keyframes mm-tent-bg {
  0% { opacity:0.2; }
  50% { opacity:0.35; }
  100% { opacity:0.2; }
}
@keyframes mm-pole-sway {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes mm-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes mm-map-rustle {
  0% { transform: rotate(-2deg) scale(1); }
  50% { transform: rotate(0deg) scale(1.03); }
  100% { transform: rotate(-2deg) scale(1); }
}
@keyframes mm-figure-gesture {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(3deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-4px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mm-lantern-swing {
  0% { transform: rotate(-5deg); opacity:0.9; }
  50% { transform: rotate(5deg); opacity:1; }
  100% { transform: rotate(-5deg); opacity:0.9; }
}
@keyframes mm-mine-glow {
  0% { box-shadow: inset 0 0 0 0 rgba(250,200,100,0); }
  50% { box-shadow: inset 0 0 12px 2px rgba(250,200,100,0.3); }
  100% { box-shadow: inset 0 0 0 0 rgba(250,200,100,0); }
}
@keyframes mm-trumpet-swing {
  0% { transform: rotate(20deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(20deg); }
}

/* ===== Scene: captains-quarrel-nation (tense bright interior) ===== */
.scn-captains-quarrel-nation {
  background:
    radial-gradient(ellipse at 50% 50%, #e8c898 0%, #b88555 40%, #5a3a1a 80%, #2a1a0a 100%),
    linear-gradient(180deg, #f0c080 0%, #a06830 60%, #4a2a0a 100%);
}
.scn-captains-quarrel-nation .tent-bg {
  position:absolute; inset:0;
  background: repeating-linear-gradient(0deg, #9a7a4a 0px, #9a7a4a 2px, #b09060 2px, #b09060 4px);
  opacity:0.2;
  animation: cq-tent-bg 10s ease-in-out infinite alternate;
}
.scn-captains-quarrel-nation .figure-left {
  position:absolute; bottom:20%; left:20%; width:30px; height:60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: cq-figure-left 3s ease-in-out infinite;
}
.scn-captains-quarrel-nation .figure-right {
  position:absolute; bottom:20%; right:20%; width:30px; height:60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: cq-figure-right 4s ease-in-out infinite;
}
.scn-captains-quarrel-nation .table {
  position:absolute; bottom:18%; left:30%; width:160px; height:8px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3010 100%);
  border-radius:2px; box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: cq-table 8s ease-in-out infinite;
}
.scn-captains-quarrel-nation .flag {
  position:absolute; bottom:25%; left:45%; width:12px; height:40px;
  background: linear-gradient(0deg, #b08040 0%, #d4a060 100%);
  border-radius:2px; transform-origin: bottom;
  animation: cq-flag-wave 5s ease-in-out infinite;
}
.scn-captains-quarrel-nation .lantern {
  position:absolute; bottom:30%; left:48%; width:10px; height:15px;
  background: radial-gradient(circle, #ffd080 0%, #b07020 100%);
  border-radius:50%;
  box-shadow: 0 0 12px 4px rgba(255,208,128,0.6);
  animation: cq-lantern-swing 4s ease-in-out infinite;
}
.scn-captains-quarrel-nation .shadow {
  position:absolute; bottom:10%; left:25%; width:120px; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: cq-shadow-pulse 7s ease-in-out infinite alternate;
}
@keyframes cq-tent-bg {
  0% { opacity:0.15; }
  50% { opacity:0.3; }
  100% { opacity:0.15; }
}
@keyframes cq-figure-left {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(5deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-5px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cq-figure-right {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-5px) rotate(-5deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(5px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cq-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes cq-flag-wave {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes cq-lantern-swing {
  0% { transform: rotate(-4deg); opacity:0.9; }
  50% { transform: rotate(4deg); opacity:1; }
  100% { transform: rotate(-4deg); opacity:0.9; }
}
@keyframes cq-shadow-pulse {
  0% { transform: scaleX(1); opacity:0.8; }
  50% { transform: scaleX(1.1); opacity:1; }
  100% { transform: scaleX(1); opacity:0.8; }
}

/* ===== Scene: jamy-wishes-debate (tense bright interior) ===== */
.scn-jamy-wishes-debate {
  background:
    radial-gradient(ellipse at 50% 40%, #f0d080 0%, #c0a060 40%, #5a3a1a 80%, #2a1a0a 100%),
    linear-gradient(180deg, #e8b870 0%, #a06830 60%, #4a2a0a 100%);
}
.scn-jamy-wishes-debate .tent-bg {
  position:absolute; inset:0;
  background: repeating-linear-gradient(0deg, #9a7a4a 0px, #9a7a4a 2px, #b09060 2px, #b09060 4px);
  opacity:0.2;
  animation: jw-tent-bg 10s ease-in-out infinite alternate;
}
.scn-jamy-wishes-debate .tent-pole {
  position:absolute; bottom:0; right:25%; width:8px; height:100%;
  background: linear-gradient(0deg, #4a2a0a 0%, #3a1a00 100%);
  border-radius:4px; transform-origin: bottom;
  animation: jw-pole-sway 6s ease-in-out infinite;
}
.scn-jamy-wishes-debate .figure {
  position:absolute; bottom:20%; left:40%; width:30px; height:60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: jw-figure-nod 4s ease-in-out infinite;
}
.scn-jamy-wishes-debate .hand {
  position:absolute; bottom:24%; left:50%; width:16px; height:10px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 0 0; transform-origin: bottom left;
  animation: jw-hand-open 5s ease-in-out infinite;
}
.scn-jamy-wishes-debate .book {
  position:absolute; bottom:18%; left:50%; width:30px; height:40px;
  background: linear-gradient(180deg, #c8a860 0%, #a08040 100%);
  border-radius:2px; transform: rotate(5deg);
  animation: jw-book-rustle 8s ease-in-out infinite;
}
.scn-jamy-wishes-debate .candle {
  position:absolute; bottom:28%; left:70%; width:6px; height:18px;
  background: linear-gradient(0deg, #d4a060 0%, #f0c080 100%);
  border-radius:2px;
  animation: jw-candle-flicker 3s ease-in-out infinite;
}
.scn-jamy-wishes-debate .candle-glow {
  position:absolute; bottom:30%; left:68%; width:20px; height:20px;
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 100%);
  border-radius:50%;
  animation: jw-glow-pulse 3s ease-in-out infinite alternate;
}
@keyframes jw-tent-bg {
  0% { opacity:0.15; }
  50% { opacity:0.3; }
  100% { opacity:0.15; }
}
@keyframes jw-pole-sway {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes jw-figure-nod {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(2deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes jw-hand-open {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(20deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(20deg); }
  100% { transform: rotate(0deg); }
}
@keyframes jw-book-rustle {
  0% { transform: rotate(5deg) scale(1); }
  50% { transform: rotate(2deg) scale(1.02); }
  100% { transform: rotate(5deg) scale(1); }
}
@keyframes jw-candle-flicker {
  0% { transform: scaleY(1); opacity:0.9; }
  25% { transform: scaleY(1.1); opacity:1; }
  50% { transform: scaleY(0.95); opacity:0.8; }
  75% { transform: scaleY(1.05); opacity:1; }
  100% { transform: scaleY(1); opacity:0.9; }
}
@keyframes jw-glow-pulse {
  0% { opacity:0.5; }
  50% { opacity:0.8; }
  100% { opacity:0.5; }
}

/* ===== Scene: fluellen-offended-dignity (tense bright interior) ===== */
.scn-fluellen-offended-dignity {
  background:
    radial-gradient(ellipse at 50% 50%, #e8c898 0%, #b88555 40%, #5a3a1a 80%, #2a1a0a 100%),
    linear-gradient(180deg, #f0c080 0%, #a06830 60%, #4a2a0a 100%);
}
.scn-fluellen-offended-dignity .tent-bg {
  position:absolute; inset:0;
  background: repeating-linear-gradient(0deg, #9a7a4a 0px, #9a7a4a 2px, #b09060 2px, #b09060 4px);
  opacity:0.2;
  animation: fo-tent-bg 10s ease-in-out infinite alternate;
}
.scn-fluellen-offended-dignity .tent-pole {
  position:absolute; bottom:0; left:25%; width:8px; height:100%;
  background: linear-gradient(0deg, #4a2a0a 0%, #3a1a00 100%);
  border-radius:4px; transform-origin: bottom;
  animation: fo-pole-sway 7s ease-in-out infinite;
}
.scn-fluellen-offended-dignity .figure {
  position:absolute; bottom:20%; left:35%; width:30px; height:60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: fo-figure-straighten 4s ease-in-out infinite;
}
.scn-fluellen-offended-dignity .sash {
  position:absolute; bottom:32%; left:36%; width:20px; height:6px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius:2px; transform-origin: left;
  animation: fo-sash-flutter 5s ease-in-out infinite;
}
.scn-fluellen-offended-dignity .helmet {
  position:absolute; bottom:18%; right:25%; width:25px; height:20px;
  background: linear-gradient(135deg, #b09050 0%, #7a5a30 100%);
  border-radius: 50% 50% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: fo-helmet-gleam 6s ease-in-out infinite alternate;
}
.scn-fluellen-offended-dignity .candle {
  position:absolute; bottom:28%; right:15%; width:6px; height:18px;
  background: linear-gradient(0deg, #d4a060 0%, #f0c080 100%);
  border-radius:2px;
  animation: fo-candle-flicker 3s ease-in-out infinite;
}
.scn-fluellen-offended-dignity .candle-glow {
  position:absolute; bottom:30%; right:13%; width:20px; height:20px;
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 100%);
  border-radius:50%;
  animation: fo-glow-pulse 3s ease-in-out infinite alternate;
}
@keyframes fo-tent-bg {
  0% { opacity:0.15; }
  50% { opacity:0.3; }
  100% { opacity:0.15; }
}
@keyframes fo-pole-sway {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes fo-figure-straighten {
  0% { transform: rotate(2deg); }
  50% { transform: rotate(-2deg); }
  100% { transform: rotate(2deg); }
}
@keyframes fo-sash-flutter {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(5deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes fo-helmet-gleam {
  0% { box-shadow: 0 2px 4px rgba(0,0,0,0.4); }
  50% { box-shadow: 0 2px 8px 4px rgba(200,160,80,0.3); }
  100% { box-shadow: 0 2px 4px rgba(0,0,0,0.4); }
}
@keyframes fo-candle-flicker {
  0% { transform: scaleY(1); opacity:0.9; }
  25% { transform: scaleY(1.1); opacity:1; }
  50% { transform: scaleY(0.95); opacity:0.8; }
  75% { transform: scaleY(1.05); opacity:1; }
  100% { transform: scaleY(1); opacity:0.9; }
}
@keyframes fo-glow-pulse {
  0% { opacity:0.5; }
  50% { opacity:0.8; }
  100% { opacity:0.5; }
}

/* henry-leap-wife */
.scn-hlw{background:linear-gradient(#f5e6c8,#fec,#fed),radial-gradient(ellipse at 50% 0,#fff,transparent 70%);}
.scn-hlw .a{position:absolute;inset:0 0 30% 0;background:linear-gradient(#d2b48c,#8b5a2b);}
.scn-hlw .b{position:absolute;inset:10% 5% 40% 5%;background:#b0e0e6;border:2px solid #c0c0c0;animation:hlw-b 8s ease-in-out infinite;}
.scn-hlw .c{position:absolute;bottom:30%;left:40%;width:8%;height:10%;background:#8b4513;border-radius:4px;}
.scn-hlw .d{position:absolute;bottom:30%;left:45%;width:10%;height:30%;background:#2f4f4f;border-radius:50% 50% 40% 40%/60% 60% 40% 40%;animation:hlw-d .8s ease-in-out infinite;}
.scn-hlw .e{position:absolute;bottom:30%;left:38%;width:10%;height:30%;background:#8b4513;border-radius:50% 50% 40% 40%/60% 60% 40% 40%;animation:hlw-e .8s ease-in-out infinite;}
@keyframes hlw-b{0%{opacity:.8}50%{opacity:1}100%{opacity:.9}}
@keyframes hlw-d{0%{transform:translate(0,0)}50%{transform:translate(5px,-15px) rotate(10deg)}100%{transform:translate(10px,0)}}
@keyframes hlw-e{0%{transform:translate(0,0)}50%{transform:translate(-2px,-5px) rotate(-5deg)}100%{transform:translate(-4px,0)}}

/* henry-no-cunning */
.scn-hnc{background:linear-gradient(#f5e6c8,#f8f0e0,#ffe4b5),radial-gradient(ellipse at 50% 0,#fff,transparent);}
.scn-hnc .a{position:absolute;inset:0 0 30% 0;background:linear-gradient(#c8a882,#8b6e4e);}
.scn-hnc .b{position:absolute;inset:10% 5% 40% 5%;background:#c0c0c0;border:2px solid #a9a9a9;animation:hnc-b 6s ease-in-out infinite;}
.scn-hnc .c{position:absolute;bottom:30%;left:30%;width:12%;height:8%;background:#8b4513;border-radius:4px;}
.scn-hnc .d{position:absolute;bottom:30%;left:35%;width:12%;height:30%;background:#2f4f4f;border-radius:50% 50% 40% 40%/60% 60% 40% 40%;animation:hnc-d 2s ease-in-out infinite;}
.scn-hnc .e{position:absolute;top:5%;left:50%;width:4%;height:8%;background:radial-gradient(circle,#ffd700,#ffa500);border-radius:50%;box-shadow:0 0 10px 5px #ffd700;animation:hnc-e 3s ease-in-out infinite;}
@keyframes hnc-b{0%{opacity:.7}50%{opacity:1}100%{opacity:.8}}
@keyframes hnc-d{0%{transform:translate(0,0) rotate(0)}50%{transform:translate(10px,0) rotate(15deg)}100%{transform:translate(20px,0) rotate(0)}}
@keyframes hnc-e{0%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}100%{transform:rotate(-5deg)}}

/* henry-love-plain */
.scn-hlp{background:linear-gradient(#ffe4b5,#ffd699,#ffcc80),radial-gradient(ellipse at 50% 0,#fff,transparent);}
.scn-hlp .a{position:absolute;inset:0 0 30% 0;background:linear-gradient(#c8a882,#8b6e4e);}
.scn-hlp .b{position:absolute;inset:10% 5% 40% 5%;background:radial-gradient(circle,#fff 30%,#ffe4b5 70%,transparent);filter:blur(4px);animation:hlp-b 5s ease-in-out infinite;}
.scn-hlp .c{position:absolute;bottom:30%;left:40%;width:10%;height:30%;background:#2f4f4f;border-radius:50% 50% 40% 40%/60% 60% 40% 40%;animation:hlp-c 3s ease-in-out infinite;}
.scn-hlp .d{position:absolute;bottom:30%;left:50%;width:10%;height:30%;background:#5c4033;border-radius:50% 50% 40% 40%/60% 60% 40% 40%;animation:hlp-d 3s ease-in-out infinite;}
.scn-hlp .e{position:absolute;bottom:30%;left:46%;width:4%;height:4%;background:#ff6347;border-radius:50%;box-shadow:0 0 6px 2px #ff6347;animation:hlp-e 2s ease-in-out infinite;}
@keyframes hlp-b{0%{opacity:.8}50%{opacity:1}100%{opacity:.9}}
@keyframes hlp-c{0%{transform:translate(0,0)}50%{transform:translate(2px,-5px)}100%{transform:translate(0,0)}}
@keyframes hlp-d{0%{transform:translate(0,0)}50%{transform:translate(-2px,-5px)}100%{transform:translate(0,0)}}
@keyframes hlp-e{0%{transform:scale(1)}50%{transform:scale(1.5)}100%{transform:scale(1)}}

/* henry-constancy */
.scn-hc{background:linear-gradient(#f8e0c0,#f0c8a0,#e8b080),radial-gradient(ellipse at 50% 0,#fff,transparent);}
.scn-hc .a{position:absolute;inset:0 0 30% 0;background:linear-gradient(#c8a882,#8b6e4e);}
.scn-hc .b{position:absolute;inset:5% 10% 30% 10%;background:linear-gradient(135deg,#c0c0c0,#808080);border-radius:20% 20% 0 0;animation:hc-b 10s ease-in-out infinite;}
.scn-hc .c{position:absolute;bottom:30%;left:35%;width:10%;height:30%;background:#2f4f4f;border-radius:50% 50% 40% 40%/60% 60% 40% 40%;animation:hc-c 4s ease-in-out infinite;}
.scn-hc .d{position:absolute;bottom:30%;left:55%;width:10%;height:30%;background:#5c4033;border-radius:50% 50% 40% 40%/60% 60% 40% 40%;animation:hc-d 4s ease-in-out infinite;}
.scn-hc .e{position:absolute;top:20%;left:48%;width:2%;height:2%;background:#ffd700;border-radius:50%;box-shadow:0 0 12px 4px #ffd700;animation:hc-e 3s ease-in-out infinite;}
@keyframes hc-b{0%{transform:scaleY(1)}50%{transform:scaleY(1.05)}100%{transform:scaleY(1)}}
@keyframes hc-c{0%{transform:translate(0,0)}50%{transform:translate(-3px,-2px)}100%{transform:translate(0,0)}}
@keyframes hc-d{0%{transform:translate(0,0)}50%{transform:translate(3px,-2px)}100%{transform:translate(0,0)}}
@keyframes hc-e{0%{opacity:.7}50%{opacity:1}100%{opacity:.8}}

.scn-henry-english-test {
  background:
    linear-gradient(180deg, #d4a856 0%, #c98a3a 30%, #a06a2a 60%, #7a4a1a 100%),
    radial-gradient(ellipse at 30% 40%, rgba(255, 230, 180, 0.5) 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-henry-english-test .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a12 100%);
  border-radius: 0 0 4% 4%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: het-floor 6s ease-in-out infinite alternate;
}
.scn-henry-english-test .wall-left {
  position: absolute;
  left: 0; top: 0; bottom: 35%; width: 25%;
  background: linear-gradient(135deg, #b88a4a 0%, #9a6a2a 100%);
  box-shadow: inset -5px 0 15px rgba(0,0,0,0.3);
  animation: het-wall 8s ease-in-out infinite alternate;
}
.scn-henry-english-test .window {
  position: absolute;
  top: 8%; left: 50%; width: 140px; height: 180px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 80%, #fff9e0 0%, #f0d8a0 50%, #b08050 100%);
  border: 6px solid #7a5a2a;
  border-radius: 6px 6px 8px 8px;
  box-shadow: inset 0 0 30px rgba(255,243,176,0.6), 0 4px 12px rgba(0,0,0,0.4);
  animation: het-window 5s ease-in-out infinite alternate;
}
.scn-henry-english-test .sunbeam {
  position: absolute;
  top: 10%; left: 50%; width: 180px; height: 60%;
  transform: translateX(-50%) skewX(-10deg);
  background: linear-gradient(180deg, rgba(255,245,180,0.35) 0%, rgba(255,230,150,0.1) 100%);
  filter: blur(8px);
  animation: het-beam 7s ease-in-out infinite alternate;
  z-index: 1;
}
.scn-henry-english-test .figure-king {
  position: absolute;
  bottom: 28%; left: 30%; width: 55px; height: 100px;
  background: radial-gradient(ellipse at 50% 30%, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: het-king 4s ease-in-out infinite;
}
.scn-henry-english-test .figure-king::after {
  content: '';
  position: absolute;
  top: -10px; left: 20%; width: 30px; height: 16px;
  background: radial-gradient(ellipse, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50%;
  transform: rotate(-15deg);
}
.scn-henry-english-test .figure-kate {
  position: absolute;
  bottom: 30%; right: 25%; width: 40px; height: 85px;
  background: radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, #1a120a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: het-kate 5s ease-in-out infinite;
}
.scn-henry-english-test .table {
  position: absolute;
  bottom: 28%; left: 38%; width: 120px; height: 14px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: het-table 6s ease-in-out infinite alternate;
}
.scn-henry-english-test .ornament {
  position: absolute;
  bottom: 32%; left: 45%; width: 10px; height: 18px;
  background: radial-gradient(circle, #d4a040 0%, #a07020 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 10px 2px rgba(180,120,30,0.6);
  animation: het-ornament 3s ease-in-out infinite;
}
.scn-henry-english-test .dust {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 30% 40%, rgba(255,240,200,0.06) 0%, transparent 50%);
  animation: het-dust 12s linear infinite;
}
@keyframes het-floor {
  0% { opacity: 0.85; transform: scaleY(1); }
  50% { opacity: 0.95; transform: scaleY(1.02); }
  100% { opacity: 0.85; transform: scaleY(1); }
}
@keyframes het-wall {
  0% { filter: brightness(0.95); }
  50% { filter: brightness(1.05); }
  100% { filter: brightness(0.95); }
}
@keyframes het-window {
  0% { box-shadow: inset 0 0 20px rgba(255,243,176,0.4), 0 4px 12px rgba(0,0,0,0.4); }
  50% { box-shadow: inset 0 0 40px rgba(255,243,176,0.7), 0 4px 16px rgba(0,0,0,0.5); }
  100% { box-shadow: inset 0 0 20px rgba(255,243,176,0.4), 0 4px 12px rgba(0,0,0,0.4); }
}
@keyframes het-beam {
  0% { opacity: 0.6; transform: translateX(-50%) skewX(-10deg) scaleX(1); }
  50% { opacity: 1; transform: translateX(-50%) skewX(-12deg) scaleX(1.05); }
  100% { opacity: 0.6; transform: translateX(-50%) skewX(-10deg) scaleX(1); }
}
@keyframes het-king {
  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 het-kate {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-1px) rotate(1deg); }
  60% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes het-table {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.97); }
  100% { transform: scaleY(1); }
}
@keyframes het-ornament {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(-3px) scale(1.1); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.8; }
}
@keyframes het-dust {
  0% { transform: translateY(0) rotate(0deg); opacity: 0; }
  10% { opacity: 0.3; }
  90% { opacity: 0.3; }
  100% { transform: translateY(-30px) rotate(15deg); opacity: 0; }
}

.scn-henry-leap-wife {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #e8d4b8 40%, #d4b896 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e8 0%, transparent 70%);
}
.scn-henry-leap-wife .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0dbc0 0%, #e8ccaa 100%);
}
.scn-henry-leap-wife .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c4a882 0%, #a88a66 30%, #8a6c4e 100%);
  border-radius: 8% 8% 0 0 / 12% 12% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.15);
}
.scn-henry-leap-wife .window {
  position: absolute; top: 8%; left: 12%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #fff8e8 0%, #f0dbc0 100%);
  border: 4px solid #8a6c4e;
  border-radius: 4px;
  box-shadow: inset 0 0 30px 10px rgba(255,248,232,0.6), 0 0 40px 15px rgba(255,248,232,0.3);
  animation: hlw-window 6s ease-in-out infinite alternate;
}
.scn-henry-leap-wife .stool {
  position: absolute; bottom: 32%; left: 35%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #b09068 0%, #8a6c4e 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: hlw-stool 4s ease-in-out infinite;
}
.scn-henry-leap-wife .henry-leap {
  position: absolute; bottom: 30%; left: 28%; width: 34px; height: 60px;
  background: linear-gradient(180deg, #4a2c1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 60% 100%;
  animation: hlw-leap 2.5s ease-in-out infinite;
}
.scn-henry-leap-wife .lady-watch {
  position: absolute; bottom: 30%; right: 20%; width: 30px; height: 54px;
  background: linear-gradient(180deg, #e8c4a0 0%, #c49870 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hlw-lady 5s ease-in-out infinite;
}
.scn-henry-leap-wife .shadow {
  position: absolute; bottom: 28%; left: 32%; width: 50px; height: 6px;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(3px);
  animation: hlw-shadow 2.5s ease-in-out infinite;
}
@keyframes hlw-window {
  0% { opacity: 0.7; box-shadow: inset 0 0 20px 5px rgba(255,248,232,0.4), 0 0 25px 8px rgba(255,248,232,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 40px 15px rgba(255,248,232,0.8), 0 0 60px 20px rgba(255,248,232,0.5); }
  100% { opacity: 0.8; box-shadow: inset 0 0 25px 8px rgba(255,248,232,0.5), 0 0 35px 12px rgba(255,248,232,0.3); }
}
@keyframes hlw-stool {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes hlw-leap {
  0% { transform: translateX(-8px) rotate(-12deg) scaleY(0.95); }
  40% { transform: translateX(20px) rotate(8deg) scaleY(1.05); }
  60% { transform: translateX(30px) rotate(-5deg) scaleY(1.02); }
  100% { transform: translateX(40px) rotate(0deg) scaleY(0.95); }
}
@keyframes hlw-lady {
  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 hlw-shadow {
  0% { transform: translateX(-4px) scaleX(1); opacity: 0.3; }
  40% { transform: translateX(10px) scaleX(1.4); opacity: 0.6; }
  60% { transform: translateX(15px) scaleX(1.2); opacity: 0.5; }
  100% { transform: translateX(20px) scaleX(1); opacity: 0.3; }
}

.scn-henry-no-cunning {
  background:
    linear-gradient(180deg, #f0dbc0 0%, #e8ccaa 50%, #d4b892 100%),
    radial-gradient(ellipse at 70% 40%, #fff4e0 0%, transparent 60%);
}
.scn-henry-no-cunning .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ecd6b8 0%, #dcc4a0 100%);
}
.scn-henry-no-cunning .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b89870 0%, #9a7856 30%, #7a5a3a 100%);
  border-radius: 6% 6% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 6px 16px rgba(0,0,0,0.12);
}
.scn-henry-no-cunning .arch {
  position: absolute; top: 5%; left: 60%; width: 30%; height: 70%;
  background: linear-gradient(180deg, #a0805e 0%, #8a6c4e 100%);
  border-radius: 50% 50% 8% 8% / 60% 60% 12% 12%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
  animation: hnc-arch 12s ease-in-out infinite alternate;
}
.scn-henry-no-cunning .henry-stand {
  position: absolute; bottom: 30%; left: 25%; width: 36px; height: 62px;
  background: linear-gradient(180deg, #4a2c1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: hnc-henry 4s ease-in-out infinite;
}
.scn-henry-no-cunning .kate-smile {
  position: absolute; bottom: 32%; right: 22%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #e8c4a0 0%, #c49870 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hnc-kate 5s ease-in-out infinite;
}
.scn-henry-no-cunning .banner {
  position: absolute; top: 12%; left: 40%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: hnc-banner 8s ease-in-out infinite alternate;
}
.scn-henry-no-cunning .horse-head {
  position: absolute; bottom: 38%; left: 50%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2c1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.25);
  animation: hnc-horse 6s ease-in-out infinite;
}
@keyframes hnc-arch {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 0.9; transform: scaleY(1.03); }
  100% { opacity: 0.7; transform: scaleY(0.98); }
}
@keyframes hnc-henry {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(4px) rotate(6deg) scaleX(0.95); }
  60% { transform: translateX(-2px) rotate(-3deg) scaleX(1.02); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hnc-kate {
  0% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-2px) rotate(4deg); }
  70% { transform: translateY(1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hnc-banner {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(6px) rotate(3deg); }
  100% { transform: translateX(-6px) rotate(-3deg); }
}
@keyframes hnc-horse {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-3px) rotate(-2deg); }
  60% { transform: translateY(1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-henry-love-plain {
  background: linear-gradient(180deg, #fff8e7 0%, #f5e6c8 100%), radial-gradient(ellipse at 60% 50%, #fffef0 0%, transparent 50%);
}
.scn-henry-love-plain .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e8ddc5 0%, #d6c9b0 100%); }
.scn-henry-love-plain .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #a58c6f 0%, #8b755a 100%); }
.scn-henry-love-plain .window { position:absolute; top:12%; left:20%; width:30%; height:45%; background: linear-gradient(135deg, #fff8e0 0%, #ffeedb 100%); border-radius: 4px; box-shadow: 0 0 30px 10px rgba(255,235,180,0.4); animation: hl-window-glow 6s ease-in-out infinite; }
.scn-henry-love-plain .soldier-body { position:absolute; bottom:40%; left:52%; width:30px; height:60px; background: linear-gradient(90deg, #5a4a3a 0%, #3d3025 100%); transform: translateX(-50%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: hl-body-breathe 4s ease-in-out infinite; }
.scn-henry-love-plain .soldier-head { position:absolute; bottom:72%; left:50%; width:18px; height:18px; background: #4a3a2a; border-radius: 50%; transform: translateX(-50%); animation: hl-head-turn 5s ease-in-out infinite; }
.scn-henry-love-plain .shadow { position:absolute; bottom:38%; left:48%; width:60px; height:4px; background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(2px); animation: hl-shadow-pulse 8s ease-in-out infinite; }
.scn-henry-love-plain .dust { position:absolute; width:4px; height:4px; background: #ffeec0; border-radius: 50%; filter: blur(1px); }
.scn-henry-love-plain .dust-a { top:25%; left:15%; animation: hl-drift-a 12s linear infinite; }
.scn-henry-love-plain .dust-b { top:35%; left:30%; animation: hl-drift-b 20s linear infinite; animation-delay: -5s; }

@keyframes hl-window-glow {
  0% { box-shadow: 0 0 20px 5px rgba(255,235,180,0.3); opacity: .9; }
  50% { box-shadow: 0 0 40px 15px rgba(255,235,180,0.6); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px rgba(255,235,180,0.35); opacity: .95; }
}
@keyframes hl-body-breathe {
  0% { transform: translateX(-50%) translateY(0px); }
  50% { transform: translateX(-50%) translateY(-1px); }
  100% { transform: translateX(-50%) translateY(0px); }
}
@keyframes hl-head-turn {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes hl-shadow-pulse {
  0% { opacity: 0.15; transform: scaleX(1); }
  50% { opacity: 0.1; transform: scaleX(0.9); }
  100% { opacity: 0.15; transform: scaleX(1); }
}
@keyframes hl-drift-a {
  0% { transform: translate(0, 0); }
  50% { transform: translate(20px, -8px); }
  100% { transform: translate(40px, 0); }
}
@keyframes hl-drift-b {
  0% { transform: translate(0, 0); }
  50% { transform: translate(-15px, 5px); }
  100% { transform: translate(-30px, 0); }
}

.scn-henry-constancy {
  background: linear-gradient(180deg, #fff5e0 0%, #f5deb3 100%), radial-gradient(ellipse at 70% 30%, #fffff0 0%, transparent 60%);
}
.scn-henry-constancy .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ebdbba 0%, #d4c4a3 100%); }
.scn-henry-constancy .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #b89a7a 0%, #9c7e5e 100%); }
.scn-henry-constancy .window { position:absolute; top:10%; right:15%; width:25%; height:50%; background: linear-gradient(135deg, #fff8e0 0%, #ffeedb 100%); border-radius: 4px; box-shadow: 0 0 30px 10px rgba(255,235,180,0.4); animation: hc-window-glow 6s ease-in-out infinite; }
.scn-henry-constancy .left-figure { position:absolute; bottom:45%; left:30%; width:30px; height:70px; background: linear-gradient(90deg, #4a3a2a 0%, #2f251a 100%); transform: translateX(-50%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: hc-left-sway 5s ease-in-out infinite; }
.scn-henry-constancy .right-figure { position:absolute; bottom:47%; right:30%; width:32px; height:65px; background: linear-gradient(90deg, #5a4a3a 0%, #3d3025 100%); transform: translateX(50%); border-radius: 40% 40% 20% 20% / 50% 50% 40% 40%; animation: hc-right-sway 6s ease-in-out infinite; }
.scn-henry-constancy .disc { position:absolute; bottom:52%; left:50%; width:20px; height:20px; background: radial-gradient(circle, #ffd060 0%, #b08040 100%); border-radius: 50%; transform: translate(-50%, 0); box-shadow: 0 0 15px 5px rgba(255,208,96,0.6); animation: hc-disc-float 4s ease-in-out infinite; }
.scn-henry-constancy .disc-glow { position:absolute; bottom:48%; left:50%; width:50px; height:50px; background: radial-gradient(circle, rgba(255,208,96,0.2) 0%, transparent 70%); border-radius: 50%; transform: translate(-50%, 0); animation: hc-glow-pulse 4s ease-in-out infinite; }
.scn-henry-constancy .shadow-left { position:absolute; bottom:43%; left:28%; width:40px; height:4px; background: rgba(0,0,0,0.12); border-radius: 50%; filter: blur(2px); animation: hc-shadow-pulse 8s ease-in-out infinite; }
.scn-henry-constancy .shadow-right { position:absolute; bottom:45%; right:28%; width:40px; height:4px; background: rgba(0,0,0,0.12); border-radius: 50%; filter: blur(2px); animation: hc-shadow-pulse 8s ease-in-out infinite; animation-delay: -4s; }

@keyframes hc-window-glow {
  0% { box-shadow: 0 0 20px 5px rgba(255,235,180,0.3); opacity: .9; }
  50% { box-shadow: 0 0 40px 15px rgba(255,235,180,0.6); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px rgba(255,235,180,0.35); opacity: .95; }
}
@keyframes hc-left-sway {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes hc-right-sway {
  0% { transform: translateX(50%) rotate(1deg); }
  50% { transform: translateX(50%) rotate(-2deg); }
  100% { transform: translateX(50%) rotate(1deg); }
}
@keyframes hc-disc-float {
  0% { transform: translate(-50%, 0) scale(1); }
  50% { transform: translate(-50%, -5px) scale(1.1); }
  100% { transform: translate(-50%, 0) scale(1); }
}
@keyframes hc-glow-pulse {
  0% { transform: translate(-50%, 0) scale(1); opacity: 0.3; }
  50% { transform: translate(-50%, -5px) scale(1.3); opacity: 0.5; }
  100% { transform: translate(-50%, 0) scale(1); opacity: 0.3; }
}
@keyframes hc-shadow-pulse {
  0% { opacity: 0.12; transform: scaleX(1); }
  50% { opacity: 0.08; transform: scaleX(0.9); }
  100% { opacity: 0.12; transform: scaleX(1); }
}

.scn-henry-english-test {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d9b896 40%, #b58e6a 100%),
    radial-gradient(ellipse at 30% 20%, #fff8e0 0%, transparent 60%),
    linear-gradient(90deg, #e8d4b4 0%, #f0dec0 50%, #e8d4b4 100%);
}
.scn-henry-english-test .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #e8d4b4 0%, #d4bc9c 100%);
  box-shadow: inset 0 -12px 20px rgba(0,0,0,0.08);
}
.scn-henry-english-test .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b58e6a 0%, #8a6e4e 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.2);
  animation: hen-floor 6s ease-in-out infinite alternate;
}
.scn-henry-english-test .window {
  position: absolute; top: 8%; left: 20%; width: 30%; height: 45%;
  background: linear-gradient(135deg, #fef8e0 0%, #f5e6c8 60%, #e0c8a8 100%);
  border: 6px solid #6b4f32;
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 40px rgba(255, 248, 224, 0.6), 0 4px 12px rgba(0,0,0,0.3);
  animation: hen-window 4s ease-in-out infinite alternate;
}
.scn-henry-english-test .table {
  position: absolute; bottom: 24%; left: 35%; width: 40%; height: 6%;
  background: linear-gradient(180deg, #7a5e3e 0%, #5a3e2e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-henry-english-test .figure-henry {
  position: absolute; bottom: 22%; left: 20%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hen-henry 5s ease-in-out infinite;
}
.scn-henry-english-test .figure-kate {
  position: absolute; bottom: 22%; right: 20%; width: 11%; height: 38%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 50% 50% 45% 45% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: hen-kate 6s ease-in-out infinite reverse;
}
.scn-henry-english-test .candle {
  position: absolute; bottom: 18%; left: 48%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 80%, #b09070 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 0 12px 4px #ffd080;
  animation: hen-candle 2s ease-in-out infinite alternate;
}
.scn-henry-english-test .glow {
  position: absolute; bottom: 17%; left: 46%; width: 8%; height: 15%;
  background: radial-gradient(circle, rgba(255, 208, 128, 0.5) 0%, transparent 70%);
  pointer-events: none;
  animation: hen-glow 3s ease-in-out infinite alternate;
}
.scn-henry-english-test .curtain {
  position: absolute; top: 0; right: 0; width: 20%; height: 70%;
  background: linear-gradient(135deg, #b04030 0%, #7a2a20 100%);
  border-radius: 0 0 0 30%;
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.3);
  animation: hen-curtain 8s ease-in-out infinite alternate;
}
@keyframes hen-floor { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes hen-window { 0% { box-shadow: inset 0 0 30px rgba(255, 248, 224, 0.4), 0 4px 12px rgba(0,0,0,0.3); } 50% { box-shadow: inset 0 0 60px rgba(255, 248, 224, 0.8), 0 4px 16px rgba(0,0,0,0.2); } 100% { box-shadow: inset 0 0 40px rgba(255, 248, 224, 0.6), 0 4px 12px rgba(0,0,0,0.3); } }
@keyframes hen-henry { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(0.5deg); } 50% { transform: translateX(0) translateY(0) rotate(1deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(-0.5deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes hen-kate { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(-2px) translateY(-2px) rotate(1deg); } 66% { transform: translateX(1px) translateY(0) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes hen-candle { 0% { height: 8%; transform: scaleY(1); } 50% { height: 9%; transform: scaleY(1.05); } 100% { height: 8%; transform: scaleY(1); } }
@keyframes hen-glow { 0% { opacity: 0.6; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes hen-curtain { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-henry-love-plain {
  background: 
    linear-gradient(180deg, #f4d08c 0%, #e8b470 30%, #c8783a 70%, #7a4a2a 100%),
    radial-gradient(ellipse at 40% 20%, rgba(255, 215, 150, 0.4) 0%, transparent 60%);
}
.scn-henry-love-plain .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #e8c88a 0%, #d4a85a 100%);
  box-shadow: inset 0 0 40px rgba(200, 120, 60, 0.3);
}
.scn-henry-love-plain .window-frame {
  position: absolute;
  top: 5%;
  left: 15%;
  width: 35%;
  height: 55%;
  background: linear-gradient(135deg, #fef0d0 0%, #f4d08c 100%);
  border: 8px solid #6a3a1a;
  border-radius: 4px 4px 8px 8px;
  box-shadow: inset 0 0 20px rgba(255, 200, 100, 0.6), 0 4px 12px rgba(0,0,0,0.3);
  animation: hlp-glow 3s ease-in-out infinite alternate;
}
.scn-henry-love-plain .sunbeam {
  position: absolute;
  top: 10%;
  left: 20%;
  width: 25%;
  height: 70%;
  background: linear-gradient(135deg, rgba(255, 235, 180, 0.5) 0%, rgba(255, 200, 100, 0.1) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(8px);
  animation: hlp-sunbeam 5s ease-in-out infinite alternate;
}
.scn-henry-love-plain .figure {
  position: absolute;
  bottom: 8%;
  left: 40%;
  width: 10%;
  height: 45%;
  background: linear-gradient(135deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hlp-figure 4s ease-in-out infinite;
}
.scn-henry-love-plain .mirror {
  position: absolute;
  right: 12%;
  top: 20%;
  width: 18%;
  height: 40%;
  background: linear-gradient(180deg, #f0d0a0 0%, #d4a85a 100%);
  border: 6px solid #5a3a1a;
  border-radius: 50% / 60% 60% 40% 40%;
  box-shadow: inset 0 0 30px rgba(255, 200, 100, 0.3), 0 8px 20px rgba(0,0,0,0.4);
  animation: hlp-mirror 6s ease-in-out infinite alternate;
}
.scn-henry-love-plain .dust {
  position: absolute;
  width: 4px;
  height: 4px;
  background: #ffe8b0;
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(255, 230, 180, 0.8);
  top: 30%;
  left: 25%;
  opacity: 0.6;
  animation: hlp-dust 8s ease-in-out infinite;
}
.scn-henry-love-plain .dust:nth-child(6) {
  top: 45%;
  left: 30%;
  width: 3px;
  height: 3px;
  animation-delay: 2s;
  animation-duration: 10s;
}
.scn-henry-love-plain .table {
  position: absolute;
  bottom: 0;
  left: 30%;
  width: 30%;
  height: 8%;
  background: linear-gradient(180deg, #6a3a1a 0%, #4a2a0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
}
@keyframes hlp-glow {
  0% { opacity: 0.85; box-shadow: inset 0 0 20px rgba(255,200,100,0.4), 0 4px 12px rgba(0,0,0,0.3); }
  50% { opacity: 1; box-shadow: inset 0 0 40px rgba(255,220,150,0.8), 0 4px 16px rgba(0,0,0,0.4); }
  100% { opacity: 0.9; box-shadow: inset 0 0 25px rgba(255,200,100,0.5), 0 4px 12px rgba(0,0,0,0.3); }
}
@keyframes hlp-sunbeam {
  0% { opacity: 0.4; transform: scaleX(0.95) translateY(0); }
  50% { opacity: 0.7; transform: scaleX(1.05) translateY(-5px); }
  100% { opacity: 0.5; transform: scaleX(0.98) translateY(3px); }
}
@keyframes hlp-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes hlp-mirror {
  0% { background: linear-gradient(180deg, #f0d0a0, #d4a85a); }
  50% { background: linear-gradient(180deg, #f8e0b0, #e0b870); }
  100% { background: linear-gradient(180deg, #f0d0a0, #d4a85a); }
}
@keyframes hlp-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0.4; }
  50% { transform: translate(15px, -20px) scale(1.3); opacity: 0.8; }
  100% { transform: translate(30px, -40px) scale(0.8); opacity: 0.2; }
}

.scn-henry-no-cunning {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e0c9a0 100%),
    radial-gradient(ellipse at 50% 0%, rgba(255, 240, 200, 0.6) 0%, transparent 60%);
  overflow: hidden;
}
.scn-henry-no-cunning .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #eedcc0 0%, #d4b888 100%);
  box-shadow: inset 0 20px 40px rgba(120, 80, 40, 0.15);
}
.scn-henry-no-cunning .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8b6f47 0%, #5c462d 100%);
  border-top: 2px solid #7a5f3b;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.3);
}
.scn-henry-no-cunning .window-frame {
  position: absolute; top: 10%; left: 65%; width: 22%; height: 40%;
  background: linear-gradient(135deg, #9c7a5c 0%, #7a5f3b 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-henry-no-cunning .window-glass {
  position: absolute; top: 12%; left: 66.5%; width: 19%; height: 36%;
  background: linear-gradient(180deg, rgba(220,230,255,0.9) 0%, rgba(200,215,240,0.7) 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
  animation: hnc-glass 6s ease-in-out infinite alternate;
}
.scn-henry-no-cunning .window-light {
  position: absolute; top: 12%; left: 66.5%; width: 19%; height: 36%;
  background: linear-gradient(135deg, rgba(255,235,180,0.5) 0%, transparent 80%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  transform: translateX(-10%) translateY(5%) scale(1.2);
  animation: hnc-light 8s ease-in-out infinite alternate;
  filter: blur(4px);
}
.scn-henry-no-cunning .figure {
  position: absolute; bottom: 28%; left: 40%; width: 12%; height: 45%;
  background: radial-gradient(ellipse 60% 40% at 50% 25%, #4a3c31 0%, #352a22 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hnc-figure 3s ease-in-out infinite;
  box-shadow: 0 -4px 6px rgba(0,0,0,0.2);
}
.scn-henry-no-cunning .hat {
  position: absolute; bottom: 68%; left: 39%; width: 14%; height: 6%;
  background: #c8553d;
  border-radius: 40% 40% 0 0 / 80% 80% 0 0;
  transform-origin: 50% 100%;
  animation: hnc-hat 1.6s ease-in-out infinite alternate;
  filter: drop-shadow(0 2px 3px rgba(0,0,0,0.3));
}
.scn-henry-no-cunning .speech-bubble {
  position: absolute; top: 15%; left: 30%; width: 25%; height: 18%;
  background: rgba(255,250,240,0.95);
  border-radius: 40% 40% 40% 40% / 50% 50% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2), inset 0 -2px 4px #d4b888;
  transform: scale(0.9);
  animation: hnc-bubble 4s ease-in-out infinite;
}
.scn-henry-no-cunning .speech-bubble::after {
  content: '';
  position: absolute; bottom: -12%; left: 20%; width: 20%; height: 20%;
  background: rgba(255,250,240,0.95);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  transform: rotate(10deg);
  box-shadow: 0 4px 4px -2px #d4b888;
}

@keyframes hnc-glass {
  0% { opacity: 0.85; filter: brightness(0.95); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.75; filter: brightness(0.9); }
}
@keyframes hnc-light {
  0% { transform: translateX(-10%) translateY(0%) scale(1.1) rotate(-2deg); opacity: 0.5; }
  50% { transform: translateX(-5%) translateY(3%) scale(1.25) rotate(1deg); opacity: 0.8; }
  100% { transform: translateX(-15%) translateY(-2%) scale(1.15) rotate(-1deg); opacity: 0.6; }
}
@keyframes hnc-figure {
  0% { transform: rotate(-3deg) scaleY(1); }
  25% { transform: rotate(2deg) scaleY(1.02); }
  50% { transform: rotate(-1deg) scaleY(0.98); }
  75% { transform: rotate(4deg) scaleY(1.01); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes hnc-hat {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-8%) rotate(5deg); }
}
@keyframes hnc-bubble {
  0% { transform: scale(0.85); opacity: 0.6; }
  30% { transform: scale(1.05); opacity: 1; }
  60% { transform: scale(0.95); opacity: 0.9; }
  100% { transform: scale(0.9); opacity: 0.7; }
}

.scn-henry-constancy { background: linear-gradient(145deg, #f8eed0 0%, #e2ca90 50%, #c9a96e 100%), radial-gradient(circle at 25% 20%, #fff8dc 0%, transparent 60%); position:relative; overflow:hidden; width:100%; height:100%; }
.scn-henry-constancy .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,0,0.15) 100%); }
.scn-henry-constancy .floor { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #b8860b 0%, #8b6508 50%, #5c3a1e 100%); border-top: 2px solid rgba(0,0,0,0.2); }
.scn-henry-constancy .window { position:absolute; left:8%; top:12%; width:28%; height:45%; background: linear-gradient(180deg, #fff8dc 0%, #f0e68c 80%, #daa520 100%); border: 4px solid #8b6508; border-radius: 2% 2% 4% 4%; box-shadow: inset 0 0 30px rgba(255,255,224,0.5); }
.scn-henry-constancy .light-beam { position:absolute; left:10%; bottom:18%; width:60%; height:40%; background: linear-gradient(135deg, rgba(255,255,200,0.4) 0%, transparent 80%); transform-origin: left bottom; transform: skewX(-20deg) rotate(5deg); animation: hc-lightray 5s ease-in-out infinite alternate; }
.scn-henry-constancy .curtain-left { position:absolute; left:6%; top:12%; width:6%; height:45%; background: linear-gradient(180deg, #702243 0%, #5e1a1d 100%); border-radius: 0 10% 10% 0; animation: hc-curtain 8s ease-in-out infinite; transform-origin: top center; }
.scn-henry-constancy .curtain-right { position:absolute; left:34%; top:12%; width:6%; height:45%; background: linear-gradient(180deg, #702243 0%, #5e1a1d 100%); border-radius: 10% 0 0 10%; animation: hc-curtain 8s ease-in-out infinite; animation-delay: -4s; transform-origin: top center; }
.scn-henry-constancy .table { position:absolute; right:5%; bottom:18%; width:35%; height:10%; background: linear-gradient(180deg, #a0522d 0%, #8b4513 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -3px 6px rgba(0,0,0,0.3); }
.scn-henry-constancy .figure { position:absolute; bottom:18%; left:50%; width:24px; height:60px; background: #2a1a0e; border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hc-figure 6s ease-in-out infinite; }
.scn-henry-constancy .candle { position:absolute; right:20%; bottom:28%; width:8px; height:14px; background: linear-gradient(180deg, #ffd700, #ffa500); border-radius: 2px; box-shadow: 0 0 8px 2px #ffb300; animation: hc-candleglow 4s ease-in-out infinite alternate; }
@keyframes hc-lightray { 0% { opacity: 0.3; transform: skewX(-20deg) rotate(5deg); } 50% { opacity: 0.7; transform: skewX(-18deg) rotate(6deg); } 100% { opacity: 0.5; transform: skewX(-22deg) rotate(4deg); } }
@keyframes hc-curtain { 0% { transform: skewX(0deg) scaleY(1); } 50% { transform: skewX(2deg) scaleY(0.98); } 100% { transform: skewX(0deg) scaleY(1); } }
@keyframes hc-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hc-candleglow { 0% { box-shadow: 0 0 6px 2px #ffb300; opacity: 0.8; } 50% { box-shadow: 0 0 14px 5px #ffb300; opacity: 1; } 100% { box-shadow: 0 0 8px 3px #ffb300; opacity: 0.85; } }

.scn-henry-leap-wife {
  background:
    linear-gradient(180deg, #fdf4e3 0%, #f9e4b7 50%, #e0c9a3 100%),
    radial-gradient(ellipse at 80% 90%, #d4a373 0%, transparent 50%),
    linear-gradient(0deg, #c7956d 0%, #fdf4e3 40%);
  position: relative;
  overflow: hidden;
}
.scn-henry-leap-wife .bg-wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #fdf4e3 0%, #f0dbb5 100%);
  border-bottom: 8px solid #c7956d;
  box-shadow: inset 0 100px 100px -60px rgba(255, 255, 255, 0.6);
}
.scn-henry-leap-wife .bg-window {
  position: absolute;
  top: 8%;
  right: 12%;
  width: 70px;
  height: 90px;
  background: radial-gradient(ellipse at 50% 50%, #fff8e7 0%, #b8d4e3 80%);
  border: 6px solid #8c6a49;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 0 30px #fff, 0 0 50px rgba(255, 255, 200, 0.8);
  animation: hlw-window 5s ease-in-out infinite alternate;
}
.scn-henry-leap-wife .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #d4a373 0%, #a67c52 100%);
  border-radius: 20% 0 0 0 / 40% 0 0 0;
  box-shadow: inset 0 20px 30px rgba(0, 0, 0, 0.1);
}
.scn-henry-leap-wife .henry {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 50px;
  height: 80px;
  background: radial-gradient(ellipse at 50% 30%, #8aa08a 0%, #4a5e4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hlw-leap 2s ease-in-out infinite;
  z-index: 10;
}
.scn-henry-leap-wife .henry::before {
  content: '';
  position: absolute;
  top: 20%;
  left: -15px;
  width: 20px;
  height: 8px;
  background: #4a5e4a;
  border-radius: 10px 0 0 10px;
  transform-origin: right center;
  animation: hlw-arm-l 2s ease-in-out infinite;
}
.scn-henry-leap-wife .henry::after {
  content: '';
  position: absolute;
  top: 15%;
  right: -15px;
  width: 20px;
  height: 8px;
  background: #4a5e4a;
  border-radius: 0 10px 10px 0;
  transform-origin: left center;
  animation: hlw-arm-r 2s ease-in-out infinite;
}
.scn-henry-leap-wife .cape {
  position: absolute;
  bottom: 28%;
  left: 24%;
  width: 30px;
  height: 45px;
  background: #c8553d;
  border-radius: 0 50% 50% 50% / 0 60% 40% 50%;
  transform-origin: top center;
  animation: hlw-cape 2s ease-in-out infinite;
  z-index: 5;
}
.scn-henry-leap-wife .wife {
  position: absolute;
  bottom: 20%;
  left: 55%;
  width: 45px;
  height: 45px;
  background: radial-gradient(ellipse at 50% 30%, #d4a373 0%, #a67c52 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -10px 20px 8px rgba(0, 0, 0, 0.08);
  animation: hlw-duck 2s ease-in-out infinite;
  z-index: 10;
}
.scn-henry-leap-wife .wife::before {
  content: '';
  position: absolute;
  bottom: -5px;
  left: -8px;
  right: -8px;
  height: 15px;
  background: #b87878;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  z-index: -1;
}
.scn-henry-leap-wife .helmet {
  position: absolute;
  bottom: 55%;
  left: 15%;
  width: 25px;
  height: 20px;
  background: #6a7e6a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -4px 0 #3a4e3a, 0 0 10px rgba(0, 0, 0, 0.2);
  animation: hlw-helmet 2s ease-in-out infinite;
  z-index: 20;
}
.scn-henry-leap-wife .helmet::before {
  content: '';
  position: absolute;
  top: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 10px;
  height: 15px;
  background: #c8553d;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}
.scn-henry-leap-wife .shadow {
  position: absolute;
  bottom: 18%;
  left: 28%;
  width: 60px;
  height: 12px;
  background: rgba(0, 0, 0, 0.15);
  border-radius: 50%;
  filter: blur(4px);
  animation: hlw-shadow 2s ease-in-out infinite;
  z-index: 1;
}
.scn-henry-leap-wife .dust {
  position: absolute;
  top: 15%;
  right: 25%;
  width: 4px;
  height: 4px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 20px 30px 0 -1px rgba(255, 255, 255, 0.6), -10px 60px 0 -1px rgba(255, 255, 255, 0.8), 40px 100px 0 0 rgba(255, 255, 255, 0.5);
  filter: blur(1px);
  animation: hlw-float 12s linear infinite;
}
.scn-henry-leap-wife .dust:nth-child(2) {
  top: 25%;
  right: 10%;
  animation-delay: -6s;
  animation-duration: 15s;
}
@keyframes hlw-window {
  0% { box-shadow: inset 0 0 30px #fff, 0 0 50px rgba(255, 255, 200, 0.8); }
  50% { box-shadow: inset 0 0 60px #fff, 0 0 80px rgba(255, 255, 200, 0.9); }
  100% { box-shadow: inset 0 0 30px #fff, 0 0 50px rgba(255, 255, 200, 0.8); }
}
@keyframes hlw-leap {
  0% { transform: rotate(10deg) translateY(0) scaleY(1); }
  25% { transform: rotate(15deg) translateY(-20px) scaleY(1.1); }
  50% { transform: rotate(0deg) translateY(-35px) scaleY(1); }
  75% { transform: rotate(-10deg) translateY(-10px) scaleY(0.95); }
  100% { transform: rotate(5deg) translateY(0) scaleY(1); }
}
@keyframes hlw-cape {
  0% { transform: rotate(15deg) scaleX(1); }
  50% { transform: rotate(35deg) scaleX(1.3); }
  100% { transform: rotate(15deg) scaleX(1); }
}
@keyframes hlw-duck {
  0% { transform: scaleY(0.6) translateY(10px); }
  25% { transform: scaleY(0.5) translateY(15px); }
  50% { transform: scaleY(0.8) translateY(5px); }
  75% { transform: scaleY(0.5) translateY(15px); }
  100% { transform: scaleY(0.6) translateY(10px); }
}
@keyframes hlw-helmet {
  0% { transform: translate(0, 0) rotate(0deg); opacity: 1; }
  25% { transform: translate(-20px, -40px) rotate(60deg); opacity: 1; }
  50% { transform: translate(-40px, -60px) rotate(150deg); opacity: 0.9; }
  75% { transform: translate(-60px, -30px) rotate(240deg); opacity: 0.5; }
  100% { transform: translate(-80px, 10px) rotate(300deg); opacity: 0; }
}
@keyframes hlw-arm-l {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(-60deg); }
  100% { transform: rotate(-20deg); }
}
@keyframes hlw-arm-r {
  0% { transform: rotate(30deg); }
  50% { transform: rotate(70deg); }
  100% { transform: rotate(30deg); }
}
@keyframes hlw-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.3; }
  25% { transform: scaleX(0.8) translateX(-5px); opacity: 0.15; }
  50% { transform: scaleX(1.5) translateX(10px); opacity: 0.1; }
  75% { transform: scaleX(1.2) translateX(5px); opacity: 0.2; }
  100% { transform: scaleX(1) translateX(0); opacity: 0.3; }
}
@keyframes hlw-float {
  0% { transform: translateY(0) translateX(0) rotate(0deg); opacity: 0; }
  33% { transform: translateY(-20px) translateX(10px) rotate(120deg); opacity: 1; }
  66% { transform: translateY(-40px) translateX(-5px) rotate(240deg); opacity: 0.8; }
  100% { transform: translateY(-60px) translateX(15px) rotate(360deg); opacity: 0; }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.sail { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-bill-discussion {
  background: linear-gradient(180deg, #f5f0e0 0%, #e0d6c0 50%, #c8b8a0 100%);
  position: relative;
  overflow: hidden;
}
.scn-bill-discussion .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #f7f2e8 0%, #ede0cc 60%, #d4c4ac 100%);
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.05);
}
.scn-bill-discussion .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #9c8769 0%, #7a6850 40%, #5c4c3a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  border-top: 2px solid #b8a080;
}
.scn-bill-discussion .table {
  position: absolute; bottom: 22%; left: 20%; right: 20%; height: 6%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5740 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: bill-table 12s ease-in-out infinite alternate;
}
.scn-bill-discussion .document {
  position: absolute; bottom: 28%; left: 38%; width: 16%; height: 8%;
  background: linear-gradient(135deg, #fcf8f0 0%, #e8e0d0 100%);
  border: 1px solid #b0a090;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: bill-doc 5s ease-in-out infinite;
  transform: rotate(-5deg);
}
.scn-bill-discussion .figure-left {
  position: absolute; bottom: 18%; left: 28%; width: 12%; height: 28%;
  background: linear-gradient(135deg, #3a3a4a 0%, #1e1e2a 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: bill-figure-l 4s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-bill-discussion .figure-right {
  position: absolute; bottom: 18%; right: 28%; width: 14%; height: 30%;
  background: linear-gradient(225deg, #2a2a3a 0%, #14141e 100%);
  border-radius: 40% 50% 40% 40% / 50% 60% 40% 40%;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
  animation: bill-figure-r 4.5s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-bill-discussion .window {
  position: absolute; top: 8%; left: 12%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 60%, rgba(255,255,240,0.8) 0%, rgba(200,190,170,0.2) 60%, transparent 100%);
  border-radius: 4px;
  box-shadow: 0 0 60px 20px rgba(255,255,240,0.3), inset 0 0 30px rgba(255,255,200,0.5);
  animation: bill-window 8s ease-in-out infinite alternate;
}
.scn-bill-discussion .lamp {
  position: absolute; top: 12%; right: 15%; width: 4%; height: 8%;
  background: radial-gradient(circle, #ffe0a0 0%, #d0a050 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px rgba(255,200,100,0.5);
  animation: bill-lamp 3s ease-in-out infinite alternate;
}
@keyframes bill-table {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes bill-doc {
  0%, 100% { transform: rotate(-5deg) translateY(0); opacity: 1; }
  25% { transform: rotate(-3deg) translateY(-1px); opacity: 0.95; }
  75% { transform: rotate(-7deg) translateY(0); opacity: 1; }
}
@keyframes bill-figure-l {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes bill-figure-r {
  0%, 100% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-3px) rotate(-2deg); }
}
@keyframes bill-window {
  0% { opacity: 0.7; box-shadow: 0 0 40px 10px rgba(255,255,240,0.2); }
  50% { opacity: 1; box-shadow: 0 0 80px 30px rgba(255,255,240,0.4); }
  100% { opacity: 0.8; box-shadow: 0 0 50px 15px rgba(255,255,240,0.25); }
}
@keyframes bill-lamp {
  0%, 100% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
}

.scn-presence-chamber {
  background: linear-gradient(180deg, #f2e8d0 0%, #d4c0a0 50%, #a89070 100%);
  position: relative;
  overflow: hidden;
}
.scn-presence-chamber .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #f5ede0 0%, #e0d0b8 60%, #c0a888 100%);
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.08);
}
.scn-presence-chamber .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8a080 0%, #8a6e50 40%, #604c34 100%);
  border-top: 4px solid #c8b098;
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.3);
}
.scn-presence-chamber .throne {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); width: 28%; height: 45%;
  background: radial-gradient(ellipse at 50% 100%, #c8a060 0%, #8a6e3a 60%, #5a4220 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4), inset 0 4px 10px rgba(255,230,150,0.3);
  animation: prc-throne 10s ease-in-out infinite alternate;
}
.scn-presence-chamber .kneeling-figure {
  position: absolute; bottom: 20%; left: 36%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #10101a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: prc-kneel 6s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-presence-chamber .curtain-left {
  position: absolute; top: 0; left: 0; width: 15%; height: 100%;
  background: linear-gradient(90deg, #8b3a3a 0%, #a0503a 40%, #8b3a3a 100%);
  border-right: 2px solid #6a2828;
  box-shadow: 2px 0 10px rgba(0,0,0,0.3);
  animation: prc-curtain-l 15s ease-in-out infinite alternate;
  transform-origin: top left;
}
.scn-presence-chamber .curtain-right {
  position: absolute; top: 0; right: 0; width: 15%; height: 100%;
  background: linear-gradient(270deg, #8b3a3a 0%, #a0503a 40%, #8b3a3a 100%);
  border-left: 2px solid #6a2828;
  box-shadow: -2px 0 10px rgba(0,0,0,0.3);
  animation: prc-curtain-r 15s ease-in-out infinite alternate;
  transform-origin: top right;
  animation-delay: -7.5s;
}
.scn-presence-chamber .step {
  position: absolute; bottom: 22%; left: 35%; right: 35%; height: 8%;
  background: linear-gradient(180deg, #b89868 0%, #8a6e40 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: prc-step 12s ease-in-out infinite alternate;
}
.scn-presence-chamber .crown {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%); width: 10%; height: 12%;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c89040 60%, #8a6020 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(255,200,100,0.5);
  animation: prc-crown 4s ease-in-out infinite alternate;
}
.scn-presence-chamber .light-beam {
  position: absolute; top: 0; left: 40%; right: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(255,255,240,0.4) 0%, rgba(255,255,240,0.05) 60%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 70% 100%, 30% 100%);
  animation: prc-beam 8s ease-in-out infinite alternate;
}
@keyframes prc-throne {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
}
@keyframes prc-kneel {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(-3deg); }
}
@keyframes prc-curtain-l {
  0%, 100% { transform: scaleX(1) scaleY(1); }
  50% { transform: scaleX(0.95) scaleY(1.02); }
}
@keyframes prc-curtain-r {
  0%, 100% { transform: scaleX(1) scaleY(1); }
  50% { transform: scaleX(0.95) scaleY(1.02); }
}
@keyframes prc-step {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1; }
}
@keyframes prc-crown {
  0%, 100% { transform: translateX(-50%) scale(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scale(1.03); opacity: 1; }
}
@keyframes prc-beam {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}

.scn-prologue-chorus { background: linear-gradient(180deg, #f5d6a8 0%, #e8b87a 40%, #c48a5a 100%), radial-gradient(ellipse at 50% 20%, #ffebc0 0%, transparent 70%); }
.scn-prologue-chorus .curtain-left { position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(90deg, #8b3a2a 0%, #5e1a1d 30%, #4a1417 100%); border-radius: 0 20% 20% 0; box-shadow: inset -8px 0 20px rgba(0,0,0,.5); animation: pc-curtain-l 12s ease-in-out infinite; }
.scn-prologue-chorus .curtain-right { position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(270deg, #8b3a2a 0%, #5e1a1d 30%, #4a1417 100%); border-radius: 20% 0 0 20%; box-shadow: inset 8px 0 20px rgba(0,0,0,.5); animation: pc-curtain-r 12s ease-in-out infinite; }
.scn-prologue-chorus .stage-floor { position:absolute; bottom:0; left:30%; right:30%; height:20%; background: linear-gradient(180deg, #c48a5a 0%, #a06a3a 100%); border-radius: 50% 50% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,.2); }
.scn-prologue-chorus .fire-glow { position:absolute; bottom:15%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #ffd060 0%, #ff9a40 40%, transparent 70%); box-shadow: 0 0 40px 20px #ff8c30; animation: pc-fire 1.8s ease-in-out infinite alternate; }
.scn-prologue-chorus .muse-figure { position:absolute; bottom:17%; left:50%; width:28px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pc-muse 5s ease-in-out infinite; }
.scn-prologue-chorus .spark-a { position:absolute; bottom:35%; left:45%; width:4px; height:4px; background: #ffd060; border-radius:50%; box-shadow: 0 0 6px 2px #ffb040; animation: pc-spark 2s ease-in-out infinite; }
.scn-prologue-chorus .spark-b { position:absolute; bottom:30%; left:55%; width:3px; height:3px; background: #ffb040; border-radius:50%; box-shadow: 0 0 4px 1px #ff8c30; animation: pc-spark 2.4s ease-in-out infinite 0.6s; }
@keyframes pc-curtain-l { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-10px); } }
@keyframes pc-curtain-r { 0%,100% { transform: translateX(0); } 50% { transform: translateX(10px); } }
@keyframes pc-fire { 0% { transform: translateX(-50%) scaleY(1); opacity: .9; } 50% { transform: translateX(-50%) scaleY(1.05) scaleX(0.95); opacity: 1; } 100% { transform: translateX(-50%) scaleY(0.9); opacity: .85; } }
@keyframes pc-muse { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes pc-spark { 0% { transform: translateY(0) scale(1); opacity: 1; } 50% { transform: translateY(-30px) scale(0.5) rotate(40deg); opacity: 0.3; } 100% { transform: translateY(-60px) scale(0) rotate(90deg); opacity: 0; } }

.scn-prologue-final-supplication { background: linear-gradient(180deg, #edcba0 0%, #c89a6a 50%, #a07040 100%), radial-gradient(ellipse at 50% 80%, #e0b080 0%, transparent 60%); }
.scn-prologue-final-supplication .hall-bg { position:absolute; top:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #c8a070 0%, #b08050 100%); border-radius: 0 0 30% 30%; }
.scn-prologue-final-supplication .floor-tile { position:absolute; bottom:0; left:0; right:0; height:30%; background: repeating-linear-gradient(90deg, #a07040 0px, #a07040 20px, #8a6030 20px, #8a6030 40px); }
.scn-prologue-final-supplication .throne-shape { position:absolute; bottom:30%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4020 0%, #4a2a10 100%); border-radius: 10% 10% 40% 40%; box-shadow: 0 8px 20px rgba(0,0,0,.4); }
.scn-prologue-final-supplication .kneeling-figure { position:absolute; bottom:28%; left:40%; width:30px; height:45px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pf-kneel 6s ease-in-out infinite; }
.scn-prologue-final-supplication .light-beam { position:absolute; top:0; left:50%; width:60px; height:60%; transform:translateX(-50%); background: linear-gradient(180deg, rgba(255,235,180,0.4) 0%, rgba(255,200,120,0.05) 100%); filter: blur(8px); animation: pf-beam 8s ease-in-out infinite alternate; }
.scn-prologue-final-supplication .prayer-hands { position:absolute; bottom:32%; left:37%; width:12px; height:16px; transform:translateX(-50%); background: #3a2a1a; border-radius: 40% 40% 20% 20%; animation: pf-hands 4s ease-in-out infinite; }
@keyframes pf-kneel { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.95) translateY(-2px); } }
@keyframes pf-beam { 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.95); } }
@keyframes pf-hands { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }

.scn-ante-chamber-urgency { background: linear-gradient(180deg, #d9b080 0%, #b08050 40%, #7a5030 100%), radial-gradient(ellipse at 30% 20%, #c09060 0%, transparent 70%); }
.scn-ante-chamber-urgency .chamber-wall { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #a07040 0%, #805030 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.3); }
.scn-ante-chamber-urgency .desk-top { position:absolute; bottom:15%; left:20%; right:20%; height:25%; background: linear-gradient(180deg, #6a4020 0%, #4a2a10 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,.4); }
.scn-ante-chamber-urgency .scroll-pile { position:absolute; bottom:25%; left:45%; width:60px; height:30px; background: linear-gradient(180deg, #c8a070 0%, #a08050 100%); border-radius: 20% 20% 10% 10%; animation: ac-scroll 3s ease-in-out infinite; }
.scn-ante-chamber-urgency .urgent-hand { position:absolute; bottom:28%; left:30%; width:16px; height:30px; background: #3a2a1a; border-radius: 40% 40% 20% 20%; transform: rotate(15deg); animation: ac-hand 2s ease-in-out infinite; }
.scn-ante-chamber-urgency .lamp-light { position:absolute; bottom:40%; left:25%; width:8px; height:10px; background: radial-gradient(circle, #ffd060 0%, #ff8c30 50%, transparent); border-radius:50%; box-shadow: 0 0 30px 10px #ff8c30; animation: ac-lamp 2.4s ease-in-out infinite alternate; }
.scn-ante-chamber-urgency .shadow-accent { position:absolute; top:0; left:0; width:100%; height:100%; background: radial-gradient(ellipse at 70% 80%, transparent 40%, rgba(0,0,0,.4) 100%); animation: ac-shadow 5s ease-in-out infinite; }
@keyframes ac-scroll { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px) rotate(-2deg); } }
@keyframes ac-hand { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(25deg) translateX(6px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes ac-lamp { 0% { box-shadow: 0 0 20px 5px #ff8c30; opacity: .8; } 50% { box-shadow: 0 0 40px 15px #ffb040; opacity: 1; } 100% { box-shadow: 0 0 25px 8px #ff8c30; opacity: .9; } }
@keyframes ac-shadow { 0% { opacity: .5; } 50% { opacity: .7; } 100% { opacity: .4; } }

.scn-king-praise { background: linear-gradient(180deg, #f4dab0 0%, #dbb588 30%, #b88a5a 100%), radial-gradient(ellipse at 50% 10%, #ffe8c0 0%, transparent 60%); }
.scn-king-praise .divine-bg { position:absolute; top:0; left:0; right:0; bottom:40%; background: linear-gradient(180deg, #ffe8c0 0%, transparent 100%); }
.scn-king-praise .halo-glow { position:absolute; top:15%; left:50%; width:80px; height:80px; transform:translateX(-50%); background: radial-gradient(circle, #ffd060 0%, #ffb040 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px #ffb040; animation: kp-halo 4s ease-in-out infinite alternate; }
.scn-king-praise .king-silhouette { position:absolute; bottom:15%; left:50%; width:38px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kp-king 7s ease-in-out infinite; }
.scn-king-praise .sceptre { position:absolute; bottom:25%; left:52%; width:4px; height:40px; background: #b88a5a; border-radius: 50% 50% 20% 20%; transform: rotate(10deg); box-shadow: 0 0 6px #ffd060; animation: kp-sceptre 3s ease-in-out infinite; }
.scn-king-praise .throne-back { position:absolute; bottom:15%; left:38%; width:60px; height:80px; background: linear-gradient(180deg, #6a4020 0%, #4a2a10 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.4); }
.scn-king-praise .radiant-ray { position:absolute; top:0; left:50%; width:40px; height:90%; transform:translateX(-50%); background: linear-gradient(180deg, rgba(255,235,180,0.3) 0%, transparent 100%); filter: blur(12px); animation: kp-ray 12s ease-in-out infinite alternate; }
@keyframes kp-halo { 0% { transform: translateX(-50%) scale(1); opacity: .8; } 50% { transform: translateX(-50%) scale(1.1); opacity: 1; } 100% { transform: translateX(-50%) scale(0.95); opacity: .9; } }
@keyframes kp-king { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg) translateY(-3px); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes kp-sceptre { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-4px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes kp-ray { 0% { opacity: .3; transform: translateX(-50%) scaleY(1); } 50% { opacity: .6; transform: translateX(-50%) scaleY(1.05); } 100% { opacity: .4; transform: translateX(-50%) scaleY(0.95); } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.cloud-storm { position: absolute; pointer-events: none; }
.figure-king-kate { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
/* ---------- Scene: chorus-and-church ---------- */
.scn-chorus-and-church {
  background: linear-gradient(180deg, #2e1b0e 0%, #1f1108 40%, #0f0802 100%),
              radial-gradient(ellipse at 50% 30%, #4a2a14 0%, transparent 70%);
}
.scn-chorus-and-church .stage {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3e2516 0%, #2a180e 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.7);
}
.scn-chorus-and-chorus .back-curtain {
  position: absolute; top: 0; left: 0; right: 0; bottom: 45%;
  background: linear-gradient(90deg, #4a2a14 0%, #3a1c0a 30%, #2e1406 70%, #4a2a14 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  animation: ch-curtain 12s ease-in-out infinite alternate;
}
.scn-chorus-and-church .arch {
  position: absolute; top: 15%; left: 20%; right: 20%; bottom: 50%;
  background: radial-gradient(ellipse at 50% 100%, #5a3a20 0%, transparent 70%);
  border: 4px solid #7a5a30;
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 30px #7a5a30;
  animation: ch-arch 6s ease-in-out infinite alternate;
}
.scn-chorus-and-church .chorus-figure {
  position: absolute; bottom: 38%; left: 50%; width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1008 0%, #0f0802 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: ch-figure 4s ease-in-out infinite;
}
.scn-chorus-and-church .light-beam {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(200,170,100,.15) 0%, transparent 100%);
  filter: blur(6px);
  animation: ch-beam 5s ease-in-out infinite alternate;
}
.scn-chorus-and-church .floor-mark {
  position: absolute; bottom: 8%; left: 35%; width: 30%; height: 2px;
  background: #8a6a40;
  box-shadow: 0 0 12px #8a6a40;
  animation: ch-mark 3s ease-in-out infinite;
}
.scn-chorus-and-church .spotlight {
  position: absolute; top: 0; left: 42%; width: 16%; height: 55%;
  background: radial-gradient(ellipse at 50% 100%, rgba(220,200,150,.12) 0%, transparent 70%);
  animation: ch-spot 7s ease-in-out infinite alternate;
}
@keyframes ch-curtain { 0% { opacity: .8; transform: scaleY(1); } 50% { opacity: .95; transform: scaleY(1.02); } 100% { opacity: .7; transform: scaleY(.98); } }
@keyframes ch-arch { 0% { opacity: .7; transform: scale(.98); } 50% { opacity: 1; transform: scale(1); } 100% { opacity: .8; transform: scale(.99); } }
@keyframes ch-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-4px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes ch-beam { 0% { opacity: .2; transform: skewX(-3deg); } 50% { opacity: .4; transform: skewX(3deg); } 100% { opacity: .25; transform: skewX(-1deg); } }
@keyframes ch-mark { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(.95); } }
@keyframes ch-spot { 0% { opacity: .15; transform: scaleY(.9); } 50% { opacity: .3; transform: scaleY(1); } 100% { opacity: .2; transform: scaleY(.95); } }

/* ---------- Scene: king-consults-clergy ---------- */
.scn-king-consults-clergy {
  background: linear-gradient(180deg, #1f1812 0%, #2e221c 30%, #1a1310 100%),
              radial-gradient(ellipse at 50% 40%, #4a3520 0%, transparent 80%);
}
.scn-king-consults-clergy .throne {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a30 0%, #3a281a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
  animation: kcc-throne 8s ease-in-out infinite alternate;
}
.scn-king-consults-clergy .king {
  position: absolute; bottom: 28%; left: 47%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1e16 0%, #0f0c08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 12px #8a6a40;
  animation: kcc-king 5s ease-in-out infinite;
}
.scn-king-consults-clergy .clergy-a {
  position: absolute; bottom: 25%; left: 30%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform: rotate(5deg);
  animation: kcc-clergy 6s ease-in-out infinite;
}
.scn-king-consults-clergy .clergy-b {
  position: absolute; bottom: 25%; right: 30%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform: rotate(-5deg);
  animation: kcc-clergy 6s ease-in-out infinite;
  animation-delay: -3s;
}
.scn-king-consults-clergy .stained-glass {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1c0e 40%, #2a1006 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 30px rgba(200,150,80,.3);
  animation: kcc-glass 10s ease-in-out infinite alternate;
}
.scn-king-consults-clergy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120c 100%);
  border-radius: 40% 40% 0 0 / 10% 10% 0 0;
}
.scn-king-consults-clergy .candle-bracket {
  position: absolute; bottom: 40%; left: 15%; width: 6px; height: 20px;
  background: #4a3a20;
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 14px 4px #b08040;
  animation: kcc-candle 3s ease-in-out infinite alternate;
}
@keyframes kcc-throne { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-4px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes kcc-king { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(6px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes kcc-clergy { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-3px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes kcc-glass { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes kcc-candle { 0% { transform: scaleY(.9); box-shadow: 0 0 10px 2px #b08040; } 50% { transform: scaleY(1.1); box-shadow: 0 0 20px 6px #e0b060; } 100% { transform: scaleY(1); box-shadow: 0 0 14px 4px #b08040; } }

/* ---------- Scene: item-tennis-balls ---------- */
.scn-item-tennis-balls {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e14 40%, #0f0802 100%),
              radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 60%);
}
.scn-item-tennis-balls .throne {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a24 0%, #2a1a0e 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
  animation: tbt-throne 7s ease-in-out infinite alternate;
}
.scn-item-tennis-balls .king {
  position: absolute; bottom: 28%; left: 47%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1e1410 0%, #0c0806 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 10px #4a2a14;
  animation: tbt-king 4s ease-in-out infinite;
}
.scn-item-tennis-balls .ambassador-a {
  position: absolute; bottom: 22%; left: 25%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a1c12 0%, #120e0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform: rotate(8deg);
  animation: tbt-amb 5s ease-in-out infinite;
}
.scn-item-tennis-balls .ambassador-b {
  position: absolute; bottom: 22%; right: 25%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a1c12 0%, #120e0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform: rotate(-8deg);
  animation: tbt-amb 5s ease-in-out infinite;
  animation-delay: -2.5s;
}
.scn-item-tennis-balls .tennis-ball {
  position: absolute; bottom: 35%; left: 60%; width: 16px; height: 16px;
  background: radial-gradient(circle, #c88040 0%, #a06030 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px #c08040, 0 0 60px 16px rgba(192,128,64,.4);
  animation: tbt-ball 2s ease-in-out infinite alternate;
}
.scn-item-tennis-balls .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2e1e12 0%, #1a100a 100%);
  border-radius: 30% 30% 0 0 / 10% 10% 0 0;
}
.scn-item-tennis-balls .pillar {
  position: absolute; bottom: 20%; left: 10%; width: 12px; height: 80%;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a3a24 50%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 8px #1a100a;
  animation: tbt-pillar 9s ease-in-out infinite alternate;
}
@keyframes tbt-throne { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-5px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes tbt-king { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes tbt-amb { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(4deg) translateY(0); } }
@keyframes tbt-ball { 0% { transform: scale(.9) rotate(0deg); opacity: .8; } 50% { transform: scale(1.2) rotate(180deg); opacity: 1; } 100% { transform: scale(1) rotate(360deg); opacity: .9; } }
@keyframes tbt-pillar { 0% { transform: scaleY(.98); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }

/* ---------- Scene: lowlife-and-treason ---------- */
.scn-lowlife-and-treason {
  background: linear-gradient(180deg, #4a4a4a 0%, #3a3a3a 40%, #2a2a2a 100%),
              radial-gradient(ellipse at 50% 0%, #5a5a5a 0%, transparent 80%);
}
.scn-lowlife-and-treason .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  animation: lwt-sky 14s ease-in-out infinite alternate;
}
.scn-lowlife-and-treason .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 20% 20% 0 0 / 5% 5% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.4);
}
.scn-lowlife-and-treason .wall-left {
  position: absolute; bottom: 30%; left: 0; width: 30%; height: 70%;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0e 100%);
  border-right: 3px solid #1a0e06;
  box-shadow: inset 0 0 20px #1a0e06;
  animation: lwt-wall 8s ease-in-out infinite alternate;
}
.scn-lowlife-and-treason .wall-right {
  position: absolute; bottom: 30%; right: 0; width: 30%; height: 70%;
  background: linear-gradient(90deg, #2a1a0e 0%, #3a2a1a 100%);
  border-left: 3px solid #1a0e06;
  box-shadow: inset 0 0 20px #1a0e06;
  animation: lwt-wall 8s ease-in-out infinite alternate;
  animation-delay: -4s;
}
.scn-lowlife-and-treason .pistol-fig {
  position: absolute; bottom: 18%; left: 25%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #1e1812 0%, #0c0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-10deg);
  animation: lwt-fig 4s ease-in-out infinite;
}
.scn-lowlife-and-treason .nym-fig {
  position: absolute; bottom: 18%; left: 45%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #1e1812 0%, #0c0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(5deg);
  animation: lwt-fig 4s ease-in-out infinite;
  animation-delay: -1.3s;
}
.scn-lowlife-and-treason .bardolph-fig {
  position: absolute; bottom: 18%; right: 28%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1e1812 0%, #0c0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(8deg);
  animation: lwt-fig 4s ease-in-out infinite;
  animation-delay: -2.7s;
}
@keyframes lwt-sky { 0% { opacity: .6; } 50% { opacity: .8; } 100% { opacity: .65; } }
@keyframes lwt-wall { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(.98); } }
@keyframes lwt-fig { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(1deg); } }

/* treason-conspiracy */
.scn-treason-conspiracy {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 60%, #221812 100%), radial-gradient(ellipse at 30% 50%, #3a2a22 0%, transparent 80%);
}
.scn-treason-conspiracy .walls {
  position:absolute; inset:0; 
  background: linear-gradient(135deg, #2a1f1a 0%, #1a1210 100%);
  animation: tc-walls 12s ease-in-out infinite alternate;
}
.scn-treason-conspiracy .table {
  position:absolute; bottom:15%; left:20%; right:20%; height:20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.6);
  animation: tc-table 8s ease-in-out infinite;
}
.scn-treason-conspiracy .document {
  position:absolute; bottom:32%; left:38%; width:80px; height:60px;
  background: linear-gradient(135deg, #cba876 0%, #b89456 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: tc-doc 6s ease-in-out infinite;
}
.scn-treason-conspiracy .candle-glow {
  position:absolute; bottom:42%; left:48%; width:10px; height:10px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 60%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(255,208,128,0.6), 0 0 80px 30px rgba(192,128,64,0.3);
  animation: tc-candle 3s ease-in-out infinite alternate;
}
.scn-treason-conspiracy .figure-king {
  position:absolute; bottom:18%; left:28%; width:30px; height:70px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-king 5s ease-in-out infinite;
}
.scn-treason-conspiracy .figure-consp {
  position:absolute; bottom:18%; right:28%; width:28px; height:65px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0a08 100%);
  border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-consp 5s ease-in-out infinite 0.5s;
}
.scn-treason-conspiracy .shadow-bar {
  position:absolute; bottom:10%; left:0; right:0; height:15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.8) 100%);
  animation: tc-shadow 10s ease-in-out infinite alternate;
}
@keyframes tc-walls { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes tc-table { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.01) } }
@keyframes tc-doc { 0% { transform: rotate(0deg) translate(0,0); opacity:0.9 } 50% { transform: rotate(2deg) translate(1px,-1px); opacity:1 } 100% { transform: rotate(-1deg) translate(-1px,0); opacity:0.85 } }
@keyframes tc-candle { 0% { box-shadow: 0 0 30px 12px rgba(255,208,128,0.5); opacity:0.8 } 50% { box-shadow: 0 0 50px 20px rgba(255,208,128,0.7); opacity:1 } 100% { box-shadow: 0 0 35px 14px rgba(255,208,128,0.55); opacity:0.9 } }
@keyframes tc-king { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 75% { transform: translateX(-3px) translateY(1px) rotate(-1deg) } }
@keyframes tc-consp { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(-3px) translateY(1px) rotate(-1deg) } 75% { transform: translateX(5px) translateY(-1px) rotate(1deg) } }
@keyframes tc-shadow { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.7 } }

/* tavern-farewell-french */
.scn-tavern-farewell-french {
  background: linear-gradient(180deg, #2d2118 0%, #1f1510 60%, #2a1d14 100%), radial-gradient(ellipse at 70% 20%, #3d2a1d 0%, transparent 70%);
}
.scn-tavern-farewell-french .tavern-wall {
  position:absolute; inset:0;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a10 50%, #3a2a1a 100%);
  animation: tf-wall 15s ease-in-out infinite alternate;
}
.scn-tavern-farewell-french .tankard {
  position:absolute; bottom:20%; left:60%; width:40px; height:50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 0 0 40% 40% / 30% 30% 60% 60%;
  box-shadow: inset 0 -8px 10px rgba(0,0,0,0.4);
  animation: tf-tankard 6s ease-in-out infinite;
}
.scn-tavern-farewell-french .tankard::after { /* foam */
  content:''; position:absolute; top:-8px; left:5px; width:30px; height:12px;
  background:radial-gradient(ellipse, #e8d4b0 0%, #c8b090 70%);
  border-radius:50%;
}
.scn-tavern-farewell-french .lantern {
  position:absolute; top:10%; left:20%; width:16px; height:24px;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c08040 70%);
  border-radius: 4px; box-shadow: 0 0 30px 10px rgba(255,200,80,0.5);
  animation: tf-lantern 4s ease-in-out infinite alternate;
}
.scn-tavern-farewell-french .figure-pistol {
  position:absolute; bottom:18%; left:20%; width:35px; height:75px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tf-pistol 5s ease-in-out infinite;
}
.scn-tavern-farewell-french .figure-hostess {
  position:absolute; bottom:18%; left:40%; width:30px; height:68px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tf-hostess 5s ease-in-out infinite 0.3s;
}
.scn-tavern-farewell-french .letter {
  position:absolute; bottom:30%; right:15%; width:40px; height:30px;
  background: linear-gradient(135deg, #c8b090 0%, #a89070 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: tf-letter 8s ease-in-out infinite;
}
.scn-tavern-farewell-french .ale-spill {
  position:absolute; bottom:15%; left:55%; width:60px; height:8px;
  background: linear-gradient(90deg, #b89a7a 0%, transparent 100%);
  border-radius: 50%; filter: blur(2px);
  animation: tf-spill 10s linear infinite;
}
@keyframes tf-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes tf-tankard { 0%,100% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(3deg) translateY(2px) } }
@keyframes tf-lantern { 0% { box-shadow: 0 0 20px 8px rgba(255,200,80,0.4); opacity:0.8 } 50% { box-shadow: 0 0 35px 12px rgba(255,200,80,0.6); opacity:1 } 100% { box-shadow: 0 0 22px 9px rgba(255,200,80,0.45); opacity:0.9 } }
@keyframes tf-pistol { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 30% { transform: translateX(6px) translateY(-2px) rotate(2deg) } 70% { transform: translateX(-4px) translateY(1px) rotate(-1deg) } }
@keyframes tf-hostess { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 30% { transform: translateX(-5px) translateY(1px) rotate(-2deg) } 70% { transform: translateX(4px) translateY(-1px) rotate(1deg) } }
@keyframes tf-letter { 0% { transform: rotate(0deg) } 25% { transform: rotate(4deg) } 75% { transform: rotate(-3deg) } 100% { transform: rotate(0deg) } }
@keyframes tf-spill { 0% { transform: translateX(0) scaleX(1); opacity:0.6 } 50% { transform: translateX(10px) scaleX(1.2); opacity:0.4 } 100% { transform: translateX(0) scaleX(1); opacity:0.6 } }

/* french-threat-fleet */
.scn-french-threat-fleet {
  background: linear-gradient(180deg, #2c3a42 0%, #1a2228 40%, #0e161c 100%), radial-gradient(ellipse at 50% 80%, #3a4a52 0%, transparent 70%);
}
.scn-french-threat-fleet .fleet-sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #3a4a52 0%, #1a2228 100%);
  animation: ft-sky 20s ease-in-out infinite alternate;
}
.scn-french-threat-fleet .fleet-sea {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #2a3840 0%, #1a2830 100%);
  border-radius: 60% 40% 0 0 / 20% 10% 0 0;
  animation: ft-sea 8s ease-in-out infinite alternate;
}
.scn-french-threat-fleet .ship-1 {
  position:absolute; bottom:22%; left:20%; width:100px; height:30px;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ft-ship1 6s ease-in-out infinite;
}
.scn-french-threat-fleet .ship-2 {
  position:absolute; bottom:18%; right:10%; width:80px; height:25px;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a10 100%);
  border-radius: 10% 10% 30% 30% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ft-ship2 6s ease-in-out infinite 3s;
}
.scn-french-threat-fleet .sail-1 {
  position:absolute; bottom:32%; left:25%; width:50px; height:60px;
  background: radial-gradient(ellipse at 50% 30%, #c8b8a0 0%, #a09078 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: ft-sail1 5s ease-in-out infinite;
}
.scn-french-threat-fleet .sail-2 {
  position:absolute; bottom:28%; right:15%; width:40px; height:50px;
  background: radial-gradient(ellipse at 50% 30%, #b8a890 0%, #988870 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: ft-sail2 5s ease-in-out infinite 2.5s;
}
.scn-french-threat-fleet .cloud-a {
  position:absolute; top:10%; left:80%; width:120px; height:20px;
  background: rgba(80,90,100,0.6); border-radius: 50%;
  filter: blur(8px); animation: ft-cloud-a 40s linear infinite;
}
.scn-french-threat-fleet .cloud-b {
  position:absolute; top:20%; left:10%; width:150px; height:15px;
  background: rgba(60,70,80,0.5); border-radius: 50%;
  filter: blur(6px); animation: ft-cloud-b 50s linear infinite -10s;
}
@keyframes ft-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ft-sea { 0% { transform: translateY(0) } 50% { transform: translateY(4px) scaleY(1.02) } 100% { transform: translateY(-2px) scaleY(0.98) } }
@keyframes ft-ship1 { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(6px) rotate(2deg) } }
@keyframes ft-ship2 { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-5px) rotate(-1deg) } }
@keyframes ft-sail1 { 0%,100% { transform: skewX(0deg) } 50% { transform: skewX(4deg) } }
@keyframes ft-sail2 { 0%,100% { transform: skewX(0deg) } 50% { transform: skewX(-3deg) } }
@keyframes ft-cloud-a { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }
@keyframes ft-cloud-b { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }

/* siege-and-lesson */
.scn-siege-and-lesson {
  background: linear-gradient(180deg, #e8d4b0 0%, #c8b090 40%, #a89070 100%), radial-gradient(ellipse at 60% 10%, #f0e0c0 0%, transparent 60%);
}
.scn-siege-and-lesson .sky-bright {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #d0c0a0 0%, #b8a088 100%);
  animation: sl-sky 15s ease-in-out infinite alternate;
}
.scn-siege-and-lesson .castle-wall {
  position:absolute; bottom:10%; left:0; width:35%; top:20%;
  background: linear-gradient(180deg, #9a887a 0%, #7a6a5a 100%);
  border-radius: 0 20% 0 0 / 0 10% 0 0;
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.3);
  animation: sl-wall 12s ease-in-out infinite;
}
.scn-siege-and-lesson .ram {
  position:absolute; bottom:15%; left:10%; width:60px; height:40px;
  background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  border: 2px solid #3a2a1a;
  animation: sl-ram 4s ease-in-out infinite;
}
.scn-siege-and-lesson .soldier {
  position:absolute; bottom:12%; right:25%; width:25px; height:60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sl-soldier 6s ease-in-out infinite;
}
.scn-siege-and-lesson .banner {
  position:absolute; bottom:25%; right:15%; width:60px; height:80px;
  background: linear-gradient(180deg, #b87858 0%, #a05a3a 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  animation: sl-banner 4s ease-in-out infinite alternate;
}
.scn-siege-and-lesson .dust {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: radial-gradient(ellipse at 30% 100%, rgba(200,180,150,0.6) 0%, transparent 80%);
  filter: blur(4px);
  animation: sl-dust 8s linear infinite;
}
.scn-siege-and-lesson .flag-pole {
  position:absolute; bottom:10%; left:70%; width:4px; height:100px;
  background: #4a3a2a;
  border-radius: 2px;
  animation: sl-pole 12s ease-in-out infinite;
}
@keyframes sl-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes sl-wall { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes sl-ram { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(8px) rotate(3deg) } }
@keyframes sl-soldier { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 30% { transform: translateX(-4px) translateY(-1px) rotate(1deg) } 70% { transform: translateX(5px) translateY(1px) rotate(-1deg) } }
@keyframes sl-banner { 0% { transform: skewX(0deg) } 50% { transform: skewX(6deg) } 100% { transform: skewX(-4deg) } }
@keyframes sl-dust { 0% { opacity:0.4; transform: translateX(0) } 50% { opacity:0.8; transform: translateX(10px) } 100% { opacity:0.4; transform: translateX(0) } }
@keyframes sl-pole { 0% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }

/* Scene 1: crispin-speech (dawn, warm) */
.scn-crispin-speech {
  background:
    linear-gradient(180deg, #fec89a 0%, #ffb5a7 20%, #f9c5d1 40%, #a8dadc 70%, #457b9d 100%),
    radial-gradient(ellipse at 50% 30%, #f3d5b5 0%, transparent 60%);
}
.scn-crispin-speech .sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #fec89a 0%, #ffb5a7 40%, transparent 70%);
  animation: cs-sky 20s ease-in-out infinite alternate;
}
.scn-crispin-speech .sun {
  position: absolute; top: 8%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fef0d5 0%, #f9c5d1 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 80px 20px #fef0d580;
  animation: cs-sun 25s ease-in-out infinite alternate;
}
.scn-crispin-speech .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6b705c 0%, #2b2d42 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,.5);
  animation: cs-hills 18s ease-in-out infinite alternate;
}
.scn-crispin-speech .tent-left {
  position: absolute; bottom: 28%; left: 15%; width: 80px; height: 90px;
  background: linear-gradient(135deg, #c9ada7 0%, #4a4e69 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%); transform: skewX(-5deg);
  animation: cs-tent 6s ease-in-out infinite;
}
.scn-crispin-speech .tent-right {
  position: absolute; bottom: 30%; right: 20%; width: 70px; height: 80px;
  background: linear-gradient(135deg, #9a8c98 0%, #22223b 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%); transform: skewX(5deg);
  animation: cs-tent 6s ease-in-out infinite 1s;
}
.scn-crispin-speech .figure-henry {
  position: absolute; bottom: 26%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2b2d42 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: cs-figure 4s ease-in-out infinite;
}
.scn-crispin-speech .figure-court {
  position: absolute; bottom: 28%; left: 50%; width: 15px; height: 40px;
  background: linear-gradient(180deg, #4a4e69 0%, #2b2d42 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: cs-figure 4s ease-in-out infinite -1s;
}
.scn-crispin-speech .banner {
  position: absolute; bottom: 32%; left: 42%; width: 25px; height: 35px;
  background: linear-gradient(180deg, #e07a5f 0%, #c8553d 100%);
  clip-path: polygon(0 0, 100% 20%, 100% 80%, 0 100%);
  animation: cs-flag 3s ease-in-out infinite alternate;
}
.scn-crispin-speech .ground-mist {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, rgba(168,218,220,0.6) 0%, transparent 100%);
  filter: blur(8px); animation: cs-mist 30s ease-in-out infinite alternate;
}
@keyframes cs-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes cs-sun { 0% { transform: translate(0, 0) scale(1); box-shadow: 0 0 60px 15px #fef0d580 } 50% { transform: translate(10px, -5px) scale(1.1); box-shadow: 0 0 100px 30px #fef0d5b0 } 100% { transform: translate(-5px, 0) scale(0.95); box-shadow: 0 0 70px 20px #fef0d580 } }
@keyframes cs-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes cs-tent { 0%,100% { transform: skewX(-5deg) translateY(0) } 50% { transform: skewX(-7deg) translateY(-3px) } }
@keyframes cs-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 75% { transform: translateX(6px) rotate(0.5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes cs-flag { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(-8deg) scaleX(0.9) } 100% { transform: rotate(5deg) scaleX(1.1) } }
@keyframes cs-mist { 0% { opacity: 0.4; transform: translateY(0) } 50% { opacity: 0.7; transform: translateY(-5px) } 100% { opacity: 0.5; transform: translateY(2px) } }

/* Scene 2: pistol-ransom (tense, sunlit) */
.scn-pistol-ransom {
  background:
    linear-gradient(180deg, #f2e9e4 0%, #c9ada7 30%, #9a8c98 60%, #4a4e69 100%),
    radial-gradient(ellipse at 60% 20%, #f2e9e4 0%, transparent 70%);
}
.scn-pistol-ransom .bg-camp {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 40%, #4a4e69 100%);
  animation: pr-bg 15s ease-in-out infinite alternate;
}
.scn-pistol-ransom .tent-distant {
  position: absolute; bottom: 40%; right: 25%; width: 60px; height: 70px;
  background: linear-gradient(135deg, #9a8c98 0%, #22223b 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: pr-tent 7s ease-in-out infinite;
}
.scn-pistol-ransom .figure-pistol {
  position: absolute; bottom: 28%; left: 35%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #2b2d42 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: pr-fig 5s ease-in-out infinite;
}
.scn-pistol-ransom .figure-soldier {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a4e69 0%, #22223b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: pr-fig 5s ease-in-out infinite -1.5s;
}
.scn-pistol-ransom .ransom-bag {
  position: absolute; bottom: 26%; left: 42%; width: 16px; height: 20px;
  background: radial-gradient(circle at 40% 30%, #e07a5f 0%, #b07d62 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: pr-bag 3s ease-in-out infinite;
}
.scn-pistol-ransom .dust {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(0deg, rgba(200,150,120,0.3) 0%, transparent 100%);
  filter: blur(6px); animation: pr-dust 8s ease-in-out infinite alternate;
}
.scn-pistol-ransom .shadow-hard {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: pr-shadow 4s ease-in-out infinite alternate;
}
@keyframes pr-bg { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes pr-tent { 0%,100% { transform: skewX(0deg) translateY(0) } 50% { transform: skewX(3deg) translateY(-4px) } }
@keyframes pr-fig { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(8px) rotate(2deg) } 60% { transform: translateX(-4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pr-bag { 0%,100% { transform: scale(1) translateY(0) } 50% { transform: scale(1.05) translateY(-3px) } }
@keyframes pr-dust { 0% { opacity: 0.2; transform: translateY(0) } 50% { opacity: 0.6; transform: translateY(-5px) } 100% { opacity: 0.3; transform: translateY(2px) } }
@keyframes pr-shadow { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }

/* Scene 3: kill-prisoners (dark, sunlit) */
.scn-kill-prisoners {
  background:
    linear-gradient(180deg, #d5bdaf 0%, #b08d6a 30%, #5c4033 60%, #2b1d14 100%),
    radial-gradient(ellipse at 50% 70%, #5c4033 0%, transparent 80%);
}
.scn-kill-prisoners .bg-field {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent, transparent 30px, rgba(0,0,0,0.05) 30px, rgba(0,0,0,0.05) 31px);
  animation: kp-bg 12s ease-in-out infinite alternate;
}
.scn-kill-prisoners .blood-pool {
  position: absolute; bottom: 5%; left: 30%; width: 80px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, #702243 0%, #5e1a1d 50%, transparent 100%);
  border-radius: 50%; filter: blur(3px); opacity: 0.8;
  animation: kp-blood 6s ease-in-out infinite;
}
.scn-kill-prisoners .figure-soldier {
  position: absolute; bottom: 30%; left: 40%; width: 25px; 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: kp-soldier 5s ease-in-out infinite;
}
.scn-kill-prisoners .figure-boy {
  position: absolute; bottom: 28%; left: 52%; width: 16px; height: 35px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: kp-boy 4s ease-in-out infinite -1s;
}
.scn-kill-prisoners .sword {
  position: absolute; bottom: 40%; left: 35%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #a0a0a0 0%, #606060 50%, #404040 100%);
  transform: rotate(-30deg); border-radius: 2px;
  animation: kp-sword 3s ease-in-out infinite;
}
.scn-kill-prisoners .armor-broken {
  position: absolute; bottom: 15%; left: 60%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #606060 0%, #303030 100%);
  clip-path: polygon(10% 0, 90% 0, 100% 100%, 0% 100%);
  transform: rotate(15deg); animation: kp-armor 7s ease-in-out infinite alternate;
}
.scn-kill-prisoners .smoke {
  position: absolute; top: 20%; left: 10%; width: 100px; height: 60px;
  background: radial-gradient(circle at 30% 50%, rgba(100,100,100,0.3) 0%, transparent 70%);
  filter: blur(10px); animation: kp-smoke 12s linear infinite;
}
.scn-kill-prisoners .corpse {
  position: absolute; bottom: 8%; left: 50%; width: 30px; height: 15px;
  background: linear-gradient(180deg, #5c4033 0%, #2b1d14 100%);
  border-radius: 40% 40% 30% 30%; transform: rotate(-20deg);
  animation: kp-corpse 8s ease-in-out infinite;
}
@keyframes kp-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes kp-blood { 0%,100% { transform: scale(1); opacity: 0.7 } 50% { transform: scale(1.2); opacity: 0.9 } }
@keyframes kp-soldier { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(5px) rotate(3deg) } 60% { transform: translateX(-5px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes kp-boy { 0%,100% { transform: translateX(0) translateY(0) } 50% { transform: translateX(8px) translateY(-3px) rotate(5deg) } }
@keyframes kp-sword { 0% { transform: rotate(-30deg) translateY(0) } 50% { transform: rotate(-20deg) translateY(-5px) } 100% { transform: rotate(-30deg) translateY(0) } }
@keyframes kp-armor { 0% { transform: rotate(15deg) scale(1) } 50% { transform: rotate(10deg) scale(0.9) } 100% { transform: rotate(20deg) scale(1.05) } }
@keyframes kp-smoke { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(30px) scale(1.3) } 100% { transform: translateX(0) scale(1) } }
@keyframes kp-corpse { 0%,100% { opacity: 0.5 } 50% { opacity: 0.8 } }

/* Scene 4: item-alencon-glove (tense, sunlit) */
.scn-item-alencon-glove {
  background:
    linear-gradient(180deg, #c9ada7 0%, #9a8c98 30%, #4a4e69 60%, #22223b 100%),
    radial-gradient(ellipse at 40% 50%, #9a8c98 0%, transparent 70%);
}
.scn-item-alencon-glove .bg-wood {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent, transparent 20px, rgba(100,70,50,0.2) 20px, rgba(100,70,50,0.2) 21px);
  animation: ag-bg 14s ease-in-out infinite alternate;
}
.scn-item-alencon-glove .figure-henry {
  position: absolute; bottom: 25%; left: 30%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #2b2d42 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ag-fig 5s ease-in-out infinite;
}
.scn-item-alencon-glove .figure-fluellen {
  position: absolute; bottom: 28%; left: 55%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a4e69 0%, #22223b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ag-fig 5s ease-in-out infinite -1.5s;
}
.scn-item-alencon-glove .glove {
  position: absolute; bottom: 30%; left: 42%; width: 22px; height: 26px;
  background: linear-gradient(135deg, #c9ada7 0%, #9a8c98 100%);
  border-radius: 40% 40% 20% 20% / 30% 30% 50% 50%;
  transform: rotate(20deg); box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: ag-glove 4s ease-in-out infinite;
}
.scn-item-alencon-glove .shadow-line {
  position: absolute; bottom: 0; left: 35%; width: 2px; height: 30%;
  background: linear-gradient(0deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(1px); animation: ag-shadow 6s ease-in-out infinite alternate;
}
.scn-item-alencon-glove .tent-pole {
  position: absolute; bottom: 20%; left: 20%; width: 6px; height: 80px;
  background: linear-gradient(180deg, #6b705c 0%, #2b2d42 100%);
  border-radius: 3px; transform: skewX(5deg);
  animation: ag-pole 8s ease-in-out infinite;
}
.scn-item-alencon-glove .light-rays {
  position: absolute; top: 0; left: 30%; width: 40px; height: 100%;
  background: linear-gradient(180deg, rgba(240,210,180,0.3) 0%, transparent 60%);
  filter: blur(10px); animation: ag-rays 10s ease-in-out infinite alternate;
}
@keyframes ag-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ag-fig { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(6px) rotate(2deg) } 60% { transform: translateX(-4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ag-glove { 0%,100% { transform: rotate(20deg) scale(1) translateY(0) } 50% { transform: rotate(15deg) scale(1.05) translateY(-3px) } }
@keyframes ag-shadow { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ag-pole { 0%,100% { transform: skewX(5deg) translateY(0) } 50% { transform: skewX(3deg) translateY(-4px) } }
@keyframes ag-rays { 0% { opacity: 0.2; transform: scaleY(1) } 50% { opacity: 0.6; transform: scaleY(1.1) } 100% { opacity: 0.3; transform: scaleY(0.95) } }

/* item-leek-punishment */
.scn-item-leek-punishment { background: linear-gradient(180deg, #6a7a6a 0%, #3a4a3a 100%), radial-gradient(ellipse at 50% 100%, #5a6a5a 0%, transparent 70%); }
.scn-item-leek-punishment .bg-overcast { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8a9a8a 0%, #6a7a6a 100%); animation: ilp-sky 12s ease-in-out infinite alternate; }
.scn-item-leek-punishment .tent-pole { position:absolute; bottom:20%; left:50%; width:6px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius:2px; animation: ilp-pole 8s ease-in-out infinite; }
.scn-item-leek-punishment .figure-left { position:absolute; bottom:20%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 50%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ilp-fig-left 2s ease-in-out infinite; }
.scn-item-leek-punishment .figure-right { position:absolute; bottom:20%; right:30%; width:30px; height:55px; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 50%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 50% 50%; transform-origin: bottom center; animation: ilp-fig-right 1.5s ease-in-out infinite alternate; }
.scn-item-leek-punishment .leek { position:absolute; bottom:25%; left:42%; width:12px; height:30px; background: linear-gradient(180deg, #5a9a3a 0%, #3a6a2a 50%, #2a5a1a 100%); border-radius:50% 50% 20% 20% / 60% 60% 30% 30%; transform:rotate(20deg); animation: ilp-leek 1.6s ease-in-out infinite alternate; }
.scn-item-leek-punishment .ground { position:absolute; bottom:0%; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%); animation: ilp-ground 10s ease-in-out infinite; }
.scn-item-leek-punishment .mist { position:absolute; top:10%; left:0; right:0; height:30%; background: radial-gradient(ellipse at 30% 50%, rgba(200,220,200,0.2) 0%, transparent 60%); filter: blur(10px); animation: ilp-mist 20s linear infinite; }
@keyframes ilp-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ilp-pole { 0%,100% { transform:translateX(-50%) rotate(0deg) } 50% { transform:translateX(-50%) rotate(2deg) } }
@keyframes ilp-fig-left { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ilp-fig-right { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(5px) translateY(-2px) } 100% { transform: translateX(-5px) translateY(0) } }
@keyframes ilp-leek { 0% { transform: rotate(20deg) scale(1) } 50% { transform: rotate(30deg) scale(1.05) } 100% { transform: rotate(15deg) scale(0.95) } }
@keyframes ilp-ground { 0% { background-position: 0% 0% } 50% { background-position: 10% 0% } 100% { background-position: -10% 0% } }
@keyframes ilp-mist { 0% { transform: translateX(-10%) } 100% { transform: translateX(10%) } }

/* peace-wooing */
.scn-peace-wooing { background: linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 50%, #3a2a1a 100%), radial-gradient(ellipse at 50% 80%, #6a4a2a 0%, transparent 80%); }
.scn-peace-wooing .tent-wall { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0px, transparent 30px, rgba(200,180,160,0.05) 30px, rgba(200,180,160,0.05) 32px); animation: pw-wall 15s linear infinite; }
.scn-peace-wooing .candle-glow { position:absolute; bottom:35%; left:50%; width:20px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse at 0% 0%, #ffc060 0%, #d08020 50%, transparent 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 30px 10px #d08020, 0 0 60px 25px rgba(208,128,32,0.4); animation: pw-candle 2s ease-in-out infinite alternate; }
.scn-peace-wooing .table { position:absolute; bottom:15%; left:25%; right:25%; height:10%; background: linear-gradient(180deg, #6a4a2a 0%, #4a3020 100%); border-radius:10%; animation: pw-table 10s ease-in-out infinite; }
.scn-peace-wooing .figure-henry { position:absolute; bottom:20%; left:25%; width:35px; height:70px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pw-henry 4s ease-in-out infinite; }
.scn-peace-wooing .figure-katharine { position:absolute; bottom:20%; right:25%; width:30px; height:65px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: pw-katharine 4.5s ease-in-out infinite alternate; }
.scn-peace-wooing .shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%); animation: pw-shadow 6s ease-in-out infinite alternate; }
.scn-peace-wooing .curtain { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:0 20% 20% 0; animation: pw-curtain 12s ease-in-out infinite; }
.scn-peace-wooing .wine-cup { position:absolute; bottom:22%; left:48%; width:10px; height:15px; background: linear-gradient(180deg, #c0a060 0%, #806030 100%); border-radius:20% 20% 50% 50%; animation: pw-cup 3s ease-in-out infinite; }
@keyframes pw-wall { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.3 } }
@keyframes pw-candle { 0% { transform: translateX(-50%) scale(1); opacity:0.9 } 50% { transform: translateX(-50%) scale(1.05); opacity:1 } 100% { transform: translateX(-50%) scale(0.95); opacity:0.95 } }
@keyframes pw-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pw-henry { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pw-katharine { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(3px) translateY(-1px) } 100% { transform: translateX(-3px) translateY(0) } }
@keyframes pw-shadow { 0% { opacity:0.4 } 50% { opacity:0.6 } 100% { opacity:0.5 } }
@keyframes pw-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(0) } }
@keyframes pw-cup { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }

/* katharine-marriage */
.scn-katharine-marriage { background: linear-gradient(180deg, #d0d8d8 0%, #a0a8a8 50%, #808888 100%), radial-gradient(ellipse at 50% 30%, #c0c8c8 0%, transparent 80%); }
.scn-katharine-marriage .chapel-arch { position:absolute; top:0; left:20%; right:20%; height:70%; background: radial-gradient(ellipse at 50% 0%, transparent 60%, #b0b8b8 60%, #909898 100%); border-radius:50% 50% 0 0; animation: km-arch 20s ease-in-out infinite; }
.scn-katharine-marriage .bg-light { position:absolute; top:0; left:0; right:0; height:30%; background: radial-gradient(ellipse at 50% 0%, #e8ecec 0%, transparent 70%); animation: km-light 5s ease-in-out infinite alternate; }
.scn-katharine-marriage .figure-groom { position:absolute; bottom:20%; left:38%; width:30px; height:60px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: km-groom 6s ease-in-out infinite; }
.scn-katharine-marriage .figure-bride { position:absolute; bottom:20%; right:38%; width:28px; height:58px; background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 50% 50%; transform-origin: bottom center; animation: km-bride 6.5s ease-in-out infinite alternate; }
.scn-katharine-marriage .halo { position:absolute; top:18%; left:50%; width:40px; height:15px; transform:translateX(-50%); background: radial-gradient(ellipse, #f0e8c0 0%, transparent 70%); border-radius:50%; filter: blur(3px); animation: km-halo 4s ease-in-out infinite alternate; }
.scn-katharine-marriage .pillar-left { position:absolute; bottom:0; left:15%; width:12px; height:90%; background: linear-gradient(90deg, #a0a8a8 0%, #808888 50%, #a0a8a8 100%); animation: km-pillar-l 12s ease-in-out infinite; }
.scn-katharine-marriage .pillar-right { position:absolute; bottom:0; right:15%; width:12px; height:90%; background: linear-gradient(90deg, #a0a8a8 0%, #808888 50%, #a0a8a8 100%); animation: km-pillar-r 12s ease-in-out infinite reverse; }
.scn-katharine-marriage .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: repeating-linear-gradient(0deg, #808888 0px, #808888 2px, transparent 2px, transparent 10px); animation: km-floor 15s linear infinite; }
@keyframes km-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes km-light { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes km-groom { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-2px) rotate(-1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes km-bride { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(3px) translateY(-2px) } 100% { transform: translateX(-3px) translateY(0) } }
@keyframes km-halo { 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 km-pillar-l { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(0.97) } }
@keyframes km-pillar-r { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } 100% { transform: scaleY(1.03) } }
@keyframes km-floor { 0% { background-position: 0% 0% } 100% { background-position: 20% 0% } }

/* katharine-embarrassment – dim interior, funny */
.scn-katharine-embarrassment {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%), radial-gradient(ellipse at 50% 70%, #5a4a3a 0%, transparent 60%);
}
.scn-katharine-embarrassment .wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, #4a3a2a 0px, #4a3a2a 4px, #5a4a3a 4px, #5a4a3a 8px);
  filter: brightness(0.5); opacity: 0.8;
}
.scn-katharine-embarrassment .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 22%;
  background: linear-gradient(180deg, #6a4a3a, #3a2a1a);
  border-radius: 6px 6px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
  animation: ke-desk 10s ease-in-out infinite;
}
.scn-katharine-embarrassment .book {
  position: absolute; bottom: 24%; left: 25%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #8a7a6a, #6a5a4a);
  border-radius: 2px; transform: rotate(-8deg);
  animation: ke-book 4s ease-in-out infinite;
}
.scn-katharine-embarrassment .candle {
  position: absolute; bottom: 30%; left: 38%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #a08060 0%, #6a5040 100%);
  border-radius: 2px; transform-origin: bottom center;
  animation: ke-candle 3s ease-in-out infinite;
}
.scn-katharine-embarrassment .glow {
  position: absolute; bottom: 30%; left: 38%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,160,100,0.5) 0%, transparent 70%);
  border-radius: 50%; transform: translate(-50%, -50%);
  animation: ke-glow 2s ease-in-out infinite alternate;
}
.scn-katharine-embarrassment .figure {
  position: absolute; bottom: 24%; left: 50%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ke-figure 6s ease-in-out infinite;
}
.scn-katharine-embarrassment .foot {
  position: absolute; bottom: 26%; left: 62%; width: 28px; height: 14px;
  background: linear-gradient(180deg, #3a2a2a, #1a0a0a);
  border-radius: 60% 40% 30% 50%;
  transform: rotate(10deg);
  animation: ke-foot 3s ease-in-out infinite;
}
.scn-katharine-embarrassment .gown {
  position: absolute; bottom: 28%; left: 44%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #5a3a2a, #3a1a0a);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: top center;
  animation: ke-gown 5s ease-in-out infinite;
}
@keyframes ke-desk { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes ke-book { 0%,100% { transform: rotate(-8deg); } 50% { transform: rotate(2deg) translateY(-1px); } }
@keyframes ke-candle { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } }
@keyframes ke-glow { 0% { opacity: 0.6; transform: translate(-50%, -50%) scale(0.9); } 100% { opacity: 1; transform: translate(-50%, -50%) scale(1.2); } }
@keyframes ke-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ke-foot { 0%,100% { transform: rotate(10deg); } 50% { transform: rotate(20deg) translateY(1px); } }
@keyframes ke-gown { 0%,100% { transform: rotate(0); } 50% { transform: rotate(6deg); } }

/* bardolph-execution – overcast, tense */
.scn-bardolph-execution {
  background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 50%, #1a2a2a 100%), radial-gradient(ellipse at 50% 0%, #5a6a6a 0%, transparent 70%);
}
.scn-bardolph-execution .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, rgba(150,160,150,0.3) 0%, transparent 100%);
  animation: be-sky 8s ease-in-out infinite alternate;
}
.scn-bardolph-execution .gallows {
  position: absolute; bottom: 20%; left: 50%; width: 8px; height: 70%;
  background: #3a3a3a;
  box-shadow: 0 -30px 0 0 #3a3a3a; /* crossbeam */
  transform: translateX(-50%);
  animation: be-gallows 6s ease-in-out infinite;
}
.scn-bardolph-execution .noose {
  position: absolute; bottom: 55%; left: 50%; width: 12px; height: 12px;
  margin-left: -6px;
  background: radial-gradient(circle, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50%;
  animation: be-noose 4s ease-in-out infinite alternate;
}
.scn-bardolph-execution .figure-bardolph {
  position: absolute; bottom: 22%; left: 35%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a, #0a0a1a);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: be-figure1 5s ease-in-out infinite;
}
.scn-bardolph-execution .figure-fluellen {
  position: absolute; bottom: 22%; left: 55%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a, #1a1a2a);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: be-figure2 7s ease-in-out infinite;
}
.scn-bardolph-execution .figure-pistol {
  position: absolute; bottom: 22%; left: 48%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a, #1a0a0a);
  border-radius: 40% 30% 40% 30% / 50% 40% 30% 30%;
  transform-origin: bottom center;
  animation: be-figure3 6s ease-in-out infinite;
}
.scn-bardolph-execution .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a4a3a, #1a2a1a);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: be-ground 4s ease-in-out infinite;
}
@keyframes be-sky { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes be-gallows { 0%,100% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(1deg); } }
@keyframes be-noose { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(3px) rotate(5deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes be-figure1 { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes be-figure2 { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(-3deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes be-figure3 { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(3px) rotate(4deg); } 66% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes be-ground { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } }

/* item-dauphin-horse – moonlit, tense */
.scn-item-dauphin-horse {
  background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 60%, #0a1a2a 100%), radial-gradient(ellipse at 50% 30%, #2a4a5a 0%, transparent 80%);
}
.scn-item-dauphin-horse .moon {
  position: absolute; top: 8%; right: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle, #c0d0e0 0%, #8090a0 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(128,144,160,0.3);
  animation: dh-moon 6s ease-in-out infinite alternate;
}
.scn-item-dauphin-horse .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 50%;
  background: radial-gradient(circle at 70% 20%, rgba(200,220,240,0.1) 0%, transparent 60%);
  animation: dh-sky 12s linear infinite;
}
.scn-item-dauphin-horse .horse {
  position: absolute; bottom: 25%; left: 20%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a, #0a0a1a);
  border-radius: 40% 30% 40% 30% / 50% 40% 50% 30%;
  transform: scale(1.2);
  animation: dh-horse 4s ease-in-out infinite alternate;
}
.scn-item-dauphin-horse .rider {
  position: absolute; bottom: 50%; left: 28%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a, #1a1a2a);
  border-radius: 40% 30% 30% 40% / 50% 30% 30% 50%;
  transform-origin: bottom center;
  animation: dh-rider 3s ease-in-out infinite;
}
.scn-item-dauphin-horse .armour {
  position: absolute; bottom: 32%; left: 32%; width: 14px; height: 20px;
  background: linear-gradient(135deg, #6a7a8a, #3a4a5a);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 0 6px 2px rgba(100,130,150,0.4);
  animation: dh-armour 2s ease-in-out infinite alternate;
}
.scn-item-dauphin-horse .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a2a2a, #0a1a1a);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  animation: dh-ground 8s ease-in-out infinite;
}
.scn-item-dauphin-horse .tent {
  position: absolute; bottom: 20%; left: 70%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #2a3a3a, #1a2a2a);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  opacity: 0.5;
  animation: dh-tent 10s ease-in-out infinite alternate;
}
@keyframes dh-moon { 0% { transform: scale(1); opacity: 0.8; } 100% { transform: scale(1.1); opacity: 1; } }
@keyframes dh-sky { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }
@keyframes dh-horse { 0% { transform: scale(1.2) rotate(-2deg); } 50% { transform: scale(1.2) rotate(3deg); } 100% { transform: scale(1.2) rotate(-1deg); } }
@keyframes dh-rider { 0%,100% { transform: rotate(0); } 50% { transform: rotate(5deg); } }
@keyframes dh-armour { 0% { opacity: 0.6; transform: scale(1); } 100% { opacity: 1; transform: scale(1.1); } }
@keyframes dh-ground { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes dh-tent { 0% { opacity: 0.3; transform: scale(0.95); } 100% { opacity: 0.7; transform: scale(1.05); } }

/* henry-disguised – moonlit, tense */
.scn-henry-disguised {
  background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 60%, #0a1a2a 100%), radial-gradient(ellipse at 20% 60%, #2a4a5a 0%, transparent 70%);
}
.scn-henry-disguised .moon {
  position: absolute; top: 5%; left: 10%; width: 45px; height: 45px;
  background: radial-gradient(circle, #b0c0d0 0%, #7080a0 80%);
  border-radius: 50%;
  box-shadow: 0 0 24px 10px rgba(112,128,160,0.3);
  animation: hd-moon 5s ease-in-out infinite alternate;
}
.scn-henry-disguised .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 45%;
  background: radial-gradient(circle at 80% 10%, rgba(200,220,240,0.15) 0%, transparent 50%);
  animation: hd-sky 15s linear infinite;
}
.scn-henry-disguised .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a2a2a, #0a1a1a);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  animation: hd-ground 6s ease-in-out infinite;
}
.scn-henry-disguised .henry {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a, #1a1a2a);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hd-henry 4s ease-in-out infinite;
}
.scn-henry-disguised .pistol {
  position: absolute; bottom: 18%; left: 48%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a, #1a0a0a);
  border-radius: 30% 40% 30% 40% / 50% 30% 30% 50%;
  transform-origin: bottom center;
  animation: hd-pistol 3s ease-in-out infinite;
}
.scn-henry-disguised .tent {
  position: absolute; bottom: 15%; right: 10%; width: 35px; height: 45px;
  background: linear-gradient(135deg, #1a2a2a, #0a1a1a);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  opacity: 0.6;
  animation: hd-tent 8s ease-in-out infinite alternate;
}
.scn-henry-disguised .campfire {
  position: absolute; bottom: 5%; left: 55%; width: 20px; height: 20px;
  background: radial-gradient(circle, #c08040 0%, #a06020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(192,128,64,0.4);
  animation: hd-fire 2s ease-in-out infinite alternate;
}
@keyframes hd-moon { 0% { transform: scale(1); opacity: 0.8; } 100% { transform: scale(1.15); opacity: 1; } }
@keyframes hd-sky { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }
@keyframes hd-ground { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes hd-henry { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-1deg) } }
@keyframes hd-pistol { 0% { transform: rotate(0) translateX(0); } 50% { transform: rotate(10deg) translateX(3px); } 100% { transform: rotate(0) translateX(0); } }
@keyframes hd-tent { 0% { opacity: 0.4; transform: scale(0.9); } 100% { opacity: 0.8; transform: scale(1.1); } }
@keyframes hd-fire { 0% { opacity: 0.6; transform: scale(0.8); } 100% { opacity: 1; transform: scale(1.2); } }

.scn-chorus-and-church {
  background: 
    linear-gradient(145deg, #2a1f1a 0%, #1a1410 40%, #2e2420 70%, #0f0c0a 100%),
    radial-gradient(ellipse at 50% 30%, #3e322c 0%, transparent 70%);
}
.scn-chorus-and-church .bg-wall {
  position: absolute; inset: 0; 
  background: repeating-linear-gradient(0deg, transparent, transparent 40px, rgba(0,0,0,0.05) 40px, rgba(0,0,0,0.05) 41px);
  animation: ch-wall 20s ease-in-out infinite alternate;
}
.scn-chorus-and-church .pillar-left {
  position: absolute; left: 12%; top: 10%; width: 8%; height: 80%;
  background: linear-gradient(180deg, #4a3d36 0%, #2f2621 50%, #1a1410 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.6), 2px 0 6px rgba(0,0,0,0.3);
  transform: perspective(600px) rotateY(3deg);
  animation: ch-pillar-left 15s ease-in-out infinite alternate;
}
.scn-chorus-and-church .pillar-right {
  position: absolute; right: 12%; top: 10%; width: 8%; height: 80%;
  background: linear-gradient(180deg, #4a3d36 0%, #2f2621 50%, #1a1410 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 8px 0 12px rgba(0,0,0,0.6), -2px 0 6px rgba(0,0,0,0.3);
  transform: perspective(600px) rotateY(-3deg);
  animation: ch-pillar-right 15s ease-in-out infinite alternate;
}
.scn-chorus-and-church .arch-window {
  position: absolute; top: 8%; left: 42%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #3a2e28 0%, #1f1814 100%);
  border-radius: 50% / 100% 100% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  overflow: hidden;
  animation: ch-window 12s ease-in-out infinite alternate;
}
.scn-chorus-and-church .window-glow {
  position: absolute; top: 10%; left: 44%; width: 12%; height: 26%;
  background: radial-gradient(ellipse at 50% 40%, rgba(200,170,120,0.3) 0%, transparent 70%);
  border-radius: 50% / 100% 100% 0 0;
  filter: blur(8px);
  animation: ch-glow 8s ease-in-out infinite alternate;
}
.scn-chorus-and-church .choir-figure {
  position: absolute; bottom: 20%; left: 48%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #1a1613 0%, #0f0d0b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ch-figure 6s ease-in-out infinite;
}
.scn-chorus-and-church .candle-glow {
  position: absolute; bottom: 40%; left: 46%; width: 8%; height: 15%;
  background: radial-gradient(ellipse at 50% 100%, rgba(240,200,140,0.5) 0%, rgba(200,160,100,0.2) 40%, transparent 80%);
  border-radius: 50%;
  filter: blur(10px);
  animation: ch-candle 10s ease-in-out infinite alternate;
}
.scn-chorus-and-church .haze {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(180,150,120,0.08) 0%, transparent 70%);
  pointer-events: none;
  animation: ch-haze 25s ease-in-out infinite alternate;
}
@keyframes ch-wall { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes ch-pillar-left { 0% { transform: perspective(600px) rotateY(3deg) translateX(0); } 50% { transform: perspective(600px) rotateY(5deg) translateX(-2px); } 100% { transform: perspective(600px) rotateY(3deg) translateX(0); } }
@keyframes ch-pillar-right { 0% { transform: perspective(600px) rotateY(-3deg) translateX(0); } 50% { transform: perspective(600px) rotateY(-5deg) translateX(2px); } 100% { transform: perspective(600px) rotateY(-3deg) translateX(0); } }
@keyframes ch-window { 0% { opacity:0.7; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); } 50% { opacity:0.9; box-shadow: inset 0 0 30px rgba(0,0,0,0.6); } 100% { opacity:0.7; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); } }
@keyframes ch-glow { 0% { opacity:0.4; transform: scaleY(1); } 50% { opacity:0.7; transform: scaleY(1.05); } 100% { opacity:0.5; transform: scaleY(1); } }
@keyframes ch-figure { 0% { transform: translateX(-50%) translateY(0) scale(1); } 25% { transform: translateX(-50%) translateY(-2px) scale(1.02); } 50% { transform: translateX(-50%) translateY(0) scale(0.98); } 75% { transform: translateX(-50%) translateY(-1px) scale(1.01); } 100% { transform: translateX(-50%) translateY(0) scale(1); } }
@keyframes ch-candle { 0% { opacity:0.5; transform: scale(0.9); } 50% { opacity:0.8; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(1); } }
@keyframes ch-haze { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }

.scn-chorus-and-church {
  background: 
    radial-gradient(ellipse at 50% 20%, rgba(180,130,60,0.15) 0%, transparent 60%),
    linear-gradient(180deg, #2a1a0e 0%, #1a0f05 100%);
}
.scn-chorus-and-church .stage {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-chorus-and-church .curtain-left {
  position: absolute;
  top: 0; left: 0;
  width: 25%; height: 100%;
  background: linear-gradient(90deg, #5e1a1d 0%, #3a0e10 100%);
  border-radius: 0 40% 0 0 / 0 80% 0 0;
  animation: cc-curtain-sway 12s ease-in-out infinite;
}
.scn-chorus-and-church .curtain-right {
  position: absolute;
  top: 0; right: 0;
  width: 25%; height: 100%;
  background: linear-gradient(270deg, #5e1a1d 0%, #3a0e10 100%);
  border-radius: 40% 0 0 0 / 80% 0 0 0;
  animation: cc-curtain-sway 12s ease-in-out infinite reverse;
  animation-delay: -4s;
}
.scn-chorus-and-church .pulpit {
  position: absolute;
  bottom: 20%; left: 50%;
  width: 14%; height: 30%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 8% 8%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-chorus-and-church .figure {
  position: absolute;
  bottom: 22%; left: 50%;
  width: 28px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  animation: cc-figure-breathe 6s ease-in-out infinite;
}
.scn-chorus-and-church .spotlight {
  position: absolute;
  top: 0; left: 20%;
  width: 60%; height: 80%;
  background: radial-gradient(ellipse at 50% 0%, rgba(220,190,120,0.25) 0%, transparent 70%);
  pointer-events: none;
  animation: cc-spotlight-pulse 4s ease-in-out infinite alternate;
}
.scn-chorus-and-church .candle {
  position: absolute;
  bottom: 48%; left: 50%;
  width: 6px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0d0a0 0%, #b08040 100%);
  border-radius: 2px 2px 20% 20%;
  box-shadow: 0 0 8px 2px rgba(255,200,100,0.6);
  animation: cc-candle-flicker 2s ease-in-out infinite;
}
@keyframes cc-curtain-sway {
  0% { transform: scaleY(1); }
  33% { transform: scaleY(1.02) translateY(-2px); }
  66% { transform: scaleY(0.98) translateY(1px); }
  100% { transform: scaleY(1); }
}
@keyframes cc-figure-breathe {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); }
  50% { transform: translateX(-50%) scale(1.01) rotate(1deg); }
  100% { transform: translateX(-50%) scale(1) rotate(0deg); }
}
@keyframes cc-spotlight-pulse {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes cc-candle-flicker {
  0% { opacity: 0.8; box-shadow: 0 0 4px 1px rgba(255,200,100,0.4); }
  25% { opacity: 1; box-shadow: 0 0 12px 4px rgba(255,200,100,0.8); }
  50% { opacity: 0.7; box-shadow: 0 0 6px 2px rgba(255,200,100,0.5); }
  75% { opacity: 0.9; box-shadow: 0 0 10px 3px rgba(255,200,100,0.7); }
  100% { opacity: 0.8; box-shadow: 0 0 4px 1px rgba(255,200,100,0.4); }
}
/* end per-scene blocks */
