/* style.css -- merged from per-tier scene CSS by wizard2.stages.build_deploy */
/* Scene root must fill its positioning container. */
.scn { position: absolute; inset: 0; }

/* ============ tier U ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-item-bottle-of-sack {
  background:
    linear-gradient(180deg, #f5d78a 0%, #e8b85a 40%, #c88a30 100%),
    radial-gradient(ellipse at 50% 100%, #a06020 0%, transparent 70%);
}
.scn-item-bottle-of-sack .bg-tav {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #d4a86a 0%, #b87a3a 100%);
  animation: ib-tav 6s ease-in-out infinite alternate;
}
.scn-item-bottle-of-sack .table {
  position:absolute; bottom:10%; left:5%; right:5%; height:20%;
  background: linear-gradient(180deg, #6a4220 0%, #3a2010 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,.5);
}
.scn-item-bottle-of-sack .bottle {
  position:absolute; bottom:20%; left:40%; width:12%; height:35%;
  background: linear-gradient(180deg, #8B4513 0%, #5a2c0a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(-15deg);
  animation: ib-bottle 2s ease-in-out infinite;
}
.scn-item-bottle-of-sack .hand {
  position:absolute; bottom:18%; left:28%; width:10%; height:20%;
  background: linear-gradient(180deg, #c08050 0%, #8a5a30 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(20deg);
  animation: ib-hand 2s ease-in-out infinite;
}
.scn-item-bottle-of-sack .splash {
  position:absolute; bottom:15%; left:55%; width:15%; height:8%;
  background: radial-gradient(circle, #d8a040 0%, #b08020 50%, transparent 80%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ib-splash 3s ease-in-out infinite alternate;
}
.scn-item-bottle-of-sack .glint {
  position:absolute; top:22%; left:38%; width:4%; height:6%;
  background: radial-gradient(circle, #fff8d0 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #ffd080;
  animation: ib-glint 1.5s ease-in-out infinite;
}
@keyframes ib-tav { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ib-bottle {
  0% { transform: rotate(-15deg) translateY(0) }
  50% { transform: rotate(-10deg) translateY(-3px) }
  100% { transform: rotate(-15deg) translateY(0) }
}
@keyframes ib-hand {
  0% { transform: rotate(20deg) translateY(0) }
  25% { transform: rotate(15deg) translateY(-2px) }
  50% { transform: rotate(25deg) translateY(-4px) }
  75% { transform: rotate(20deg) translateY(-1px) }
  100% { transform: rotate(20deg) translateY(0) }
}
@keyframes ib-splash {
  0% { transform: scale(1); opacity:.7 }
  100% { transform: scale(1.2); opacity:.9 }
}
@keyframes ib-glint {
  0% { opacity:.3; transform: scale(.8) }
  50% { opacity:1; transform: scale(1.2) }
  100% { opacity:.3; transform: scale(.8) }
}

.scn-battlefield-shift {
  background:
    linear-gradient(180deg, #8ec5e0 0%, #d4a85a 60%, #9a7030 100%),
    radial-gradient(ellipse at 50% 100%, #6a4a1a 0%, transparent 60%);
}
.scn-battlefield-shift .sky-war {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #8eb0c0 0%, #c89848 100%);
  animation: bf-sky 15s ease-in-out infinite alternate;
}
.scn-battlefield-shift .hills-distant {
  position:absolute; bottom:35%; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #7a6a3a 0%, #5a4a2a 100%);
  border-radius: 50% 40% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,.3);
  animation: bf-hills 20s ease-in-out infinite alternate;
}
.scn-battlefield-shift .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #8a6a30 0%, #5a4010 100%);
  border-radius: 0 0 0 0;
}
.scn-battlefield-shift .soldier-left {
  position:absolute; bottom:25%; left:15%; width:8%; height:30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  animation: bf-march 4s ease-in-out infinite;
}
.scn-battlefield-shift .soldier-right {
  position:absolute; bottom:25%; right:18%; width:8%; height:30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  animation: bf-march 4s ease-in-out infinite reverse;
}
.scn-battlefield-shift .flag {
  position:absolute; bottom:45%; left:45%; width:4%; height:20%;
  background: linear-gradient(180deg, #b86020 0%, #804010 100%);
  border-radius: 0 0 20% 20%;
  animation: bf-flag 2s ease-in-out infinite alternate;
}
.scn-battlefield-shift .dust {
  position:absolute; bottom:10%; left:20%; right:20%; height:10%;
  background: radial-gradient(ellipse at 50% 100%, rgba(160,120,60,.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: bf-dust 6s ease-in-out infinite alternate;
}
@keyframes bf-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes bf-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes bf-march {
  0% { transform: translateY(0) rotate(-1deg) }
  25% { transform: translateY(-3px) rotate(1deg) }
  50% { transform: translateY(0) rotate(-1deg) }
  75% { transform: translateY(-3px) rotate(1deg) }
  100% { transform: translateY(0) rotate(-1deg) }
}
@keyframes bf-flag {
  0% { transform: rotate(-5deg) scaleY(1) }
  100% { transform: rotate(5deg) scaleY(1.1) }
}
@keyframes bf-dust { 0% { opacity:.3; transform: scale(1) } 100% { opacity:.6; transform: scale(1.1) } }

.scn-king-douglas-duel {
  background:
    linear-gradient(180deg, #d4a85a 0%, #b88838 40%, #9a7028 100%),
    radial-gradient(ellipse at 50% 100%, #7a5820 0%, transparent 60%);
}
.scn-king-douglas-duel .sky-duel {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #a0c8d0 0%, #d4b060 100%);
  animation: kd-sky 12s ease-in-out infinite alternate;
}
.scn-king-douglas-duel .ground-duel {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #8a6a30 0%, #5a4010 100%);
}
.scn-king-douglas-duel .king {
  position:absolute; bottom:10%; left:35%; width:12%; height:45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1008 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  animation: kd-fight 3s ease-in-out infinite;
}
.scn-king-douglas-duel .douglas {
  position:absolute; bottom:10%; right:35%; width:12%; height:45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #0a0804 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  animation: kd-fight 3s ease-in-out infinite reverse;
}
.scn-king-douglas-duel .sword-king {
  position:absolute; bottom:30%; left:48%; width:3%; height:25%;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 20%;
  transform: rotate(-30deg);
  animation: kd-sword 1.5s ease-in-out infinite alternate;
}
.scn-king-douglas-duel .sword-douglas {
  position:absolute; bottom:30%; right:48%; width:3%; height:25%;
  background: linear-gradient(180deg, #b0b0b0 0%, #707070 100%);
  border-radius: 20%;
  transform: rotate(30deg);
  animation: kd-sword 1.5s ease-in-out infinite alternate-reverse;
}
.scn-king-douglas-duel .sparks {
  position:absolute; bottom:45%; left:45%; width:10%; height:10%;
  background: radial-gradient(circle, #ffd080 0%, #ffb040 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: kd-sparks .8s ease-in-out infinite alternate;
}
@keyframes kd-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes kd-fight {
  0% { transform: translateY(0) rotate(0) }
  25% { transform: translateY(-5px) rotate(-3deg) }
  50% { transform: translateY(-2px) rotate(2deg) }
  75% { transform: translateY(-5px) rotate(3deg) }
  100% { transform: translateY(0) rotate(0) }
}
@keyframes kd-sword {
  0% { transform: rotate(-30deg) scaleX(1) }
  50% { transform: rotate(-20deg) scaleX(1.05) }
  100% { transform: rotate(-30deg) scaleX(1) }
}
@keyframes kd-sparks { 0% { transform: scale(1); opacity:.5 } 100% { transform: scale(1.5); opacity:1 } }

.scn-prince-percy-duel {
  background:
    linear-gradient(180deg, #c8a05a 0%, #a87830 40%, #805018 100%),
    radial-gradient(ellipse at 50% 100%, #603810 0%, transparent 60%);
}
.scn-prince-percy-duel .sky-clash {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #98b8c0 0%, #c8a860 100%);
  animation: pp-sky 14s ease-in-out infinite alternate;
}
.scn-prince-percy-duel .ground-clash {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #7a5a28 0%, #4a3008 100%);
}
.scn-prince-percy-duel .prince {
  position:absolute; bottom:15%; left:30%; width:10%; height:45%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  animation: pp-clash 4s ease-in-out infinite;
}
.scn-prince-percy-duel .hotspur {
  position:absolute; bottom:15%; right:30%; width:10%; height:45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0a04 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  animation: pp-clash 4s ease-in-out infinite reverse;
}
.scn-prince-percy-duel .blade-prince {
  position:absolute; bottom:35%; left:40%; width:2%; height:30%;
  background: linear-gradient(180deg, #d0d0d0 0%, #909090 100%);
  border-radius: 10%;
  transform: rotate(-25deg);
  animation: pp-blade 2s ease-in-out infinite alternate;
}
.scn-prince-percy-duel .blade-hotspur {
  position:absolute; bottom:35%; right:40%; width:2%; height:30%;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 10%;
  transform: rotate(25deg);
  animation: pp-blade 2s ease-in-out infinite alternate-reverse;
}
.scn-prince-percy-duel .impact {
  position:absolute; bottom:45%; left:42%; right:42%; height:8%;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 30%, transparent 60%);
  border-radius: 50%;
  filter: blur(5px);
  animation: pp-impact .6s ease-in-out infinite alternate;
}
@keyframes pp-sky { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes pp-clash {
  0% { transform: translateY(0) rotate(0) }
  20% { transform: translateY(-4px) rotate(-2deg) }
  40% { transform: translateY(-1px) rotate(1deg) }
  60% { transform: translateY(-4px) rotate(2deg) }
  80% { transform: translateY(-2px) rotate(-1deg) }
  100% { transform: translateY(0) rotate(0) }
}
@keyframes pp-blade {
  0% { transform: rotate(-25deg) scaleX(1) }
  100% { transform: rotate(-15deg) scaleX(1.1) }
}
@keyframes pp-impact { 0% { transform: scale(1); opacity:.4 } 100% { transform: scale(1.8); opacity:.8 } }

.scn-moon-men-talk { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a1008 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%); }
.scn-moon-men-talk .wall { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; box-shadow: inset 0 0 60px rgba(0,0,0,.6); }
.scn-moon-men-talk .table { position:absolute; bottom:18%; left:10%; right:10%; height:12%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:6px; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-moon-men-talk .figure-left { position:absolute; bottom:22%; left:22%; width:28px; height:60px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mmt-fig-left 5s ease-in-out infinite; }
.scn-moon-men-talk .figure-right { position:absolute; bottom:22%; right:22%; width:26px; height:58px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mmt-fig-right 6s ease-in-out infinite; }
.scn-moon-men-talk .candle { position:absolute; bottom:30%; left:50%; width:8px; height:24px; transform:translateX(-50%); background: linear-gradient(180deg, #ffcc80 0%, #b08040 50%, #5a3010 100%); border-radius:2px 2px 4px 4px; box-shadow: 0 0 12px 2px #ffa040; }
.scn-moon-men-talk .glow-candle { position:absolute; bottom:32%; left:50%; width:40px; height:40px; transform:translate(-50%,-50%); background: radial-gradient(circle, rgba(255,160,64,.8) 0%, rgba(255,160,64,.4) 40%, transparent 70%); border-radius:50%; filter:blur(6px); animation: mmt-glow 4s ease-in-out infinite alternate; }
.scn-moon-men-talk .mug { position:absolute; bottom:20%; left:44%; width:14px; height:16px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:4px 4px 10px 10px; transform:rotate(2deg); animation: mmt-mug 10s ease-in-out infinite; }
@keyframes mmt-fig-left { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes mmt-fig-right { 0% { transform: translateY(0) rotate(1deg) } 30% { transform: translateY(-1px) rotate(-2deg) } 60% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes mmt-glow { 0% { opacity:.6; transform:translate(-50%,-50%) scale(1) } 50% { opacity:1; transform:translate(-50%,-50%) scale(1.3) } 100% { opacity:.7; transform:translate(-50%,-50%) scale(.9) } }
@keyframes mmt-mug { 0% { transform:rotate(2deg) translateY(0) } 50% { transform:rotate(-1deg) translateY(-1px) } 100% { transform:rotate(2deg) translateY(0) } }

.scn-dianas-foresters { background: linear-gradient(180deg, #0a1030 0%, #1a1a3e 40%, #2a204a 100%), radial-gradient(ellipse at 70% 20%, #2a3a5a 0%, transparent 60%); }
.scn-dianas-foresters .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #0a1030 0%, #1a1a4e 60%, #2a2a5a 100%); }
.scn-dianas-foresters .moon { position:absolute; top:8%; left:70%; width:36px; height:36px; background: radial-gradient(circle, #e0e8ff 0%, #a0b0e0 60%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 12px rgba(160,176,224,.5); animation: dif-moon 12s ease-in-out infinite alternate; }
.scn-dianas-foresters .trees { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 60% 40% 0 0 / 70% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-dianas-foresters .forester { position:absolute; bottom:28%; left:40%; width:22px; height:48px; background: linear-gradient(180deg, #0a0a1a 0%, #000010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dif-forester 7s ease-in-out infinite; }
.scn-dianas-foresters .bow { position:absolute; bottom:38%; left:44%; width:18px; height:30px; background: radial-gradient(ellipse 100% 100% at 100% 50%, #4a3a2a 0%, transparent 70%); border-radius:50%; transform:rotate(20deg); animation: dif-bow 4s ease-in-out infinite alternate; }
.scn-dianas-foresters .deer { position:absolute; bottom:30%; left:58%; width:20px; height:36px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform:scaleX(-1); animation: dif-deer 9s ease-in-out infinite; }
.scn-dianas-foresters .cloud { position:absolute; top:18%; right:10%; width:70px; height:15px; background: linear-gradient(180deg, rgba(255,255,255,.15) 0%, rgba(200,210,255,.05) 100%); border-radius:50%; filter:blur(5px); animation: dif-cloud 40s linear infinite; }
@keyframes dif-moon { 0% { transform: translate(0,0); opacity:.8 } 50% { transform: translate(-2px,2px); opacity:1 } 100% { transform: translate(1px,-1px); opacity:.85 } }
@keyframes dif-forester { 0% { transform: translateY(0) rotate(-1deg) } 33% { transform: translateY(-2px) rotate(1deg) } 66% { transform: translateY(1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes dif-bow { 0% { transform: rotate(20deg) scale(1) } 50% { transform: rotate(30deg) scale(1.1) } 100% { transform: rotate(15deg) scale(.95) } }
@keyframes dif-deer { 0% { transform: scaleX(-1) translateY(0) } 50% { transform: scaleX(-1) translateY(-2px) } 100% { transform: scaleX(-1) translateY(0) } }
@keyframes dif-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

.scn-purse-ebb-flow { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 60%, #3a3a5a 0%, transparent 70%); }
.scn-purse-ebb-flow .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%); }
.scn-purse-ebb-flow .ladder { position:absolute; bottom:10%; left:50%; width:8px; height:80%; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-purse-ebb-flow .purse { position:absolute; bottom:15%; left:46%; width:24px; height:20px; background: radial-gradient(ellipse at 50% 40%, #c08040 0%, #8a5a20 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.6); animation: pef-purse 6s ease-in-out infinite alternate; }
.scn-purse-ebb-flow .coin-flow { position:absolute; bottom:8%; left:50%; width:12px; height:70%; transform:translateX(-50%); background: linear-gradient(180deg, #ffd060 0%, #c08040 30%, #6a4a2a 60%, transparent 100%); border-radius:50%; filter:blur(3px); animation: pef-flow 8s ease-in-out infinite; }
.scn-purse-ebb-flow .coin-sparkle-1 { position:absolute; bottom:45%; left:44%; width:6px; height:6px; background:radial-gradient(circle,#ffd060 0%,transparent 70%); border-radius:50%; animation: pef-sparkle 3s ease-in-out infinite; }
.scn-purse-ebb-flow .coin-sparkle-2 { position:absolute; bottom:50%; left:54%; width:5px; height:5px; background:radial-gradient(circle,#ffd060 0%,transparent 70%); border-radius:50%; animation: pef-sparkle 3.4s ease-in-out infinite reverse; }
.scn-purse-ebb-flow .hand { position:absolute; bottom:20%; left:38%; width:16px; height:24px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%; transform:rotate(10deg); animation: pef-hand 5s ease-in-out infinite; }
@keyframes pef-purse { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-20px) scale(1.1) } 100% { transform: translateY(0) scale(.95) } }
@keyframes pef-flow { 0% { opacity:.3; transform:translateX(-50%) scaleY(.5) } 50% { opacity:1; transform:translateX(-50%) scaleY(1.2) } 100% { opacity:.5; transform:translateX(-50%) scaleY(.6) } }
@keyframes pef-sparkle { 0% { opacity:0; transform: scale(0) } 50% { opacity:1; transform: scale(2) } 100% { opacity:0; transform: scale(0) } }
@keyframes pef-hand { 0% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(5deg) translateX(5px) } 100% { transform: rotate(10deg) translateX(0) } }

.scn-item-buff-jerkin { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a1008 100%), radial-gradient(ellipse at 50% 80%, #5a4a2a 0%, transparent 80%); }
.scn-item-buff-jerkin .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.5); }
.scn-item-buff-jerkin .jerkin { position:absolute; top:15%; left:15%; width:50px; height:60px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 50%, #3a2a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,.6); transform:rotate(3deg); animation: ibj-jerkin 8s ease-in-out infinite; }
.scn-item-buff-jerkin .table-plank { position:absolute; bottom:20%; left:5%; right:5%; height:8%; background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-item-buff-jerkin .mug-ale { position:absolute; bottom:22%; left:40%; width:16px; height:18px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:4px 4px 10px 10px; box-shadow: 0 0 0 2px #4a3a2a; transform:rotate(-5deg); animation: ibj-mug 6s ease-in-out infinite; }
.scn-item-buff-jerkin .figure-point { position:absolute; bottom:18%; left:65%; width:24px; height:56px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ibj-figure 9s ease-in-out infinite; }
.scn-item-buff-jerkin .lantern-on-wall { position:absolute; top:10%; right:12%; width:10px; height:20px; background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%); border-radius:4px; box-shadow: 0 0 8px 2px #ffa040; }
.scn-item-buff-jerkin .glow-lantern { position:absolute; top:12%; right:12%; width:50px; height:50px; transform:translate(50%,-50%); background: radial-gradient(circle, rgba(255,160,64,.6) 0%, rgba(255,160,64,.2) 40%, transparent 70%); border-radius:50%; filter:blur(8px); animation: ibj-glow 5s ease-in-out infinite alternate; }
@keyframes ibj-jerkin { 0% { transform: rotate(3deg) scale(1) } 50% { transform: rotate(-2deg) scale(1.02) } 100% { transform: rotate(3deg) scale(1) } }
@keyframes ibj-mug { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes ibj-figure { 0% { transform: translateY(0) rotate(2deg) } 33% { transform: translateY(-2px) rotate(-1deg) } 66% { transform: translateY(-1px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ibj-glow { 0% { opacity:.5; transform:translate(50%,-50%) scale(1) } 70% { opacity:1; transform:translate(50%,-50%) scale(1.4) } 100% { opacity:.6; transform:translate(50%,-50%) scale(.9) } }

.scn-berkley-castle-memory { background: linear-gradient(180deg, #3a2c1a 0%, #5a3a2a 40%, #4a2a1a 100%), radial-gradient(ellipse at 30% 70%, #8a6a4a 0%, transparent 70%); }
.scn-berkley-castle-memory .stone-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:0 0 20% 20% / 0 0 40% 40%; }
.scn-berkley-castle-memory .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius:30% 30% 0 0 / 20% 20% 0 0; }
.scn-berkley-castle-memory .window { position:absolute; top:18%; left:50%; width:100px; height:120px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #f0d8a0 0%, #d8b878 50%, #8a6a3a 100%); border:8px solid #4a3a2a; border-radius:40% 40% 20% 20%; box-shadow: inset 0 0 30px rgba(240,216,160,0.3); }
.scn-berkley-castle-memory .figure-castle { position:absolute; bottom:28%; left:38%; width:40px; 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: bc-figure 5s ease-in-out infinite; }
.scn-berkley-castle-memory .greyhound { position:absolute; bottom:26%; left:54%; width:60px; height:35px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom left; animation: bc-dog 7s ease-in-out infinite; }
.scn-berkley-castle-memory .candle { position:absolute; bottom:32%; left:20%; width:8px; height:30px; background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 6px rgba(240,224,192,0.6); animation: bc-candle 4s ease-in-out infinite alternate; }
.scn-berkley-castle-memory .candle-glow { position:absolute; bottom:28%; left:18%; width:30px; height:40px; background: radial-gradient(circle, #f0e0c0 0%, transparent 70%); animation: bc-glow 4s ease-in-out infinite alternate; }
.scn-berkley-castle-memory .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: bc-shadow 8s ease-in-out infinite alternate; }
@keyframes bc-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes bc-dog { 0% { transform: translateX(0) rotate(-1deg) scaleX(1); } 50% { transform: translateX(8px) rotate(3deg) scaleX(0.95); } 100% { transform: translateX(0) rotate(-1deg) scaleX(1); } }
@keyframes bc-candle { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.05) rotate(2deg); } 100% { transform: scaleY(1) rotate(0deg); } }
@keyframes bc-glow { 0% { opacity:0.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:0.8; transform:scale(1.05); } }
@keyframes bc-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

.scn-archbishop-of-york { background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #3a2a1a 100%), radial-gradient(ellipse at 50% 60%, #6a5a3a 0%, transparent 60%); }
.scn-archbishop-of-york .pillar-left { position:absolute; top:0; left:5%; width:40px; height:100%; background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%); border-radius:10px; box-shadow: 5px 0 10px rgba(0,0,0,0.4); }
.scn-archbishop-of-york .pillar-right { position:absolute; top:0; right:5%; width:40px; height:100%; background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%); border-radius:10px; box-shadow: -5px 0 10px rgba(0,0,0,0.4); }
.scn-archbishop-of-york .altar { position:absolute; bottom:20%; left:50%; width:120px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:10px; box-shadow: 0 8px 20px rgba(0,0,0,0.5); }
.scn-archbishop-of-york .archbishop-figure { position:absolute; bottom:20%; left:36%; width:35px; 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: ay-figure 5s ease-in-out infinite; }
.scn-archbishop-of-york .book { position:absolute; bottom:24%; left:44%; width:40px; height:30px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius:5px; transform: rotate(-5deg); box-shadow: 2px 2px 8px rgba(0,0,0,0.4); animation: ay-book 9s ease-in-out infinite alternate; }
.scn-archbishop-of-york .candle-pair { position:absolute; bottom:26%; left:48%; width:12px; height:25px; background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 100%); border-radius:20%; box-shadow: 0 0 6px rgba(240,224,192,0.6); animation: ay-candle 4s ease-in-out infinite alternate; }
.scn-archbishop-of-york .candle-pair-glow { position:absolute; bottom:24%; left:45%; width:40px; height:45px; background: radial-gradient(circle, #f0e0c0 0%, transparent 70%); animation: ay-glow 4s ease-in-out infinite alternate; }
.scn-archbishop-of-york .cross { position:absolute; top:8%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); clip-path: polygon(40% 0%, 60% 0%, 60% 40%, 100% 40%, 100% 60%, 60% 60%, 60% 100%, 40% 100%, 40% 60%, 0% 60%, 0% 40%, 40% 40%); animation: ay-cross 12s ease-in-out infinite alternate; }
@keyframes ay-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ay-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ay-candle { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.05) rotate(-2deg); } 100% { transform: scaleY(1) rotate(0deg); } }
@keyframes ay-glow { 0% { opacity:0.6; transform:scale(1); } 50% { opacity:1; transform:scale(1.3); } 100% { opacity:0.7; transform:scale(1.1); } }
@keyframes ay-cross { 0% { opacity:0.8; filter:brightness(1); } 50% { opacity:1; filter:brightness(1.2); } 100% { opacity:0.85; filter:brightness(0.95); } }

.scn-noble-plot-approval { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #4a3a2a 100%), radial-gradient(ellipse at 50% 50%, #8a6a4a 0%, transparent 80%); }
.scn-noble-plot-approval .table { position:absolute; bottom:15%; left:10%; right:10%; height:40px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius:20px; box-shadow: 0 10px 30px rgba(0,0,0,0.6); }
.scn-noble-plot-approval .noble-left { position:absolute; bottom:20%; left:15%; width:35px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #1a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: np-left 6s ease-in-out infinite; }
.scn-noble-plot-approval .noble-right { position:absolute; bottom:20%; right:15%; width:35px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #1a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: np-right 6s ease-in-out infinite reverse; }
.scn-noble-plot-approval .map { position:absolute; bottom:18%; left:38%; width:80px; height:50px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:5px; transform: rotate(-2deg); box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: np-map 10s ease-in-out infinite alternate; }
.scn-noble-plot-approval .lantern-table { position:absolute; bottom:22%; left:50%; width:10px; height:15px; background: linear-gradient(180deg, #f0d8a0 0%, #b08850 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 8px rgba(240,216,160,0.7); animation: np-lantern 4s ease-in-out infinite alternate; }
.scn-noble-plot-approval .lantern-glow { position:absolute; bottom:18%; left:46%; width:50px; height:60px; background: radial-gradient(circle, #f0d8a0 0%, transparent 70%); animation: np-glow 4s ease-in-out infinite alternate; }
.scn-noble-plot-approval .dagger { position:absolute; bottom:16%; left:55%; width:6px; height:30px; background: linear-gradient(180deg, #a08060 0%, #5a4a3a 100%); border-radius:20%; transform: rotate(15deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.3); animation: np-dagger 8s ease-in-out infinite; }
@keyframes np-left { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes np-right { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes np-map { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-3px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes np-lantern { 0% { transform: scaleY(1) rotate(-3deg); } 50% { transform: scaleY(1.1) rotate(3deg); } 100% { transform: scaleY(1) rotate(-3deg); } }
@keyframes np-glow { 0% { opacity:0.6; transform:scale(1); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:0.7; transform:scale(1.05); } }
@keyframes np-dagger { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(10deg) translateX(2px); } 100% { transform: rotate(15deg) translateX(0); } }

.scn-revenge-resolve { background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #3a2a1a 100%), radial-gradient(ellipse at 40% 60%, #6a5a3a 0%, transparent 70%); }
.scn-revenge-resolve .bg-chamber { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); opacity:0.6; animation: rr-chamber 12s ease-in-out infinite alternate; }
.scn-revenge-resolve .warrior-figure { position:absolute; bottom:15%; left:30%; width:50px; height:100px; background: linear-gradient(180deg, #4a3a2a 0%, #1a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rr-warrior 5s ease-in-out infinite; }
.scn-revenge-resolve .sword { position:absolute; bottom:25%; left:45%; width:6px; height:60px; background: linear-gradient(180deg, #a08060 0%, #5a4a3a 100%); border-radius:20%; transform: rotate(-20deg); transform-origin: bottom; box-shadow: 0 0 8px rgba(160,128,96,0.4); animation: rr-sword 4s ease-in-out infinite alternate; }
.scn-revenge-resolve .shield { position:absolute; bottom:18%; left:36%; width:30px; height:40px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius:50% 50% 20% 20% / 60% 60% 30% 30%; transform: rotate(10deg); box-shadow: 0 4px 12px rgba(0,0,0,0.5); animation: rr-shield 7s ease-in-out infinite; }
.scn-revenge-resolve .map-scroll { position:absolute; bottom:16%; left:60%; width:60px; height:20px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:10px; transform: rotate(5deg); box-shadow: 2px 2px 8px rgba(0,0,0,0.3); animation: rr-scroll 9s ease-in-out infinite alternate; }
.scn-revenge-resolve .brazier { position:absolute; bottom:30%; left:20%; width:20px; height:30px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 15px rgba(200,150,80,0.6); animation: rr-brazier 3s ease-in-out infinite alternate; }
.scn-revenge-resolve .brazier-glow { position:absolute; bottom:28%; left:16%; width:50px; height:60px; background: radial-gradient(circle, #c8a050 0%, transparent 70%); animation: rr-glowing 3s ease-in-out infinite alternate; }
.scn-revenge-resolve .sparks { position:absolute; bottom:32%; left:22%; width:4px; height:4px; background: #f0d060; border-radius:50%; box-shadow: 0 0 6px #f0d060; animation: rr-sparks 1.5s ease-in-out infinite; }
@keyframes rr-chamber { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.55; } }
@keyframes rr-warrior { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(3deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes rr-sword { 0% { transform: rotate(-20deg) scaleY(1); } 50% { transform: rotate(-15deg) scaleY(1.05); } 100% { transform: rotate(-20deg) scaleY(1); } }
@keyframes rr-shield { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-3px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes rr-scroll { 0% { transform: rotate(5deg) scaleX(1); } 50% { transform: rotate(3deg) scaleX(1.05); } 100% { transform: rotate(5deg) scaleX(1); } }
@keyframes rr-brazier { 0% { transform: scaleY(1) rotate(-2deg); } 50% { transform: scaleY(1.1) rotate(2deg); } 100% { transform: scaleY(1) rotate(-2deg); } }
@keyframes rr-glowing { 0% { opacity:0.5; transform:scale(1); } 50% { opacity:1; transform:scale(1.3); } 100% { opacity:0.6; transform:scale(1.05); } }
@keyframes rr-sparks { 0% { transform: translate(0,0) scale(1); opacity:1; } 50% { transform: translate(-5px,-10px) scale(1.5); opacity:0.5; } 100% { transform: translate(5px,-20px) scale(0.5); opacity:0; } }

.scn-hal-arrives-tavern {
  background: 
    linear-gradient(180deg, #4a2e1a 0%, #2d1a0a 40%, #1a0e05 100%),
    radial-gradient(ellipse at 50% 30%, #b85a30 0%, transparent 60%);
}
.scn-hal-arrives-tavern .wall { position:absolute; inset:0; background: linear-gradient(90deg, #3d2212 0%, #5a3520 20%, #3d2212 100%); }
.scn-hal-arrives-tavern .hearth { position:absolute; bottom:15%; left:20%; width:70px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 -10px 30px rgba(200,80,30,.3); }
.scn-hal-arrives-tavern .fire-glow { position:absolute; bottom:18%; left:20%; width:80px; height:80px; background: radial-gradient(circle, #f09030 0%, #c05a20 30%, transparent 70%); border-radius:50%; animation: hat-glow 2s ease-in-out infinite alternate; }
.scn-hal-arrives-tavern .door-arch { position:absolute; bottom:10%; right:12%; width:80px; height:120px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 0 20px #1a0e05; }
.scn-hal-arrives-tavern .figure-hal { position:absolute; bottom:12%; left:45%; width:30px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hat-walk 4s ease-in-out infinite; }
.scn-hal-arrives-tavern .table { position:absolute; bottom:8%; left:35%; width:90px; height:20px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-hal-arrives-tavern .tankard { position:absolute; bottom:10%; left:37%; width:14px; height:18px; background: linear-gradient(180deg, #704a20 0%, #4a2a10 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: hat-tilt 6s ease-in-out infinite; }
.scn-hal-arrives-tavern .bench { position:absolute; bottom:0; left:30%; width:120px; height:10px; background: #3a2010; border-radius: 5% 5% 0 0; }

@keyframes hat-glow { 0% { transform: scale(1); opacity:.7; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(.9); opacity:.6; } }
@keyframes hat-walk { 0% { transform: translateX(-30px) rotate(-3deg); } 25% { transform: translateX(-10px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-2deg); } 75% { transform: translateX(30px) rotate(3deg); } 100% { transform: translateX(-30px) rotate(-3deg); } }
@keyframes hat-tilt { 0% { transform: rotate(-5deg); } 30% { transform: rotate(10deg); } 60% { transform: rotate(-8deg); } 100% { transform: rotate(-5deg); } }

.scn-otter-quarrel {
  background: 
    linear-gradient(180deg, #3a1a0a 0%, #2a0e05 50%, #1a0500 100%),
    radial-gradient(ellipse at 50% 40%, #c85a20 0%, transparent 70%);
}
.scn-otter-quarrel .wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a150a 0%, #4a2a1a 50%, #2a150a 100%); }
.scn-otter-quarrel .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2010 0%, #1a0e05 100%); }
.scn-otter-quarrel .fire-glow { position:absolute; bottom:20%; left:50%; margin-left:-40px; width:80px; height:80px; background: radial-gradient(circle, #f08030 0%, #c05020 30%, transparent 70%); border-radius:50%; animation: otq-glow 3s ease-in-out infinite alternate; }
.scn-otter-quarrel .figure-left { position:absolute; bottom:20%; left:25%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a0a 0%, #0e0500 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: otq-lurch 5s ease-in-out infinite; }
.scn-otter-quarrel .figure-right { position:absolute; bottom:20%; right:25%; width:28px; height:72px; background: linear-gradient(180deg, #2a150a 0%, #1a0a05 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: otq-lurch 5s ease-in-out infinite reverse; }
.scn-otter-quarrel .table { position:absolute; bottom:15%; left:35%; width:100px; height:15px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 5% 5% 2% 2%; box-shadow: 0 6px 12px rgba(0,0,0,.7); }
.scn-otter-quarrel .shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); animation: otq-shadow 6s ease-in-out infinite; }

@keyframes otq-glow { 0% { transform: scale(1); opacity:.6; } 50% { transform: scale(1.3); opacity:1; } 100% { transform: scale(.8); opacity:.5; } }
@keyframes otq-lurch { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-4px) rotate(8deg); } 50% { transform: translateY(0) rotate(-10deg); } 75% { transform: translateY(-2px) rotate(6deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes otq-shadow { 0% { opacity:.4; } 50% { opacity:.7; } 100% { opacity:.4; } }

.scn-falstaff-love-thousand {
  background: 
    linear-gradient(180deg, #4a2a1a 0%, #2d1a0a 60%, #1a0e05 100%),
    radial-gradient(ellipse at 50% 30%, #d06020 0%, transparent 50%);
}
.scn-falstaff-love-thousand .wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a150a 0%, #4a2a1a 30%, #2a150a 100%); }
.scn-falstaff-love-thousand .fire-glow { position:absolute; bottom:10%; left:15%; width:100px; height:100px; background: radial-gradient(circle, #f09030 0%, #c05a20 20%, transparent 60%); border-radius:50%; animation: flt-glow 4s ease-in-out infinite alternate; }
.scn-falstaff-love-thousand .figure-falstaff { position:absolute; bottom:10%; left:30%; width:120px; height:140px; background: linear-gradient(180deg, #3a2010 0%, #1a0e05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -20px 30px rgba(0,0,0,.5); transform-origin: bottom center; animation: flt-bounce 3s ease-in-out infinite; }
.scn-falstaff-love-thousand .belly { position:absolute; bottom:20%; left:30%; width:80px; height:90px; margin-left:-20px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 60% 60% / 60% 60% 50% 50%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.4); transform-origin: center; animation: flt-wobble 4s ease-in-out infinite; }
.scn-falstaff-love-thousand .arm-left { position:absolute; bottom:60%; left:20%; width:30px; height:60px; background: linear-gradient(180deg, #3a2010 0%, #1a0e05 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; transform-origin: top center; animation: flt-gesture 5s ease-in-out infinite; }
.scn-falstaff-love-thousand .arm-right { position:absolute; bottom:60%; right:20%; width:30px; height:55px; background: linear-gradient(180deg, #3a2010 0%, #1a0e05 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; transform-origin: top center; animation: flt-gesture 5s ease-in-out infinite reverse; }
.scn-falstaff-love-thousand .lion-silhouette { position:absolute; bottom:15%; right:15%; width:60px; height:50px; background: #1a0e05; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; filter: blur(2px); opacity:.6; animation: flt-lion 7s ease-in-out infinite; }
.scn-falstaff-love-thousand .chair { position:absolute; bottom:8%; left:25%; width:140px; height:30px; background: linear-gradient(180deg, #4a2a10 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.7); }

@keyframes flt-glow { 0% { transform: scale(1) translateY(0); opacity:.5; } 50% { transform: scale(1.1) translateY(-5px); opacity:.9; } 100% { transform: scale(.9) translateY(0); opacity:.5; } }
@keyframes flt-bounce { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-8px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-5px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes flt-wobble { 0% { transform: scale(1) rotate(-2deg); } 30% { transform: scale(1.2) rotate(4deg); } 60% { transform: scale(.9) rotate(-3deg); } 100% { transform: scale(1) rotate(-2deg); } }
@keyframes flt-gesture { 0% { transform: rotate(-30deg) scaleX(1); } 25% { transform: rotate(10deg) scaleX(1.1); } 50% { transform: rotate(-40deg) scaleX(.9); } 75% { transform: rotate(20deg) scaleX(1.05); } 100% { transform: rotate(-30deg) scaleX(1); } }
@keyframes flt-lion { 0% { transform: translateX(0) scale(1); opacity:.4; } 50% { transform: translateX(-5px) scale(1.1); opacity:.7; } 100% { transform: translateX(0) scale(1); opacity:.4; } }

.scn-news-of-rebels {
  background: 
    linear-gradient(180deg, #2a150a 0%, #1a0e05 40%, #0e0500 100%),
    radial-gradient(ellipse at 50% 20%, #c85a20 0%, transparent 50%);
}
.scn-news-of-rebels .wall { position:absolute; inset:0; background: linear-gradient(90deg, #1a0e05 0%, #2a150a 50%, #1a0e05 100%); }
.scn-news-of-rebels .fire-glow { position:absolute; bottom:30%; left:10%; width:90px; height:90px; background: radial-gradient(circle, #e07030 0%, #a04020 20%, transparent 70%); border-radius:50%; animation: nor-glow 2.5s ease-in-out infinite alternate; }
.scn-news-of-rebels .figure-lord { position:absolute; bottom:20%; left:40%; width:40px; height:100px; background: linear-gradient(180deg, #2a1a0a 0%, #0e0500 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: nor-turn 8s ease-in-out infinite; }
.scn-news-of-rebels .scroll { position:absolute; bottom:45%; left:50%; width:40px; height:60px; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 10% 10% 10% 10% / 20% 20% 20% 20%; transform: rotate(15deg); animation: nor-unroll 6s ease-in-out infinite; }
.scn-news-of-rebels .hand { position:absolute; bottom:40%; left:45%; width:15px; height:20px; background: linear-gradient(180deg, #3a2010 0%, #1a0e05 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: nor-point 5s ease-in-out infinite; }
.scn-news-of-rebels .candle { position:absolute; bottom:35%; right:15%; width:8px; height:40px; background: linear-gradient(180deg, #e0c080 0%, #6a5020 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 20px #e0b060; animation: nor-flicker 3s ease-in-out infinite; }
.scn-news-of-rebels .shadow { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.7) 100%); animation: nor-cast 7s ease-in-out infinite; }
.scn-news-of-rebels .desk { position:absolute; bottom:10%; left:30%; width:150px; height:25px; background: linear-gradient(180deg, #3a2010 0%, #1a0e05 100%); border-radius: 5% 5% 3% 3%; box-shadow: 0 8px 16px rgba(0,0,0,.8); }

@keyframes nor-glow { 0% { transform: scale(1); opacity:.5; } 50% { transform: scale(1.4); opacity:1; } 100% { transform: scale(.8); opacity:.4; } }
@keyframes nor-turn { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-3px) rotate(3deg); } 50% { transform: translateY(0) rotate(8deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes nor-unroll { 0% { transform: rotate(15deg) scaleX(1); } 25% { transform: rotate(20deg) scaleX(1.3); } 50% { transform: rotate(10deg) scaleX(1); } 75% { transform: rotate(5deg) scaleX(1.2); } 100% { transform: rotate(15deg) scaleX(1); } }
@keyframes nor-point { 0% { transform: translate(0,0) rotate(0deg); } 30% { transform: translate(-10px,-5px) rotate(-20deg); } 60% { transform: translate(5px, -2px) rotate(15deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes nor-flicker { 0% { transform: scaleY(1) rotate(-2deg); opacity:.8; } 25% { transform: scaleY(1.2) rotate(2deg); opacity:1; } 50% { transform: scaleY(.9) rotate(-1deg); opacity:.6; } 75% { transform: scaleY(1.1) rotate(1deg); opacity:.9; } 100% { transform: scaleY(1) rotate(-2deg); opacity:.8; } }
@keyframes nor-cast { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.5; } }

/* Scene 1: rochester-inn-yard */
.scn-rochester-inn-yard {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a30 40%, #2a2a3e 70%, #1a1a28 100%),
              radial-gradient(ellipse at 50% 100%, #3a3a4e 0%, transparent 60%);
}
.scn-rochester-inn-yard .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #0e0e1e 0%, #1e1e32 100%); animation: riy-sky 20s ease-in-out infinite alternate; }
.scn-rochester-inn-yard .inn-roof { position:absolute; bottom:50%; left:10%; width:60%; height:20%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 50%, #3a2a1a 100%); clip-path: polygon(0% 100%, 15% 0%, 85% 0%, 100% 100%); animation: riy-roof 8s ease-in-out infinite; }
.scn-rochester-inn-yard .inn-wall { position:absolute; bottom:20%; left:15%; width:50%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%); border-radius: 4%; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); }
.scn-rochester-inn-yard .chimney { position:absolute; bottom:50%; left:30%; width:8%; height:18%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px 2px 0 0; animation: riy-chimney 12s ease-in-out infinite alternate; }
.scn-rochester-inn-yard .stable-door { position:absolute; bottom:20%; left:40%; width:12%; height:20%; background: #1a1a0a; border-radius: 4% 4% 0 0; box-shadow: inset 0 0 8px rgba(0,0,0,0.8); }
.scn-rochester-inn-yard .carrier { position:absolute; bottom:18%; left:25%; width:10%; height:28%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: riy-carrier 4s ease-in-out infinite; }
.scn-rochester-inn-yard .lantern-glow { position:absolute; bottom:22%; left:28%; width:8%; height:10%; background: radial-gradient(circle, #ffd580 0%, #b07030 40%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: riy-glow 3s ease-in-out infinite alternate; }
.scn-rochester-inn-yard .horse { position:absolute; bottom:18%; left:45%; width:15%; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; clip-path: ellipse(50% 50% at 50% 50%); animation: riy-horse 6s ease-in-out infinite; }
.scn-rochester-inn-yard .star-1 { position:absolute; top:10%; left:20%; width:4px; height:4px; background: #fff; border-radius:50%; box-shadow: 0 0 6px 2px #fff; animation: riy-twinkle 4s ease-in-out infinite; }
.scn-rochester-inn-yard .star-2 { position:absolute; top:15%; right:30%; width:3px; height:3px; background: #fff; border-radius:50%; box-shadow: 0 0 4px 1px #fff; animation: riy-twinkle 5s ease-in-out infinite 2s; }
@keyframes riy-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes riy-roof { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes riy-chimney { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes riy-carrier { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes riy-glow { 0% { transform: scale(0.8); opacity:0.6 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(0.9); opacity:0.7 } }
@keyframes riy-horse { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes riy-twinkle { 0%,100% { opacity:0.3 } 50% { opacity:1 } }

/* Scene 2: flea-rife-inn */
.scn-flea-rife-inn {
  background: linear-gradient(135deg, #1a1a0a 0%, #2a1a0a 40%, #1a1a0a 100%),
              radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-flea-rife-inn .room-back { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a1a0a 0%, #2a1a0a 60%, #1a0a00 100%); }
.scn-flea-rife-inn .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-flea-rife-inn .table { position:absolute; bottom:18%; left:25%; width:30%; height:6%; background: #3a2a1a; border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,0.6); animation: fri-table 10s ease-in-out infinite; }
.scn-flea-rife-inn .chair { position:absolute; bottom:18%; left:20%; width:8%; height:12%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 4px 4px 0 0; transform-origin: bottom center; animation: fri-chair 6s ease-in-out infinite; }
.scn-flea-rife-inn .dog { position:absolute; bottom:10%; left:50%; width:16%; height:12%; background: #4a3a2a; border-radius: 50% 50% 30% 30%; animation: fri-dog 8s ease-in-out infinite; }
.scn-flea-rife-inn .candle { position:absolute; bottom:24%; left:35%; width:4%; height:10%; background: linear-gradient(180deg, #e0c080 0%, #a08040 100%); border-radius: 2px 2px 0 0; animation: fri-candle 4s ease-in-out infinite alternate; }
.scn-flea-rife-inn .flea-1, .scn-flea-rife-inn .flea-2, .scn-flea-rife-inn .flea-3 { position:absolute; width:3px; height:3px; background: #1a0a00; border-radius:50%; box-shadow: 0 0 2px 1px #3a2a0a; }
.scn-flea-rife-inn .flea-1 { bottom:25%; left:30%; animation: fri-flea 2s ease-in-out infinite; }
.scn-flea-rife-inn .flea-2 { bottom:22%; left:55%; animation: fri-flea 2.4s ease-in-out infinite 0.4s; }
.scn-flea-rife-inn .flea-3 { bottom:28%; left:40%; animation: fri-flea 1.6s ease-in-out infinite 0.2s; }
@keyframes fri-table { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } }
@keyframes fri-chair { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-5deg) } }
@keyframes fri-dog { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) scale(1.02) } }
@keyframes fri-candle { 0% { transform: scaleY(1); opacity:0.8 } 50% { transform: scaleY(1.1); opacity:1 } 100% { transform: scaleY(0.95); opacity:0.7 } }
@keyframes fri-flea { 0% { transform: translate(0,0) } 25% { transform: translate(8px,-10px) scale(1.5) } 50% { transform: translate(16px,0) } 75% { transform: translate(8px,-5px) } 100% { transform: translate(0,0) } }

/* Scene 3: chamber-lie-fleas */
.scn-chamber-lie-fleas {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a0a 50%, #0a0a00 100%),
              radial-gradient(ellipse at 50% 30%, #2a1a0a 0%, transparent 70%);
}
.scn-chamber-lie-fleas .chimney-back { position:absolute; bottom:30%; left:40%; width:20%; height:40%; background: #1a1a00; border-radius: 10px 10px 0 0; }
.scn-chamber-lie-fleas .chamber-pot { position:absolute; bottom:12%; left:35%; width:12%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30%; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.6); animation: clf-pot 6s ease-in-out infinite alternate; }
.scn-chamber-lie-fleas .leak { position:absolute; bottom:22%; left:42%; width:2%; height:8%; background: linear-gradient(180deg, #a05030 0%, #803020 100%); border-radius: 2px; animation: clf-drip 3s ease-in-out infinite; }
.scn-chamber-lie-fleas .flea-group { position:absolute; bottom:20%; left:20%; width:60%; height:30%; }
.scn-chamber-lie-fleas .flea-group::before, .scn-chamber-lie-fleas .flea-group::after { content:''; position:absolute; width:3px; height:3px; background: #1a0a00; border-radius:50%; box-shadow: 0 0 2px 1px #3a2a0a; animation: clf-hop 2s ease-in-out infinite; }
.scn-chamber-lie-fleas .flea-group::before { bottom:10%; left:10%; }
.scn-chamber-lie-fleas .flea-group::after { bottom:40%; left:60%; animation-delay:0.3s; }
.scn-chamber-lie-fleas .ostler { position:absolute; bottom:8%; left:15%; width:8%; height:20%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: clf-ostler 5s ease-in-out infinite; }
.scn-chamber-lie-fleas .door { position:absolute; bottom:8%; right:15%; width:10%; height:30%; background: #2a1a0a; border-radius: 4px 4px 0 0; box-shadow: inset 0 0 6px rgba(0,0,0,0.8); }
.scn-chamber-lie-fleas .bacon { position:absolute; bottom:18%; left:20%; width:6%; height:4%; background: #8a4a2a; border-radius: 2px; animation: clf-bacon 8s ease-in-out infinite; }
.scn-chamber-lie-fleas .ginger { position:absolute; bottom:20%; left:30%; width:4%; height:3%; background: #c08040; border-radius: 50%; animation: clf-ginger 7s ease-in-out infinite 1s; }
@keyframes clf-pot { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes clf-drip { 0% { transform: translateY(0); opacity:1 } 50% { transform: translateY(10px); opacity:0.5 } 100% { transform: translateY(20px); opacity:0 } }
@keyframes clf-hop { 0% { transform: translate(0,0) scale(1) } 25% { transform: translate(12px,-15px) scale(1.8) } 50% { transform: translate(24px,0) scale(1) } 75% { transform: translate(36px,-10px) scale(1.3) } 100% { transform: translate(48px,0) scale(0.8) } }
@keyframes clf-ostler { 0%,100% { transform: translateX(0) } 50% { transform: translateX(6px) } }
@keyframes clf-bacon { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(15deg) } }
@keyframes clf-ginger { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-5px) rotate(30deg) } }

/* Scene 4: item-lantern-refusal */
.scn-item-lantern-refusal {
  background: linear-gradient(180deg, #0a0a12 0%, #12121a 40%, #1a1a22 70%, #0a0a12 100%),
              radial-gradient(ellipse at 50% 80%, #2a2a3a 0%, transparent 60%);
}
.scn-item-lantern-refusal .stable-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #1a1a20 0%, #0a0a10 100%); }
.scn-item-lantern-refusal .hay-rack { position:absolute; bottom:30%; left:10%; width:30%; height:15%; background: #2a2a10; border-radius: 0 0 20px 20px; }
.scn-item-lantern-refusal .horse-back { position:absolute; bottom:20%; left:35%; width:18%; height:20%; background: #2a1a0a; border-radius: 40% 40% 50% 50%; clip-path: ellipse(50% 50% at 50% 50%); animation: ilr-horse 7s ease-in-out infinite; }
.scn-item-lantern-refusal .gadshill { position:absolute; bottom:12%; left:20%; width:10%; height:24%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ilr-gad 4s ease-in-out infinite; }
.scn-item-lantern-refusal .carrier-back { position:absolute; bottom:12%; left:45%; width:10%; height:24%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ilr-carrier 4s ease-in-out infinite reverse; }
.scn-item-lantern-refusal .lantern-hand { position:absolute; bottom:22%; left:33%; width:3%; height:10%; background: #2a1a0a; border-radius: 2px; transform-origin: top center; animation: ilr-arm 3s ease-in-out infinite alternate; }
.scn-item-lantern-refusal .stable-lantern { position:absolute; bottom:24%; left:32%; width:6%; height:8%; background: radial-gradient(circle, #ffc060 0%, #b07030 50%, transparent 80%); border-radius: 50%; filter: blur(4px); animation: ilr-glow 2s ease-in-out infinite alternate; }
.scn-item-lantern-refusal .ground { position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); }
.scn-item-lantern-refusal .straw { position:absolute; bottom:8%; left:15%; width:20%; height:2%; background: #3a3a1a; border-radius: 4px; animation: ilr-straw 20s linear infinite; }
.scn-item-lantern-refusal .straw::after { content:''; position:absolute; top:0; left:50%; width:10px; height:2px; background: #2a2a0a; border-radius: 2px; }
@keyframes ilr-horse { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ilr-gad { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(0deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-3px) rotate(0deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes ilr-carrier { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-3px) rotate(0deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(3px) rotate(0deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes ilr-arm { 0% { transform: rotate(-15deg) } 100% { transform: rotate(15deg) } }
@keyframes ilr-glow { 0% { transform: scale(0.8); opacity:0.6 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(0.9); opacity:0.7 } }
@keyframes ilr-straw { 0% { transform: translateX(-20px) } 100% { transform: translateX(100vw) } }

.scn-heir-apparent-credit { background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%), radial-gradient(ellipse at 50% 100%, #4a3528 0%, transparent 70%); }
.scn-heir-apparent-credit .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3528 0%, #2a1e14 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; animation: hac-wall 15s ease-in-out infinite alternate; }
.scn-heir-apparent-credit .table { position:absolute; bottom:15%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #5a4538 0%, #3a2a1e 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.5); animation: hac-table 8s ease-in-out infinite; }
.scn-heir-apparent-credit .coins { position:absolute; bottom:28%; left:45%; width:40px; height:10px; background: radial-gradient(circle, #b88a44 0%, #8a6a34 70%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: hac-coins 4s ease-in-out infinite; }
.scn-heir-apparent-credit .lantern { position:absolute; bottom:40%; left:30%; width:20px; height:30px; background: linear-gradient(180deg, #f0a050 0%, #c08040 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 30px 10px rgba(240,160,80,.6); animation: hac-lantern 3s ease-in-out infinite alternate; }
.scn-heir-apparent-credit .hand { position:absolute; bottom:25%; left:40%; width:14px; height:24px; background: linear-gradient(180deg, #c8a060 0%, #a08050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hac-hand 5s ease-in-out infinite; }
.scn-heir-apparent-credit .coin-glow { position:absolute; bottom:26%; left:44%; width:50px; height:20px; background: radial-gradient(ellipse, rgba(255,200,100,.3) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: hac-glow 6s ease-in-out infinite alternate; }
@keyframes hac-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes hac-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hac-coins { 0%,100% { transform: scale(1) translateX(0) } 25% { transform: scale(1.1) translateX(-2px) rotate(-5deg) } 75% { transform: scale(.95) translateX(2px) rotate(3deg) } }
@keyframes hac-lantern { 0% { transform: rotate(-2deg); box-shadow: 0 0 20px 6px rgba(240,160,80,.4); } 50% { transform: rotate(2deg); box-shadow: 0 0 40px 14px rgba(240,160,80,.7); } 100% { transform: rotate(-1deg); box-shadow: 0 0 25px 8px rgba(240,160,80,.5); } }
@keyframes hac-hand { 0% { transform: translateX(0) translateY(0) rotate(0); } 30% { transform: translateX(8px) translateY(-3px) rotate(8deg); } 60% { transform: translateX(15px) translateY(0) rotate(-3deg); } 100% { transform: translateX(25px) translateY(0) rotate(0); } }
@keyframes hac-glow { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.2); } 100% { opacity:.4; transform: scale(.9); } }

.scn-brave-judge-jest { background: linear-gradient(180deg, #1e1812 0%, #2a2018 100%), radial-gradient(ellipse at 50% 70%, #3a2e26 0%, transparent 80%); }
.scn-brave-judge-jest .bg-bench { position:absolute; bottom:35%; left:20%; right:20%; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2e1e 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 6px 10px rgba(0,0,0,.6); animation: bjj-bench 12s ease-in-out infinite alternate; }
.scn-brave-judge-jest .judge { position:absolute; bottom:40%; left:35%; width:30px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bjj-judge 6s ease-in-out infinite; }
.scn-brave-judge-jest .gavel { position:absolute; bottom:55%; left:42%; width:6px; height:20px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 20% 20% 0 0; transform-origin: top center; animation: bjj-gavel 2s ease-in-out infinite; }
.scn-brave-judge-jest .noose { position:absolute; bottom:45%; right:30%; width:8px; height:30px; background: #7a6a5a; border-radius: 0 0 50% 50% / 0 0 100% 100%; animation: bjj-noose 4s ease-in-out infinite alternate; }
.scn-brave-judge-jest .scroll { position:absolute; bottom:38%; left:25%; width:20px; height:6px; background: linear-gradient(90deg, #c0a060 0%, #a08040 100%); border-radius: 20%; transform: rotate(-10deg); animation: bjj-scroll 8s linear infinite; }
.scn-brave-judge-jest .shadow { position:absolute; bottom:35%; left:30%; width:40px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 80%); filter: blur(3px); animation: bjj-shadow 6s ease-in-out infinite; }
@keyframes bjj-bench { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes bjj-judge { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(3deg); } 75% { transform: translateX(-3px) rotate(-2deg); } }
@keyframes bjj-gavel { 0%,100% { transform: rotate(0); } 50% { transform: rotate(20deg) scaleY(1.1); } }
@keyframes bjj-noose { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(5px) scaleX(1.2); } 100% { transform: translateY(0) scaleX(.9); } }
@keyframes bjj-scroll { 0% { transform: translateX(0) rotate(-10deg); } 100% { transform: translateX(30px) rotate(10deg); } }
@keyframes bjj-shadow { 0%,100% { opacity:.5; transform: scaleX(1); } 50% { opacity:.3; transform: scaleX(1.5); } }

.scn-melancholy-similes { background: linear-gradient(180deg, #1e1a14 0%, #2a221a 50%, #3a2e26 100%), radial-gradient(ellipse at 50% 80%, #4a3e34 0%, transparent 70%); }
.scn-melancholy-similes .bg-cat { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2e26 0%, #2a221a 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; animation: ms-bg 20s ease-in-out infinite alternate; }
.scn-melancholy-similes .gib-cat { position:absolute; bottom:30%; left:20%; width:35px; height:30px; background: radial-gradient(ellipse 60% 70% at 50% 60%, #6a6a6a 0%, #3a3a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ms-cat 7s ease-in-out infinite; }
.scn-melancholy-similes .bagpipe { position:absolute; bottom:35%; right:20%; width:40px; height:25px; background: linear-gradient(135deg, #8a7a4a 0%, #5a4a2a 100%); border-radius: 40% 60% 50% 50% / 30% 50% 50% 40%; animation: ms-bag 10s ease-in-out infinite alternate; }
.scn-melancholy-similes .lute { position:absolute; bottom:28%; left:50%; width:20px; height:35px; background: radial-gradient(ellipse 90% 60% at 50% 40%, #a08050 0%, #6a4a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-15deg); animation: ms-lute 9s ease-in-out infinite; }
.scn-melancholy-similes .hare { position:absolute; bottom:25%; left:55%; width:18px; height:22px; background: radial-gradient(ellipse 60% 80% at 50% 70%, #7a6a5a 0%, #4a3e34 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; animation: ms-hare 5s ease-in-out infinite; }
.scn-melancholy-similes .shadow-bag { position:absolute; bottom:28%; right:18%; width:45px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 80%); filter: blur(4px); animation: ms-shadow 12s linear infinite; }
@keyframes ms-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ms-cat { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.1); } }
@keyframes ms-bag { 0% { transform: scale(1) rotate(0); } 100% { transform: scale(1.05) rotate(5deg); } }
@keyframes ms-lute { 0% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(-10deg) scaleY(1.08); } 100% { transform: rotate(-18deg) scaleY(.95); } }
@keyframes ms-hare { 0%,100% { transform: translateX(0) rotate(0); } 30% { transform: translateX(4px) rotate(8deg); } 70% { transform: translateX(-2px) rotate(-5deg); } }
@keyframes ms-shadow { 0% { opacity:.5; transform: translateX(0) scaleX(1); } 50% { opacity:.3; transform: translateX(5px) scaleX(1.3); } 100% { opacity:.5; transform: translateX(0) scaleX(1); } }

.scn-wisdom-cries-out { background: linear-gradient(180deg, #1a1410 0%, #2a2018 50%, #3a2e26 100%), radial-gradient(ellipse at 50% 60%, #4a3e34 0%, transparent 80%); }
.scn-wisdom-cries-out .bg-street { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #3a2e26 0%, #2a2018 80%); border-radius: 0 0 50% 50% / 0 0 20% 20%; animation: wco-street 18s ease-in-out infinite alternate; }
.scn-wisdom-cries-out .lamp-post { position:absolute; bottom:25%; left:45%; width:12px; height:70px; background: linear-gradient(180deg, #5a4a3a 0%, #1a1410 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 10px 2px rgba(255,200,100,.3); animation: wco-lamp 6s ease-in-out infinite; }
.scn-wisdom-cries-out .shouting-figure { position:absolute; bottom:30%; left:35%; width:28px; height:45px; background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wco-shout 3s ease-in-out infinite; }
.scn-wisdom-cries-out .light-glow { position:absolute; bottom:55%; left:42%; width:40px; height:60px; background: radial-gradient(ellipse, rgba(255,220,150,.15) 0%, transparent 70%); filter: blur(10px); animation: wco-glow 8s ease-in-out infinite alternate; }
.scn-wisdom-cries-out .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; animation: wco-ground 14s ease-in-out infinite; }
.scn-wisdom-cries-out .echo-ring { position:absolute; bottom:30%; left:30%; width:60px; height:60px; border: 2px solid rgba(255,200,100,.2); border-radius: 50%; filter: blur(2px); animation: wco-echo 5s ease-out infinite; }
@keyframes wco-street { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes wco-lamp { 0%,100% { transform: scaleY(1); box-shadow: 0 0 8px 2px rgba(255,200,100,.2); } 50% { transform: scaleY(1.05); box-shadow: 0 0 20px 6px rgba(255,200,100,.5); } }
@keyframes wco-shout { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-5px) rotate(5deg); } 75% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes wco-glow { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.2); } 100% { opacity:.4; transform: scale(.9); } }
@keyframes wco-ground { 0% { opacity:.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:.9; transform: scaleY(1); } }
@keyframes wco-echo { 0% { transform: scale(1); opacity:.5; } 100% { transform: scale(2.5); opacity:0; } }

/* Scene 1: envy-northumberland */
.scn-envy-northumberland {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #d4c4a8 40%, #b8a890 100%),
    radial-gradient(ellipse at 40% 80%, #e0d0b8 0%, transparent 60%);
}
.scn-envy-northumberland .window-frame {
  position: absolute; inset: 5% 10% 50% 10%;
  border: 6px solid #5a4a3a;
  background: linear-gradient(180deg, #c8e8f0 0%, #a0c8d8 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.15);
  animation: envy-shimmer 7s ease-in-out infinite alternate;
}
.scn-envy-northumberland .grove {
  position: absolute; bottom: 30%; left: 12%; right: 12%; height: 45%;
  background: linear-gradient(180deg, #7a8a6a 0%, #4a5a3a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  clip-path: polygon(0% 100%, 10% 60%, 30% 75%, 50% 50%, 70% 70%, 90% 55%, 100% 100%);
  animation: envy-breathe 5s ease-in-out infinite;
}
.scn-envy-northumberland .tree-straight {
  position: absolute; bottom: 25%; left: 45%; width: 8px; height: 60%;
  background: linear-gradient(180deg, #5a4a2a, #3a2a1a);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: envy-sway 4s ease-in-out infinite;
}
.scn-envy-northumberland .tree-straight::after {
  content: ''; position: absolute; top: -20px; left: -18px; width: 44px; height: 40px;
  background: radial-gradient(ellipse, #5a8a4a 0%, #3a5a2a 70%);
  border-radius: 50%;
}
.scn-envy-northumberland .figure-standing {
  position: absolute; bottom: 26%; left: 55%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: envy-turn 6s ease-in-out infinite alternate;
}
.scn-envy-northumberland .shadow-long {
  position: absolute; bottom: 24%; left: 50%; width: 40px; height: 12px;
  background: rgba(0,0,0,0.25);
  border-radius: 50%;
  filter: blur(3px);
  transform: skewX(-20deg);
  animation: envy-shadow 6s ease-in-out infinite alternate;
}
.scn-envy-northumberland .table-ledge {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 8px;
  background: linear-gradient(90deg, #8a7a6a 0%, #6a5a4a 50%, #8a7a6a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
@keyframes envy-shimmer { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes envy-breathe { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes envy-sway { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes envy-turn { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(3deg) scaleX(0.95); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes envy-shadow { 0% { transform: skewX(-20deg) scaleX(1); } 50% { transform: skewX(-20deg) scaleX(1.2); } 100% { transform: skewX(-20deg) scaleX(1); } }

/* Scene 2: wish-for-harry-percy */
.scn-wish-for-harry-percy {
  background:
    linear-gradient(180deg, #e8dccc 0%, #d4c4b0 50%, #b8a898 100%),
    radial-gradient(ellipse at 50% 70%, #e8d8c0 0%, transparent 60%);
}
.scn-wish-for-harry-percy .inner-wall {
  position: absolute; inset: 10% 5% 30% 5%;
  background: linear-gradient(180deg, #e0d4c0 0%, #c8b8a0 100%);
  border-radius: 6px;
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.1);
}
.scn-wish-for-harry-percy .cradle {
  position: absolute; bottom: 15%; left: 35%; width: 120px; height: 60px;
  background: linear-gradient(135deg, #8a7050 0%, #6a5030 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: wish-rock 3s ease-in-out infinite alternate;
}
.scn-wish-for-harry-percy .infant-swaddle {
  position: absolute; bottom: 20%; left: 38%; width: 30px; height: 25px;
  background: radial-gradient(ellipse at 50% 40%, #e8e0d0 0%, #c0b0a0 100%);
  border-radius: 40%;
  animation: wish-breathe 2s ease-in-out infinite;
}
.scn-wish-for-harry-percy .infant-other {
  position: absolute; bottom: 20%; left: 58%; width: 28px; height: 22px;
  background: radial-gradient(ellipse at 50% 40%, #e0d8c8 0%, #b8a898 100%);
  border-radius: 40%;
  animation: wish-breathe 2s ease-in-out infinite 1s;
}
.scn-wish-for-harry-percy .mother-silhouette {
  position: absolute; bottom: 22%; left: 20%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: wish-lean 5s ease-in-out infinite alternate;
}
.scn-wish-for-harry-percy .fairy-dust {
  position: absolute; top: 20%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffe080 0%, #d0a060 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #d0a060;
  animation: wish-twinkle 4s ease-in-out infinite;
}
@keyframes wish-rock { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes wish-breathe { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.05) scaleX(0.95); } 100% { transform: scaleY(1) scaleX(1); } }
@keyframes wish-lean { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(2deg) translateX(5px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes wish-twinkle { 0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.3; transform: scale(0.8); } }

/* Scene 3: worcesters-influence */
.scn-worcesters-influence {
  background:
    linear-gradient(180deg, #e8d8c0 0%, #c8b8a0 60%, #a8a090 100%),
    radial-gradient(ellipse at 60% 80%, #d0c0a8 0%, transparent 50%);
}
.scn-worcesters-influence .room-bg {
  position: absolute; inset: 5% 8% 25% 8%;
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a898 100%);
  border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.1);
}
.scn-worcesters-influence .young-percy {
  position: absolute; bottom: 22%; left: 30%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: worc-straighten 5s ease-in-out infinite alternate;
}
.scn-worcesters-influence .pruning-hands {
  position: absolute; bottom: 40%; left: 42%; width: 18px; height: 20px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: 50% 0;
  animation: worc-snip 2s ease-in-out infinite;
}
.scn-worcesters-influence .branch-up {
  position: absolute; bottom: 35%; left: 55%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: worc-grow 6s ease-in-out infinite;
}
.scn-worcesters-influence .branch-up::after {
  content: ''; position: absolute; top: -10px; left: -8px; width: 22px; height: 20px;
  background: radial-gradient(ellipse, #6a8a5a 0%, #4a6a3a 70%);
  border-radius: 50%;
}
.scn-worcesters-influence .shadow-worcester {
  position: absolute; bottom: 18%; left: 50%; width: 60px; height: 50px;
  background: rgba(0,0,0,0.2);
  clip-path: polygon(0% 100%, 20% 40%, 50% 60%, 80% 30%, 100% 100%);
  filter: blur(6px);
  animation: worc-creep 8s ease-in-out infinite alternate;
}
.scn-worcesters-influence .desk-letter {
  position: absolute; bottom: 16%; left: 20%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #f0e8d8 0%, #c8b898 100%);
  border-radius: 2px;
  box-shadow: 1px 1px 4px rgba(0,0,0,0.2);
  transform: rotate(-5deg);
  animation: worc-slide 7s ease-in-out infinite alternate;
}
@keyframes worc-straighten { 0% { transform: rotate(-2deg) scaleY(1); } 50% { transform: rotate(0deg) scaleY(1.02); } 100% { transform: rotate(2deg) scaleY(1); } }
@keyframes worc-snip { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes worc-grow { 0% { transform: scaleY(0.95); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }
@keyframes worc-creep { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(10px) scaleX(1.1); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes worc-slide { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(5px); } 100% { transform: rotate(-5deg) translateX(0); } }

/* Scene 4: prince-apartment-morning */
.scn-prince-apartment-morning {
  background:
    linear-gradient(180deg, #b8a898 0%, #8a7a6a 30%, #6a5a4a 100%),
    radial-gradient(ellipse at 60% 20%, #d4c0a8 0%, transparent 50%);
}
.scn-prince-apartment-morning .morning-window {
  position: absolute; top: 8%; right: 10%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #e0e8f0 0%, #a0b0c0 100%);
  border: 4px solid #4a3a2a;
  border-radius: 4px;
  box-shadow: 0 0 40px rgba(200,200,240,0.5);
  animation: prince-light-sweep 12s ease-in-out infinite alternate;
}
.scn-prince-apartment-morning .bench-sleep {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 40px;
  background: linear-gradient(180deg, #6a5040 0%, #4a3a2a 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-prince-apartment-morning .falstaff-belly {
  position: absolute; bottom: 24%; left: 20%; width: 60px; height: 50px;
  background: radial-gradient(ellipse at 50% 40%, #8a7050 0%, #5a4a3a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: prince-jiggle 2s ease-in-out infinite;
}
.scn-prince-apartment-morning .prince-lean {
  position: absolute; bottom: 22%; right: 20%; width: 20px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: prince-sway 4s ease-in-out infinite alternate;
}
.scn-prince-apartment-morning .wine-sack {
  position: absolute; bottom: 18%; left: 40%; width: 25px; height: 35px;
  background: radial-gradient(ellipse at 50% 50%, #6a4020 0%, #4a2810 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: prince-roll 8s ease-in-out infinite;
}
.scn-prince-apartment-morning .spilled-goblet {
  position: absolute; bottom: 16%; left: 55%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #c0a880 0%, #a08860 100%);
  border-radius: 4px;
  transform: rotate(30deg);
  animation: prince-tilt 5s ease-in-out infinite alternate;
}
.scn-prince-apartment-morning .morning-light {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 60% 20%, rgba(240,240,200,0.3) 0%, transparent 60%);
  pointer-events: none;
  animation: prince-pulse 6s ease-in-out infinite alternate;
}
@keyframes prince-light-sweep { 0% { opacity: 0.6; box-shadow: 0 0 20px rgba(200,200,240,0.3); } 50% { opacity: 1; box-shadow: 0 0 60px rgba(200,200,240,0.7); } 100% { opacity: 0.7; box-shadow: 0 0 30px rgba(200,200,240,0.4); } }
@keyframes prince-jiggle { 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 prince-sway { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(2deg) translateX(3px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes prince-roll { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(10deg) translateY(-1px); } 75% { transform: rotate(-5deg) translateY(1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes prince-tilt { 0% { transform: rotate(30deg); } 50% { transform: rotate(25deg); } 100% { transform: rotate(30deg); } }
@keyframes prince-pulse { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* welsh-bad-tidings */
.scn-welsh-bad-tidings { background: linear-gradient(180deg, #1a0f1a 0%, #2c1a1a 40%, #0f0a0a 100%); }
.scn-welsh-bad-tidings .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2c1a1a 0%, #1a0f0a 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; }
.scn-welsh-bad-tidings .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.6); }
.scn-welsh-bad-tidings .table { position:absolute; bottom:18%; left:50%; width:120px; height:16px; transform:translateX(-50%); background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #4a3a2a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-welsh-bad-tidings .candle-flame { position:absolute; bottom:40%; left:50%; width:6px; height:18px; transform:translateX(-50%); background: linear-gradient(0deg, #ff8040 0%, #ffcc60 50%, #fff0a0 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 20px 6px #ff8040, 0 0 40px 12px rgba(255,128,64,.4); animation: wbt-flame 2s ease-in-out infinite alternate; }
.scn-welsh-bad-tidings .messenger { position:absolute; bottom:14%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #0f0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wbt-figure 6s ease-in-out infinite; }
.scn-welsh-bad-tidings .shadow-scar { position:absolute; bottom:12%; left:60%; width:40px; height:6px; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 70%); border-radius:50%; filter:blur(3px); animation: wbt-shadow 8s ease-in-out infinite; }
.scn-welsh-bad-tidings .particle { position:absolute; bottom:45%; left:48%; width:2px; height:2px; background:#ffd080; border-radius:50%; box-shadow: 0 0 4px 2px rgba(255,208,128,.6); animation: wbt-particle 5s ease-in-out infinite; }
.scn-welsh-bad-tidings .p2 { left:52%; animation-delay:-2s; }
@keyframes wbt-flame { 0% { transform:translateX(-50%) scaleX(1) scaleY(1); opacity:.9 } 50% { transform:translateX(-50%) scaleX(1.2) scaleY(0.9); opacity:1 } 100% { transform:translateX(-50%) scaleX(0.9) scaleY(1.1); opacity:.85 } }
@keyframes wbt-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 30% { transform: translateX(-5px) translateY(-2px) rotate(1deg) } 70% { transform: translateX(10px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(2deg) } }
@keyframes wbt-shadow { 0% { transform: translateX(0) scaleX(1); opacity:.6 } 50% { transform: translateX(3px) scaleX(1.2); opacity:.8 } 100% { transform: translateX(-2px) scaleX(0.9); opacity:.4 } }
@keyframes wbt-particle { 0% { transform: translateY(0) scale(1); opacity:0 } 20% { opacity:1 } 80% { opacity:1 } 100% { transform: translateY(-30px) scale(0.5); opacity:0 } }

/* holy-land-delayed */
.scn-holy-land-delayed { background: linear-gradient(180deg, #e8d8b0 0%, #c8b888 40%, #a89868 100%), radial-gradient(ellipse at 50% 0%, #fff0d0 0%, transparent 70%); }
.scn-holy-land-delayed .bg-throne { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #d0c0a0 0%, #b8a880 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; }
.scn-holy-land-delayed .throne { position:absolute; bottom:25%; left:50%; width:80px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,.3); }
.scn-holy-land-delayed .king { position:absolute; bottom:20%; left:50%; width:36px; height:48px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hld-king 4s ease-in-out infinite; }
.scn-holy-land-delayed .courtier-left { position:absolute; bottom:22%; left:25%; width:24px; height:40px; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hld-bow 6s ease-in-out infinite; }
.scn-holy-land-delayed .courtier-right { position:absolute; bottom:22%; right:25%; width:24px; height:40px; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hld-bow 6s ease-in-out infinite reverse; }
.scn-holy-land-delayed .banner-left { position:absolute; bottom:35%; left:15%; width:14px; height:60px; background: linear-gradient(180deg, #a8381a 0%, #5e1a0d 100%); border-radius:2px; box-shadow: -2px 0 4px rgba(0,0,0,.3); transform-origin:bottom; animation: hld-banner 10s ease-in-out infinite; }
.scn-holy-land-delayed .banner-right { position:absolute; bottom:35%; right:15%; width:14px; height:60px; background: linear-gradient(180deg, #a8381a 0%, #5e1a0d 100%); border-radius:2px; box-shadow: 2px 0 4px rgba(0,0,0,.3); transform-origin:bottom; animation: hld-banner 10s ease-in-out infinite reverse; }
.scn-holy-land-delayed .light-shaft { position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(180deg, rgba(255,255,220,.15) 0%, rgba(255,255,200,.05) 100%); filter:blur(8px); animation: hld-shaft 8s ease-in-out infinite alternate; }
@keyframes hld-king { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(-1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(1deg) } }
@keyframes hld-bow { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(5deg) } 70% { transform: translateY(-1px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes hld-banner { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(3deg) scaleX(0.95) } 100% { transform: rotate(-3deg) scaleX(1.05) } }
@keyframes hld-shaft { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.2 } }

/* holmedon-battle-report */
.scn-holmedon-battle-report { background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 30%, #2a2a3a 100%), radial-gradient(ellipse at 50% 0%, #6a6a7a 0%, transparent 60%); }
.scn-holmedon-battle-report .sky-overcast { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); animation: hbp-sky 15s ease-in-out infinite alternate; }
.scn-holmedon-battle-report .ground-mud { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-holmedon-battle-report .hill-left { position:absolute; bottom:30%; left:0; width:40%; height:20%; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 0 80% 0 0 / 0 60% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.4); animation: hbp-hill 20s ease-in-out infinite; }
.scn-holmedon-battle-report .hill-right { position:absolute; bottom:30%; right:0; width:40%; height:20%; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 80% 0 0 0 / 60% 0 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.4); animation: hbp-hill 20s ease-in-out infinite reverse; }
.scn-holmedon-battle-report .soldier-fallen { position:absolute; bottom:18%; left:30%; width:20px; height:14px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform: rotate(70deg); animation: hbp-fallen 12s ease-in-out infinite; }
.scn-holmedon-battle-report .soldier-standing { position:absolute; bottom:20%; left:60%; width:18px; height:36px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hbp-stand 5s ease-in-out infinite; }
.scn-holmedon-battle-report .flag-broken { position:absolute; bottom:25%; left:55%; width:4px; height:30px; background: #4a4a3a; border-radius:2px; transform: rotate(-15deg); transform-origin: bottom center; animation: hbp-flag 7s ease-in-out infinite; }
.scn-holmedon-battle-report .flag-sway { position:absolute; bottom:25%; left:55%; width:20px; height:12px; margin-left:-2px; background: linear-gradient(90deg, #5a1a0a 0%, #3a0a00 100%); border-radius: 0 40% 40% 0; transform: rotate(-15deg); transform-origin: left center; animation: hbp-sway 7s ease-in-out infinite; }
.scn-holmedon-battle-report .smoke-wisp { position:absolute; bottom:40%; left:50%; width:30px; height:20px; background: radial-gradient(ellipse, rgba(60,60,70,.3) 0%, transparent 70%); filter:blur(6px); animation: hbp-smoke 25s linear infinite; }
@keyframes hbp-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes hbp-hill { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(2px) scaleX(1.05) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes hbp-fallen { 0% { transform: rotate(70deg) translateX(0) } 50% { transform: rotate(72deg) translateX(2px) } 100% { transform: rotate(68deg) translateX(0) } }
@keyframes hbp-stand { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(2deg) } 70% { transform: translateY(0) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes hbp-flag { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-12deg) } 100% { transform: rotate(-18deg) } }
@keyframes hbp-sway { 0% { transform: rotate(-15deg) scaleY(1) } 50% { transform: rotate(-12deg) scaleY(0.9) } 100% { transform: rotate(-18deg) scaleY(1.1) } }
@keyframes hbp-smoke { 0% { transform: translateX(0) translateY(0) scale(1); opacity:.3 } 50% { transform: translateX(20px) translateY(-10px) scale(1.5); opacity:.5 } 100% { transform: translateX(40px) translateY(-30px) scale(0.8); opacity:0 } }

/* douglas-defeated */
.scn-douglas-defeated { background: linear-gradient(180deg, #d8c8a0 0%, #c0b088 40%, #a89868 100%), radial-gradient(ellipse at 50% 100%, #e8d8b0 0%, transparent 70%); }
.scn-douglas-defeated .bg-hall { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #e0d0b0 0%, #c8b890 100%); border-radius: 0 0 20% 20% / 0 0 5% 5%; }
.scn-douglas-defeated .pillar-left { position:absolute; bottom:0; left:10%; width:20px; height:80%; background: linear-gradient(90deg, #b8a888 0%, #d8c8a8 50%, #b8a888 100%); border-radius:8px; box-shadow: 2px 0 6px rgba(0,0,0,.2); }
.scn-douglas-defeated .pillar-right { position:absolute; bottom:0; right:10%; width:20px; height:80%; background: linear-gradient(90deg, #b8a888 0%, #d8c8a8 50%, #b8a888 100%); border-radius:8px; box-shadow: -2px 0 6px rgba(0,0,0,.2); }
.scn-douglas-defeated .floor-tile { position:absolute; bottom:0; left:0; right:0; height:15%; background: repeating-linear-gradient(90deg, #a89868 0px, #a89868 40px, #b8a880 40px, #b8a880 80px); box-shadow: inset 0 8px 16px rgba(0,0,0,.2); }
.scn-douglas-defeated .king-s { position:absolute; bottom:18%; left:50%; width:32px; height:44px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dd-king 5s ease-in-out infinite; }
.scn-douglas-defeated .messenger-warm { position:absolute; bottom:20%; left:25%; width:22px; height:36px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dd-messenger 7s ease-in-out infinite; }
.scn-douglas-defeated .courtier-warm { position:absolute; bottom:20%; right:25%; width:22px; height:36px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dd-messenger 7s ease-in-out infinite reverse; }
.scn-douglas-defeated .torch-glow { position:absolute; bottom:35%; left:50%; width:30px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, #ffd080 0%, #ffb040 40%, transparent 70%); border-radius:50%; filter:blur(4px); animation: dd-torch 3s ease-in-out infinite alternate; }
.scn-douglas-defeated .celebrate-spark { position:absolute; bottom:50%; left:45%; width:4px; height:4px; background:#ffe080; border-radius:50%; box-shadow: 0 0 6px 2px #ffd060; animation: dd-spark 4s ease-in-out infinite; }
@keyframes dd-king { 0% { transform: translateX(-50%) translateY(0) scaleY(1) } 50% { transform: translateX(-50%) translateY(-2px) scaleY(0.95) } 100% { transform: translateX(-50%) translateY(0) scaleY(1.05) } }
@keyframes dd-messenger { 0% { transform: translateY(0) rotate(0deg) } 40% { transform: translateY(-3px) rotate(4deg) } 80% { transform: translateY(0) rotate(-3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes dd-torch { 0% { opacity:.8; transform:translateX(-50%) scale(1) } 50% { opacity:1; transform:translateX(-50%) scale(1.2) } 100% { opacity:.7; transform:translateX(-50%) scale(0.9) } }
@keyframes dd-spark { 0% { transform: translate(0,0) scale(1); opacity:0 } 20% { opacity:1 } 80% { opacity:1 } 100% { transform: translate(-10px,-40px) scale(0.3); opacity:0 } }

.scn-mock-court-scene {
  background: 
    linear-gradient(180deg, #2a1e12 0%, #1a1008 40%, #3a2818 100%),
    radial-gradient(ellipse at 50% 80%, #4a3822 0%, transparent 70%);
}
.scn-mock-court-scene .backdrop { position:absolute; inset:0; background: linear-gradient(180deg, #4a3822 0%, #1a1008 100%); animation: mcs-flicker 8s ease-in-out infinite alternate; }
.scn-mock-court-scene .stool { position:absolute; bottom:25%; left:45%; width:22px; height:18px; background: linear-gradient(135deg, #6a5030 0%, #3a2818 100%); border-radius:4px 4px 0 0; transform: rotate(-5deg); animation: mcs-wobble 3s ease-in-out infinite; }
.scn-mock-court-scene .dagger { position:absolute; bottom:32%; left:55%; width:30px; height:6px; background: linear-gradient(90deg, #c0b090 0%, #806040 50%, #c0b090 100%); border-radius: 50% 0 0 50%; transform: rotate(30deg); animation: mcs-glimmer 2s ease-in-out infinite alternate; }
.scn-mock-court-scene .crown { position:absolute; bottom:48%; left:48%; width:28px; height:12px; background: linear-gradient(135deg, #d0b050 0%, #a08030 100%); border-radius: 50% 50% 0 0; box-shadow: 0 -4px 8px rgba(180,140,60,.5); animation: mcs-bob 4s ease-in-out infinite; }
.scn-mock-court-scene .cup { position:absolute; bottom:22%; left:38%; width:16px; height:20px; background: linear-gradient(180deg, #705030 0%, #402818 100%); border-radius: 0 0 6px 6px; animation: mcs-tilt 5s ease-in-out infinite; }
.scn-mock-court-scene .judge { position:absolute; bottom:20%; left:50%; width:24px; height:40px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: mcs-sway 6s ease-in-out infinite; }
.scn-mock-court-scene .curtain { position:absolute; top:10%; left:80%; width:20px; height:70%; background: linear-gradient(180deg, #8a5030 0%, #4a2818 100%); border-radius: 10% 0 0 10%; box-shadow: -4px 0 12px rgba(0,0,0,.4); animation: mcs-drape 12s ease-in-out infinite alternate; }

@keyframes mcs-flicker { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes mcs-wobble { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(-7deg) } }
@keyframes mcs-glimmer { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes mcs-bob { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes mcs-tilt { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes mcs-sway { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-45%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes mcs-drape { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(.95) } }

.scn-sheriff-arrives {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1e14 30%, #140e0a 100%),
    radial-gradient(ellipse at 50% 60%, #3a2818 0%, transparent 70%);
}
.scn-sheriff-arrives .room { position:absolute; inset:0; background: linear-gradient(180deg, #3a2818 0%, #0e0a06 100%); animation: sa-pulse 10s ease-in-out infinite alternate; }
.scn-sheriff-arrives .arras { position:absolute; left:20%; top:15%; width:30px; height:75%; background: linear-gradient(135deg, #5a3a2a 0%, #2a1a10 50%, #4a2e1c 100%); border-radius: 4px 0 0 4px; transform: skewX(-5deg); animation: sa-shiver 5s ease-in-out infinite; }
.scn-sheriff-arrives .hiding { position:absolute; left:22%; bottom:20%; width:18px; height:35px; background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sa-hide 6s ease-in-out infinite alternate; }
.scn-sheriff-arrives .sheriff { position:absolute; right:15%; bottom:18%; width:28px; height:42px; background: linear-gradient(180deg, #3a2a1e 0%, #1a140e 100%); border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%; animation: sa-enter 8s ease-in-out infinite; }
.scn-sheriff-arrives .lamp{ position:absolute; top:40%; left:60%; width:8px; height:12px; background: radial-gradient(circle, #e0c080 0%, #a08040 70%); border-radius: 50%; box-shadow: 0 0 20px 8px #a08040, 0 0 40px 16px rgba(160,128,64,.4); animation: sa-glow 3s ease-in-out infinite alternate; }
.scn-sheriff-arrives .shadow{ position:absolute; right:12%; bottom:10%; width:40px; height:8px; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(3px); animation: sa-stretch 8s ease-in-out infinite; }

@keyframes sa-pulse { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes sa-shiver { 0% { transform: skewX(-5deg) translateX(0) } 50% { transform: skewX(-3deg) translateX(-2px) } 100% { transform: skewX(-6deg) translateX(0) } }
@keyframes sa-hide { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(.95) } 100% { transform: translateY(0) scale(1) } }
@keyframes sa-enter { 0% { transform: translateX(20px) scale(1.1) } 50% { transform: translateX(0) scale(1) } 100% { transform: translateX(10px) scale(1.05) } }
@keyframes sa-glow { 0% { box-shadow: 0 0 15px 4px #a08040, 0 0 30px 8px rgba(160,128,64,.3); opacity:.8 } 50% { box-shadow: 0 0 25px 8px #e0c080, 0 0 50px 16px rgba(224,192,128,.5); opacity:1 } 100% { box-shadow: 0 0 18px 5px #a08040, 0 0 35px 10px rgba(160,128,64,.35); opacity:.85 } }
@keyframes sa-stretch { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }

.scn-item-falstaffs-papers {
  background: 
    linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 70%, #3a2818 0%, transparent 80%);
}
.scn-item-falstaffs-papers .table { position:absolute; bottom:15%; left:20%; right:20%; height:45%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%); border-radius: 6px 6px 0 0; animation: ifp-shift 9s ease-in-out infinite alternate; }
.scn-item-falstaffs-papers .paper { position:absolute; bottom:35%; left:35%; width:45px; height:30px; background: linear-gradient(135deg, #c8b898 0%, #a89070 100%); border-radius: 2px; transform: rotate(-2deg); box-shadow: 2px 2px 6px rgba(0,0,0,.3); animation: ifp-flutter 5s ease-in-out infinite; }
.scn-item-falstaffs-papers .hand { position:absolute; bottom:40%; left:45%; width:12px; height:16px; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 50% 50% 30% 30%; transform: rotate(-10deg); animation: ifp-point 4s ease-in-out infinite; }
.scn-item-falstaffs-papers .capon { position:absolute; bottom:50%; left:30%; width:20px; height:16px; background: linear-gradient(180deg, #b09070 0%, #807060 100%); border-radius: 50% 50% 40% 40%; animation: ifp-bob 6s ease-in-out infinite; }
.scn-item-falstaffs-papers .sack { position:absolute; bottom:52%; left:55%; width:14px; height:22px; background: linear-gradient(180deg, #705030 0%, #402818 100%); border-radius: 4px; animation: ifp-sway 7s ease-in-out infinite; }
.scn-item-falstaffs-papers .anchovies { position:absolute; bottom:48%; left:40%; width:10px; height:4px; background: #906060; border-radius: 4px; transform: rotate(15deg); animation: ifp-wiggle 3s ease-in-out infinite; }
.scn-item-falstaffs-papers .bread { position:absolute; bottom:50%; left:25%; width:12px; height:12px; background: radial-gradient(circle, #d0c090 0%, #b0a080 100%); border-radius: 50%; animation: ifp-roll 8s linear infinite; }

@keyframes ifp-shift { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ifp-flutter { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes ifp-point { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(3px) } 100% { transform: rotate(-10deg) translateX(0) } }
@keyframes ifp-bob { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes ifp-sway { 0% { transform: rotate(0) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0) } }
@keyframes ifp-wiggle { 0% { transform: rotate(15deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(15deg) } }
@keyframes ifp-roll { 0% { transform: translateX(0) rotate(0) } 100% { transform: translateX(40px) rotate(360deg) } }

.scn-bangor-archdeacons-house {
  background: 
    linear-gradient(180deg, #0a0a20 0%, #121230 40%, #080818 100%),
    radial-gradient(ellipse at 50% 0%, #1a1a40 0%, transparent 70%);
}
.scn-bangor-archdeacons-house .night-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0a0a20 0%, #181840 100%); animation: bah-stars 30s ease-in-out infinite alternate; }
.scn-bangor-archdeacons-house .window { position:absolute; top:15%; left:60%; width:40px; height:50px; border: 3px solid #2a2a4a; background: linear-gradient(180deg, #202050 0%, #0a0a30 100%); border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: bah-moonlight 10s ease-in-out infinite alternate; }
.scn-bangor-archdeacons-house .moon { position:absolute; top:10%; left:65%; width:18px; height:18px; background: rgba(200,200,255,.7); border-radius: 50%; box-shadow: 0 0 30px 6px rgba(180,200,255,.4), 0 0 60px 12px rgba(180,200,255,.2); animation: bah-glow 6s ease-in-out infinite alternate; }
.scn-bangor-archdeacons-house .table { position:absolute; bottom:20%; left:30%; right:30%; height:20%; background: linear-gradient(180deg, #282840 0%, #181830 100%); border-radius: 8px 8px 0 0; animation: bah-still 12s ease-in-out infinite; }
.scn-bangor-archdeacons-house .figure-hotspur { position:absolute; bottom:25%; left:35%; width:16px; height:32px; background: linear-gradient(180deg, #181830 0%, #0a0a18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-3deg); animation: bah-shift 7s ease-in-out infinite; }
.scn-bangor-archdeacons-house .figure-worcester { position:absolute; bottom:25%; left:45%; width:18px; height:34px; background: linear-gradient(180deg, #202040 0%, #101020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bah-shift 8s ease-in-out infinite reverse; }
.scn-bangor-archdeacons-house .figure-mortimer { position:absolute; bottom:25%; left:55%; width:16px; height:30px; background: linear-gradient(180deg, #1a1a38 0%, #080820 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(2deg); animation: bah-shift 9s ease-in-out infinite; }
.scn-bangor-archdeacons-house .figure-glendower { position:absolute; bottom:25%; left:65%; width:18px; height:34px; background: linear-gradient(180deg, #222248 0%, #12122a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bah-shift 7s ease-in-out infinite alternate; }
.scn-bangor-archdeacons-house .candle { position:absolute; bottom:28%; left:50%; width:4px; height:10px; background: #806040; border-radius: 2px 2px 0 0; transform: translateX(-50%); animation: bah-flicker 2s ease-in-out infinite alternate; }
.scn-bangor-archdeacons-house .candle::after { content:''; position:absolute; top:-8px; left:50%; width:8px; height:8px; background: radial-gradient(circle, #ffd080 0%, #b08040 70%); border-radius: 50%; transform: translateX(-50%); box-shadow: 0 0 12px 4px #b08040; animation: bah-flame 2s ease-in-out infinite alternate; }

@keyframes bah-stars { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes bah-moonlight { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes bah-glow { 0% { box-shadow: 0 0 20px 4px rgba(180,200,255,.3) } 50% { box-shadow: 0 0 40px 8px rgba(180,200,255,.5) } 100% { box-shadow: 0 0 25px 5px rgba(180,200,255,.35) } }
@keyframes bah-still { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes bah-shift { 0% { transform: rotate(-1deg) translateX(0) } 50% { transform: rotate(1deg) translateX(2px) } 100% { transform: rotate(-1deg) translateX(0) } }
@keyframes bah-flicker { 0% { opacity:.8; transform: translateX(-50%) scaleY(1) } 50% { opacity:1; transform: translateX(-50%) scaleY(1.1) } 100% { opacity:.9; transform: translateX(-50%) scaleY(1) } }
@keyframes bah-flame { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.1) } 100% { transform: translateX(-50%) scale(.95) } }

.scn-jest-of-lies { background: linear-gradient(180deg, #1a1412 0%, #2a1f1a 60%, #1a0f0a 100%), radial-gradient(ellipse at 30% 70%, #3a2a1a 0%, transparent 60%); }
.scn-jest-of-lies .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1412 0%, #2a1f1a 60%, #1a0f0a 100%); }
.scn-jest-of-lies .table { position:absolute; bottom:18%; left:30%; right:20%; height:12%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius:8% 8% 0 0; box-shadow: 0 4px 10px rgba(0,0,0,.6); }
.scn-jest-of-lies .candle-glow { position:absolute; bottom:32%; left:42%; width:16px; height:24px; background: radial-gradient(circle, #e09050 0%, #c07030 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 12px rgba(224,144,80,.4); animation: jl-candle 3s ease-in-out infinite alternate; }
.scn-jest-of-lies .fat-rogue { position:absolute; bottom:22%; left:38%; width:50px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jl-rogue 6s ease-in-out infinite; }
.scn-jest-of-lies .shadow-wall { position:absolute; bottom:18%; right:10%; width:120px; height:100px; background: rgba(0,0,0,.3); border-radius:50%; filter: blur(12px); animation: jl-shadow 8s ease-in-out infinite alternate; }
.scn-jest-of-lies .plate { position:absolute; bottom:22%; left:48%; width:22px; height:6px; background: radial-gradient(circle, #6a4a2a 0%, #3a2010 100%); border-radius:50%; box-shadow: inset 0 2px 4px rgba(255,255,255,.1); }
@keyframes jl-candle { 0% { opacity:.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:.8; transform:scale(.95); } }
@keyframes jl-rogue { 0%,100% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(0deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-3px) rotate(0deg); } }
@keyframes jl-shadow { 0% { transform: translateY(0); opacity:.3; } 50% { transform: translateY(-5px); opacity:.5; } 100% { transform: translateY(0); opacity:.3; } }

.scn-soliloquy-sun-and-clouds { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4a 40%, #3a3a5a 100%), radial-gradient(ellipse at 50% 10%, #5a5a7a 0%, transparent 80%); }
.scn-soliloquy-sun-and-clouds .sky-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4a 60%, #3a3a5a 100%); }
.scn-soliloquy-sun-and-clouds .sun-core { position:absolute; top:5%; left:50%; width:40px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, #ffd080 0%, #d09040 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,208,128,.3); animation: ssc-sun 12s ease-in-out infinite alternate; }
.scn-soliloquy-sun-and-clouds .sun-halo { position:absolute; top:3%; left:48%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,208,128,.15) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: ssc-halo 12s ease-in-out infinite alternate; }
.scn-soliloquy-sun-and-clouds .cloud-left { position:absolute; top:6%; left:15%; width:100px; height:20px; background: linear-gradient(180deg, rgba(60,60,80,.6) 0%, rgba(40,40,60,.3) 100%); border-radius:50%; filter: blur(5px); animation: ssc-cloud-l 30s linear infinite; }
.scn-soliloquy-sun-and-clouds .cloud-right { position:absolute; top:8%; right:10%; width:120px; height:18px; background: linear-gradient(180deg, rgba(60,60,80,.7) 0%, rgba(40,40,60,.2) 100%); border-radius:50%; filter: blur(4px); animation: ssc-cloud-r 35s linear infinite reverse; }
.scn-soliloquy-sun-and-clouds .light-ray { position:absolute; top:10%; left:50%; width:6px; height:90%; background: linear-gradient(180deg, rgba(255,208,128,.15) 0%, transparent 100%); transform-origin: top center; transform: translateX(-50%) skewX(-10deg); animation: ssc-ray 14s ease-in-out infinite alternate; }
.scn-soliloquy-sun-and-clouds .figure-prince { position:absolute; bottom:12%; left:50%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: ssc-figure 8s ease-in-out infinite; }
@keyframes ssc-sun { 0%,100% { opacity:.6; transform: translateX(-50%) scale(.95); } 50% { opacity:1; transform: translateX(-50%) scale(1.05); } }
@keyframes ssc-halo { 0%,100% { opacity:.4; } 50% { opacity:1; } }
@keyframes ssc-cloud-l { 0% { transform: translateX(-40px); opacity:.5; } 50% { transform: translateX(20px); opacity:.7; } 100% { transform: translateX(80px); opacity:.5; } }
@keyframes ssc-cloud-r { 0% { transform: translateX(0); opacity:.6; } 50% { transform: translateX(-30px); opacity:.8; } 100% { transform: translateX(-60px); opacity:.6; } }
@keyframes ssc-ray { 0% { transform: translateX(-50%) skewX(-15deg) scaleY(1); opacity:.2; } 50% { transform: translateX(-50%) skewX(-5deg) scaleY(.9); opacity:.5; } 100% { transform: translateX(-50%) skewX(-20deg) scaleY(1.1); opacity:.3; } }
@keyframes ssc-figure { 0%,100% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-50%) rotate(3deg); } 75% { transform: translateX(-50%) rotate(-3deg); } }

.scn-reformation-glitter { background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 60%, #0a0a12 100%), radial-gradient(ellipse at 50% 80%, #2a2a4a 0%, transparent 70%); }
.scn-reformation-glitter .dark-chamber { position:absolute; inset:0; background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 60%, #0a0a12 100%); }
.scn-reformation-glitter .prince-figure { position:absolute; bottom:15%; left:40%; width:22px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #101018 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rg-prince 8s ease-in-out infinite; }
.scn-reformation-glitter .floating-cloak { position:absolute; bottom:25%; left:35%; width:40px; height:30px; background: linear-gradient(180deg, #4a2a1a 0%, #2a140e 100%); border-radius:40% 60% 30% 70% / 50% 50% 50% 50%; filter: blur(1px); animation: rg-cloak 6s ease-in-out infinite alternate; }
.scn-reformation-glitter .jewel-1 { position:absolute; bottom:40%; left:30%; width:8px; height:8px; background: radial-gradient(circle, #d0b070 0%, #a08040 100%); border-radius:50%; box-shadow: 0 0 8px 2px rgba(208,176,112,.5); animation: rg-jewel-1 4s ease-in-out infinite; }
.scn-reformation-glitter .jewel-2 { position:absolute; bottom:35%; left:55%; width:6px; height:6px; background: radial-gradient(circle, #c0a060 0%, #806040 100%); border-radius:50%; box-shadow: 0 0 6px 2px rgba(192,160,96,.4); animation: rg-jewel-2 4.5s ease-in-out infinite 1s; }
.scn-reformation-glitter .jewel-3 { position:absolute; bottom:45%; left:48%; width:5px; height:5px; background: radial-gradient(circle, #e0c080 0%, #b09050 100%); border-radius:50%; box-shadow: 0 0 5px 2px rgba(224,192,128,.6); animation: rg-jewel-3 5s ease-in-out infinite 2s; }
.scn-reformation-glitter .spotlight { position:absolute; top:0; left:35%; width:80px; height:100%; background: linear-gradient(180deg, rgba(255,220,150,.08) 0%, transparent 100%); transform: skewX(-10deg); filter: blur(10px); animation: rg-spot 10s ease-in-out infinite alternate; }
@keyframes rg-prince { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-4px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(4px) rotate(2deg); } }
@keyframes rg-cloak { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-10px) rotate(5deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes rg-jewel-1 { 0%,100% { transform: translateY(0) scale(1); opacity:.7; } 50% { transform: translateY(-8px) scale(1.3); opacity:1; } }
@keyframes rg-jewel-2 { 0%,100% { transform: translateY(0) scale(1); opacity:.6; } 50% { transform: translateY(-6px) scale(1.2); opacity:1; } }
@keyframes rg-jewel-3 { 0%,100% { transform: translateY(0) scale(1); opacity:.5; } 50% { transform: translateY(-10px) scale(1.4); opacity:1; } }
@keyframes rg-spot { 0% { opacity:.3; } 50% { opacity:.7; } 100% { opacity:.4; } }

.scn-kingly-anger { background: linear-gradient(180deg, #2a1a0e 0%, #4a3020 40%, #2a1a0e 100%), radial-gradient(ellipse at 50% 30%, #6a4a2a 0%, transparent 80%); }
.scn-kingly-anger .throne-room { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0e 0%, #4a3020 40%, #2a1a0e 100%); }
.scn-kingly-anger .column-left { position:absolute; top:0; left:12%; width:8%; height:100%; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius:8% 8% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,.4); }
.scn-kingly-anger .column-right { position:absolute; top:0; right:12%; width:8%; height:100%; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius:8% 8% 0 0; box-shadow: inset 4px 0 8px rgba(0,0,0,.4); }
.scn-kingly-anger .throne { position:absolute; bottom:20%; left:50%; width:60px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%); border-radius:10% 10% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.5), inset 0 -4px 8px rgba(0,0,0,.3); }
.scn-kingly-anger .king-figure { position:absolute; bottom:22%; left:50%; width:30px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 4px 6px rgba(0,0,0,.5); animation: ka-king 9s ease-in-out infinite; }
.scn-kingly-anger .courtier { position:absolute; bottom:22%; left:30%; width:18px; height:40px; background: linear-gradient(180deg, #4a3020 0%, #2a180e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: skewX(-5deg); animation: ka-courtier 11s ease-in-out infinite; }
.scn-kingly-anger .torch-glow { position:absolute; top:15%; left:22%; width:20px; height:30px; background: radial-gradient(circle, #e08030 0%, #c06020 40%, transparent 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 40px 20px rgba(224,128,48,.4); animation: ka-torch 3s ease-in-out infinite alternate; }
.scn-kingly-anger .shadow-floor { position:absolute; bottom:0; left:20%; right:20%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%); filter: blur(10px); animation: ka-shadow 7s ease-in-out infinite alternate; }
@keyframes ka-king { 0%,100% { transform: translateX(-50%) rotate(0) scaleY(1); } 25% { transform: translateX(-50%) rotate(2deg) scaleY(1.02); } 50% { transform: translateX(-50%) rotate(0) scaleY(1); } 75% { transform: translateX(-50%) rotate(-2deg) scaleY(1.02); } }
@keyframes ka-courtier { 0%,100% { transform: translateX(0) skewX(-5deg); } 50% { transform: translateX(8px) skewX(-10deg); } }
@keyframes ka-torch { 0% { opacity:.7; transform: scale(.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:.8; transform: scale(1); } }
@keyframes ka-shadow { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.5; } }

/* worcester-dismissed */
.scn-worcester-dismissed {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #c4b39e 50%, #9a826a 100%),
    radial-gradient(ellipse at 70% 30%, #f0e8d8 0%, transparent 60%);
}
.scn-worcester-dismissed .wall { position:absolute; inset:0; background: linear-gradient(180deg, #d4c8b0 0%, #b8a88e 100%); }
.scn-worcester-dismissed .window { position:absolute; top:8%; right:10%; width:80px; height:120px; border:6px solid #8a7a62; background: linear-gradient(135deg, #fcf8f0 0%, #d4d0c8 100%); border-radius:4px; box-shadow: inset 0 0 30px #fff8e0; animation: wd1-light 6s ease-in-out infinite alternate; }
.scn-worcester-dismissed .throne { position:absolute; bottom:20%; left:15%; width:120px; height:100px; background: linear-gradient(180deg, #6b503a 0%, #4a3424 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,0.5); transform: skewX(-2deg); }
.scn-worcester-dismissed .king { position:absolute; bottom:20%; left:20%; width:50px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(5deg); animation: wd1-glare 2s ease-in-out infinite; }
.scn-worcester-dismissed .worcester { position:absolute; bottom:20%; right:20%; width:40px; height:90px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: scaleX(-1); animation: wd1-walk 4s ease-in-out infinite; }
.scn-worcester-dismissed .door { position:absolute; bottom:0; right:5%; width:100px; height:180px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; border-left: 6px solid #5a4a3a; }
.scn-worcester-dismissed .shadow { position:absolute; bottom:0; left:10%; right:10%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%); animation: wd1-fade 8s ease-in-out infinite alternate; }
@keyframes wd1-light {
  0% { opacity:0.7; box-shadow: inset 0 0 20px #fff8e0; }
  50% { opacity:1; box-shadow: inset 0 0 40px #fffdf0; }
  100% { opacity:0.8; box-shadow: inset 0 0 25px #fff8e0; }
}
@keyframes wd1-glare {
  0% { transform: rotate(5deg) scale(1); }
  50% { transform: rotate(-2deg) scale(1.02); }
  100% { transform: rotate(5deg) scale(1); }
}
@keyframes wd1-walk {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-8px) rotate(3deg); }
  50% { transform: translateX(-16px) rotate(0); }
  75% { transform: translateX(-8px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes wd1-fade {
  0% { opacity:0.2; }
  50% { opacity:0.5; }
  100% { opacity:0.3; }
}

/* hotspur-defense */
.scn-hotspur-defense {
  background: 
    linear-gradient(180deg, #c8b898 0%, #a08870 50%, #7a6048 100%),
    radial-gradient(ellipse at 30% 40%, #f0e0c8 0%, transparent 70%);
}
.scn-hotspur-defense .bg-panel { position:absolute; inset:0; background: linear-gradient(90deg, #b8a888 0%, #d0c0a8 50%, #b8a888 100%); }
.scn-hotspur-defense .desk { position:absolute; bottom:15%; left:10%; width:60%; height:30%; background: linear-gradient(180deg, #6a5040 0%, #4a3424 100%); border-radius:10px; box-shadow: 0 4px 12px rgba(0,0,0,0.5); transform: perspective(200px) rotateX(20deg); }
.scn-hotspur-defense .hotspur { position:absolute; bottom:18%; left:30%; width:45px; height:85px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: hd2-gesture 3s ease-in-out infinite; }
.scn-hotspur-defense .northumberland { position:absolute; bottom:18%; right:25%; width:50px; height:80px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(8deg) scaleX(-1); animation: hd2-listen 4s ease-in-out infinite; }
.scn-hotspur-defense .document { position:absolute; bottom:30%; left:35%; width:60px; height:40px; background: #f0e8d0; border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: hd2-flutter 5s ease-in-out infinite; }
.scn-hotspur-defense .candle { position:absolute; bottom:40%; right:15%; width:8px; height:40px; background: linear-gradient(180deg, #f0d890 0%, #c8a060 100%); border-radius: 2px; transform: rotate(2deg); }
.scn-hotspur-defense .candle-glow { position:absolute; bottom:42%; right:15%; width:30px; height:30px; background: radial-gradient(circle, #ffd090 0%, rgba(255,208,144,0.3) 40%, transparent 70%); border-radius: 50%; animation: hd2-flicker 1.5s ease-in-out infinite alternate; }
@keyframes hd2-gesture {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-3px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes hd2-listen {
  0% { transform: rotate(8deg) scaleX(-1) translateY(0); }
  50% { transform: rotate(4deg) scaleX(-1) translateY(2px); }
  100% { transform: rotate(8deg) scaleX(-1) translateY(0); }
}
@keyframes hd2-flutter {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(-3deg) scale(1.02); }
  100% { transform: rotate(-5deg) scale(1); }
}
@keyframes hd2-flicker {
  0% { opacity:0.6; transform: scale(1); }
  50% { opacity:1; transform: scale(1.1); }
  100% { opacity:0.7; transform: scale(0.9); }
}

/* popinjay-lord */
.scn-popinjay-lord {
  background: 
    linear-gradient(180deg, #d4c8b8 0%, #b8a898 50%, #988878 100%),
    radial-gradient(ellipse at 50% 60%, #e8dcc8 0%, transparent 80%);
}
.scn-popinjay-lord .tapestry { position:absolute; inset:0; background: repeating-linear-gradient(90deg, #6a5a4a 0px, #6a5a4a 10px, #8a7a6a 10px, #8a7a6a 20px); opacity:0.3; }
.scn-popinjay-lord .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0; }
.scn-popinjay-lord .corpse { position:absolute; bottom:10%; left:20%; width:70px; height:20px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 50% / 40% 40% 60% 60%; transform: rotate(5deg); box-shadow: 0 2px 8px rgba(0,0,0,0.4); animation: pj3-still 10s ease-in-out infinite; }
.scn-popinjay-lord .soldier { position:absolute; bottom:12%; left:25%; width:40px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: scaleX(-1); animation: pj3-carry 6s ease-in-out infinite; }
.scn-popinjay-lord .lord { position:absolute; bottom:15%; right:20%; width:45px; height:90px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-15deg); animation: pj3-turn 4s ease-in-out infinite; }
.scn-popinjay-lord .handkerchief { position:absolute; bottom:30%; right:18%; width:15px; height:15px; background: #f0e0c0; border-radius: 50%; transform: rotate(20deg); box-shadow: 0 0 4px rgba(0,0,0,0.2); animation: pj3-flap 2s ease-in-out infinite; }
.scn-popinjay-lord .window-light { position:absolute; top:5%; left:5%; width:50px; height:80px; background: linear-gradient(135deg, #fcf8f0 0%, #d4c8b8 100%); border:4px solid #8a7a6a; border-radius: 2px; opacity:0.6; animation: pj3-glow 8s ease-in-out infinite alternate; }
@keyframes pj3-still {
  0%,100% { opacity:0.8; }
  50% { opacity:0.5; }
}
@keyframes pj3-carry {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes pj3-turn {
  0% { transform: rotate(-15deg) translateX(0); }
  50% { transform: rotate(10deg) translateX(-4px); }
  100% { transform: rotate(-15deg) translateX(0); }
}
@keyframes pj3-flap {
  0% { transform: rotate(20deg) scale(1); }
  50% { transform: rotate(30deg) scale(1.1); }
  100% { transform: rotate(20deg) scale(1); }
}
@keyframes pj3-glow {
  0% { opacity:0.4; }
  50% { opacity:0.7; }
  100% { opacity:0.5; }
}

/* saltpetre-complaint */
.scn-saltpetre-complaint {
  background: 
    linear-gradient(180deg, #c8b898 0%, #a08870 40%, #7a6048 100%),
    radial-gradient(ellipse at 30% 50%, #e0d0b8 0%, transparent 70%);
}
.scn-saltpetre-complaint .wall-stone { position:absolute; inset:0; background: repeating-linear-gradient(0deg, #8a7a6a 0px, #8a7a6a 2px, #9a8a7a 2px, #9a8a7a 4px); opacity:0.2; }
.scn-saltpetre-complaint .table { position:absolute; bottom:15%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #6a5040 0%, #4a3424 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.5); transform: perspective(200px) rotateX(30deg); }
.scn-saltpetre-complaint .cannon-model { position:absolute; bottom:25%; left:40%; width:60px; height:30px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 50% / 40% 40% 60% 60%; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: sc4-rock 5s ease-in-out infinite; }
.scn-saltpetre-complaint .soldier-figure { position:absolute; bottom:20%; left:25%; width:40px; height:85px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(5deg); animation: sc4-point 3s ease-in-out infinite; }
.scn-saltpetre-complaint .scroll { position:absolute; bottom:30%; right:20%; width:50px; height:15px; background: #f0e0c8; border-radius: 2px; transform: rotate(10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: sc4-unroll 8s ease-in-out infinite; }
.scn-saltpetre-complaint .shadow-deep { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%); animation: sc4-mood 10s ease-in-out infinite alternate; }
.scn-saltpetre-complaint .dust-mote { position:absolute; top:30%; left:60%; width:4px; height:4px; background: rgba(255,255,240,0.6); border-radius:50%; box-shadow: 0 0 6px #fff; animation: sc4-drift 20s linear infinite; }
@keyframes sc4-rock {
  0%,100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
}
@keyframes sc4-point {
  0% { transform: rotate(5deg) translateX(0); }
  30% { transform: rotate(-10deg) translateX(6px); }
  70% { transform: rotate(15deg) translateX(-3px); }
  100% { transform: rotate(5deg) translateX(0); }
}
@keyframes sc4-unroll {
  0% { transform: rotate(10deg) scaleY(1); }
  50% { transform: rotate(12deg) scaleY(1.2); }
  100% { transform: rotate(10deg) scaleY(1); }
}
@keyframes sc4-mood {
  0% { opacity:0.3; }
  50% { opacity:0.6; }
  100% { opacity:0.4; }
}
@keyframes sc4-drift {
  0% { transform: translate(0, 0); opacity:0; }
  10% { opacity:0.6; }
  90% { opacity:0.4; }
  100% { transform: translate(-30px, -20px); opacity:0; }
}

/* parley-with-blunt */
.scn-parley-with-blunt { background: linear-gradient(180deg, #6b6b6b 0%, #8a8a8a 40%, #5c5c5c 100%), radial-gradient(ellipse at 50% 100%, #4a4a4a 0%, transparent 70%); }
.scn-parley-with-blunt .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #808080 0%, #a0a0a0 100%); animation: pb-sky 20s ease-in-out infinite alternate; }
.scn-parley-with-blunt .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 30% 0 0 0; }
.scn-parley-with-blunt .figure-left { position:absolute; bottom:20%; left:25%; width:24px; height:48px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pb-figure 6s ease-in-out infinite; }
.scn-parley-with-blunt .figure-right { position:absolute; bottom:20%; right:25%; width:24px; height:48px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pb-figure 6s ease-in-out infinite reverse; }
.scn-parley-with-blunt .banner { position:absolute; bottom:38%; left:42%; width:30px; height:50px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 2px; transform: skewX(-5deg); animation: pb-banner 8s ease-in-out infinite; }
.scn-parley-with-blunt .pennant { position:absolute; bottom:60%; left:43%; width:40px; height:10px; background: linear-gradient(90deg, #a0461a 0%, #c8553d 100%); border-radius: 0 50% 50% 0; transform-origin: left center; animation: pb-pennant 4s ease-in-out infinite; }
.scn-parley-with-blunt .mountain { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); clip-path: polygon(0% 100%, 20% 20%, 40% 60%, 60% 10%, 80% 50%, 100% 100%); animation: pb-mountain 12s ease-in-out infinite alternate; }
@keyframes pb-sky { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.8} }
@keyframes pb-figure { 0%{transform:translateX(0) translateY(0) rotate(-2deg)} 25%{transform:translateX(4px) translateY(-1px) rotate(2deg)} 50%{transform:translateX(0) translateY(0) rotate(1deg)} 75%{transform:translateX(-4px) translateY(-1px) rotate(-1deg)} 100%{transform:translateX(0) translateY(0) rotate(-2deg)} }
@keyframes pb-banner { 0%{transform:skewX(-5deg) scaleY(1)} 50%{transform:skewX(2deg) scaleY(1.05)} 100%{transform:skewX(-5deg) scaleY(1)} }
@keyframes pb-pennant { 0%{transform:rotate(-10deg)} 50%{transform:rotate(15deg)} 100%{transform:rotate(-10deg)} }
@keyframes pb-mountain { 0%{opacity:.8} 100%{opacity:1} }

/* archbishop-york */
.scn-archbishop-york { background: linear-gradient(180deg, #1a1210 0%, #2a1a14 50%, #1a0e0a 100%), radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 80%); }
.scn-archbishop-york .wall-bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a1c16 0%, #1a100c 100%); }
.scn-archbishop-york .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2018 0%, #1a0e0a 100%); border-radius: 0 0 20% 20%; }
.scn-archbishop-york .table { position:absolute; bottom:20%; left:35%; width:60px; height:20px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 4px; animation: ay-table 10s ease-in-out infinite; }
.scn-archbishop-york .candle { position:absolute; bottom:40%; left:48%; width:8px; height:30px; background: linear-gradient(180deg, #f0d0a0 0%, #c08040 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.4); animation: ay-candle 2s ease-in-out infinite; }
.scn-archbishop-york .figure-york { position:absolute; bottom:18%; left:30%; width:22px; height:44px; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; animation: ay-figure 8s ease-in-out infinite; }
.scn-archbishop-york .figure-michael { position:absolute; bottom:18%; right:30%; width:22px; height:44px; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; animation: ay-figure 8s ease-in-out infinite reverse; }
.scn-archbishop-york .scroll { position:absolute; bottom:25%; left:48%; width:30px; height:6px; background: linear-gradient(90deg, #8a6a4a 0%, #c0a080 50%, #8a6a4a 100%); border-radius: 2px; transform: rotate(10deg); animation: ay-scroll 5s ease-in-out infinite; }
@keyframes ay-table { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes ay-candle { 0%{opacity:.9; transform:scaleY(1)} 25%{opacity:1; transform:scaleY(1.02)} 50%{opacity:.85; transform:scaleY(1)} 75%{opacity:1; transform:scaleY(1.01)} 100%{opacity:.9; transform:scaleY(1)} }
@keyframes ay-figure { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-3px) rotate(1deg)} 100%{transform:translateY(0) rotate(-1deg)} }
@keyframes ay-scroll { 0%{transform:rotate(10deg) translateX(0)} 50%{transform:rotate(15deg) translateX(2px)} 100%{transform:rotate(10deg) translateX(0)} }

/* kings-camp-shrewsbury */
.scn-kings-camp-shrewsbury { background: linear-gradient(180deg, #1a2a3a 0%, #3a5a6a 30%, #8a7a5a 70%, #c0a060 100%), radial-gradient(ellipse at 50% 0%, #5a7a8a 0%, transparent 80%); }
.scn-kings-camp-shrewsbury .dawn-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a3a4a 0%, #6a7a5a 100%); animation: kc-dawn 15s ease-in-out infinite alternate; }
.scn-kings-camp-shrewsbury .mist { position:absolute; bottom:40%; left:0; right:0; height:10%; background: linear-gradient(180deg, rgba(200,180,140,.5) 0%, transparent 100%); filter: blur(6px); animation: kc-mist 30s ease-in-out infinite; }
.scn-kings-camp-shrewsbury .ground-camp { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius: 20% 0 0 0; }
.scn-kings-camp-shrewsbury .tent-left { position:absolute; bottom:20%; left:15%; width:50px; height:60px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); animation: kc-tent 8s ease-in-out infinite; }
.scn-kings-camp-shrewsbury .tent-right { position:absolute; bottom:20%; right:15%; width:50px; height:60px; background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); animation: kc-tent 8s ease-in-out infinite reverse; }
.scn-kings-camp-shrewsbury .figure-king { position:absolute; bottom:15%; left:40%; width:24px; height:48px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; animation: kc-figure 6s ease-in-out infinite; }
.scn-kings-camp-shrewsbury .figure-worcester { position:absolute; bottom:15%; right:35%; width:24px; height:48px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; animation: kc-figure 6s ease-in-out infinite reverse; }
.scn-kings-camp-shrewsbury .campfire { position:absolute; bottom:10%; left:48%; width:24px; height:18px; background: radial-gradient(circle, #c08040 0%, #a06020 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(192,128,64,.5); animation: kc-fire 3s ease-in-out infinite; }
@keyframes kc-dawn { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.9} }
@keyframes kc-mist { 0%{opacity:.3; transform:translateX(0)} 50%{opacity:.6; transform:translateX(20px)} 100%{opacity:.3; transform:translateX(0)} }
@keyframes kc-tent { 0%{transform:rotate(0deg) scaleY(1)} 50%{transform:rotate(1deg) scaleY(1.02)} 100%{transform:rotate(0deg) scaleY(1)} }
@keyframes kc-figure { 0%{transform:translateY(0) rotate(-1deg)} 25%{transform:translateY(-2px) rotate(1deg)} 50%{transform:translateY(0) rotate(0deg)} 75%{transform:translateY(-2px) rotate(-1deg)} 100%{transform:translateY(0) rotate(-1deg)} }
@keyframes kc-fire { 0%{transform:scale(1); opacity:.8} 50%{transform:scale(1.1); opacity:1} 100%{transform:scale(1); opacity:.8} }

/* falstaff-catechism */
.scn-falstaff-catechism { background: linear-gradient(180deg, #8ab8c0 0%, #d0d8a0 40%, #f0e8c0 100%), radial-gradient(ellipse at 30% 100%, #e8d8a0 0%, transparent 70%); }
.scn-falstaff-catechism .dawn-sky-fc { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #b0d0d0 0%, #f0e8c0 100%); animation: fc-sky 20s ease-in-out infinite alternate; }
.scn-falstaff-catechism .sun-beam { position:absolute; top:5%; left:20%; width:12px; height:60%; background: linear-gradient(180deg, rgba(255,240,180,.3) 0%, transparent 100%); transform: rotate(15deg); filter: blur(4px); animation: fc-beam 10s ease-in-out infinite; }
.scn-falstaff-catechism .green-hill { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #7a9a4a 0%, #5a7a2a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; animation: fc-hill 8s ease-in-out infinite; }
.scn-falstaff-catechism .falstaff-body { position:absolute; bottom:15%; left:38%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 50%, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: fc-body 4s ease-in-out infinite; }
.scn-falstaff-catechism .falstaff-head { position:absolute; bottom:44%; left:42%; width:22px; height:22px; background: radial-gradient(circle, #8a6a5a 0%, #5a3a2a 100%); border-radius: 50%; transform-origin: bottom center; animation: fc-head 4s ease-in-out infinite; }
.scn-falstaff-catechism .falstaff-arm { position:absolute; bottom:28%; left:32%; width:28px; height:10px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 30% 30% 70% 70%; transform-origin: right center; animation: fc-arm 2s ease-in-out infinite; }
.scn-falstaff-catechism .rock { position:absolute; bottom:5%; left:30%; width:30px; height:20px; background: linear-gradient(180deg, #6a6a5a 0%, #4a4a3a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: fc-rock 12s ease-in-out infinite; }
@keyframes fc-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.9} }
@keyframes fc-beam { 0%{opacity:.2; transform:rotate(15deg) scaleY(1)} 50%{opacity:.5; transform:rotate(25deg) scaleY(1.1)} 100%{opacity:.2; transform:rotate(15deg) scaleY(1)} }
@keyframes fc-hill { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes fc-body { 0%{transform:scaleY(1) rotate(-2deg)} 25%{transform:scaleY(1.05) rotate(2deg)} 50%{transform:scaleY(1) rotate(0deg)} 75%{transform:scaleY(1.05) rotate(-2deg)} 100%{transform:scaleY(1) rotate(-2deg)} }
@keyframes fc-head { 0%{transform:translate(0,0) rotate(0deg)} 25%{transform:translate(2px, -2px) rotate(5deg)} 50%{transform:translate(0,0) rotate(0deg)} 75%{transform:translate(-2px, -2px) rotate(-5deg)} 100%{transform:translate(0,0) rotate(0deg)} }
@keyframes fc-arm { 0%{transform:rotate(0deg)} 50%{transform:rotate(30deg)} 100%{transform:rotate(0deg)} }
@keyframes fc-rock { 0%{transform:translateY(0)} 50%{transform:translateY(-1px)} 100%{transform:translateY(0)} }

/* mortimer-ransom-denied */
.scn-mortimer-ransom-denied {
  background:
    linear-gradient(135deg, #caa87a 0%, #b89a6b 30%, #9a7d52 60%, #7a5f3a 100%),
    radial-gradient(ellipse at 70% 30%, #ffdd99 0%, transparent 60%);
}
.scn-mortimer-ransom-denied .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d4c0a0 0%, #b09b78 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.15);
}
.scn-mortimer-ransom-denied .window {
  position: absolute; top: 15%; left: 25%; width: 40%; height: 50%;
  background: linear-gradient(150deg, #f5e6c0 0%, #e5d0a0 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px #c8a870, 0 0 40px rgba(200,168,112,0.3);
}
.scn-mortimer-ransom-denied .sunlight {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(135deg, rgba(255,255,200,0.5) 0%, transparent 60%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: mrd-sun 8s ease-in-out infinite alternate;
}
.scn-mortimer-ransom-denied .king-shadow {
  position: absolute; bottom: 10%; left: 45%; width: 180px; height: 260px;
  background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1f1610 60%, transparent 80%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mrd-shadow 4s ease-in-out infinite;
}
.scn-mortimer-ransom-denied .chain {
  position: absolute; bottom: 28%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 50%, #8a7a6a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: mrd-chain 2s ease-in-out infinite;
}
.scn-mortimer-ransom-denied .document {
  position: absolute; bottom: 15%; left: 35%; width: 120px; height: 80px;
  background: linear-gradient(135deg, #d4c4a0 0%, #b8a888 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  transform: rotate(-5deg);
  animation: mrd-doc 6s ease-in-out infinite;
}
@keyframes mrd-sun {
  0% { opacity: 0.7; transform: skewX(-5deg); }
  50% { opacity: 1; transform: skewX(0deg); }
  100% { opacity: 0.8; transform: skewX(5deg); }
}
@keyframes mrd-shadow {
  0% { transform: scaleY(1) translateY(0); opacity: 0.8; }
  50% { transform: scaleY(1.02) translateY(-3px); opacity: 1; }
  100% { transform: scaleY(1) translateY(0); opacity: 0.8; }
}
@keyframes mrd-chain {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(2px); }
}
@keyframes mrd-doc {
  0%,100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
}

/* revolted-mortimer */
.scn-revolted-mortimer {
  background:
    linear-gradient(180deg, #c9b18e 0%, #ab906a 40%, #8b7150 70%, #6b5338 100%),
    linear-gradient(90deg, rgba(255,220,150,0.2) 0%, transparent 50%, rgba(255,220,150,0.2) 100%);
}
.scn-revolted-mortimer .bg-tent {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #b8a082 0%, #9a8468 100%);
  clip-path: polygon(0 100%, 20% 10%, 80% 10%, 100% 100%);
}
.scn-revolted-mortimer .flag-pole {
  position: absolute; bottom: 20%; left: 50%; width: 6px; height: 200px;
  background: linear-gradient(180deg, #8a765a 0%, #5a4a36 100%);
  transform: translateX(-50%);
  animation: rvt-pole 6s ease-in-out infinite;
}
.scn-revolted-mortimer .flag {
  position: absolute; top: 10%; left: 50%; width: 120px; height: 70px;
  background: linear-gradient(135deg, #8a3a2a 0%, #6a2a1a 50%, #5a1a0a 100%);
  border-radius: 0 4px 4px 0;
  transform-origin: left center;
  animation: rvt-flag 4s ease-in-out infinite alternate;
}
.scn-revolted-mortimer .soldier {
  position: absolute; bottom: 15%; left: 30%; width: 50px; height: 140px;
  background: radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, #1f1610 60%, transparent 80%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rvt-soldier 2s ease-in-out infinite;
}
.scn-revolted-mortimer .spear {
  position: absolute; bottom: 20%; left: 22%; width: 4px; height: 160px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  transform: rotate(10deg);
  animation: rvt-spear 3s ease-in-out infinite;
}
.scn-revolted-mortimer .wound-glow {
  position: absolute; bottom: 20%; left: 32%; width: 14px; height: 14px;
  background: radial-gradient(circle, #c86a3a 0%, #a04a1a 40%, transparent 70%);
  border-radius: 50%;
  animation: rvt-wound 1.5s ease-in-out infinite alternate;
}
.scn-revolted-mortimer .dust {
  position: absolute; top: 30%; left: 10%; width: 20px; height: 20px;
  background: rgba(180,150,120,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: rvt-dust 12s linear infinite;
}
@keyframes rvt-pole {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
}
@keyframes rvt-flag {
  0% { transform: skewX(0deg); }
  100% { transform: skewX(10deg); }
}
@keyframes rvt-soldier {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rvt-spear {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-2px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes rvt-wound {
  0% { opacity: 0.7; transform: scale(0.9); }
  100% { opacity: 1; transform: scale(1.1); }
}
@keyframes rvt-dust {
  0% { transform: translate(0, 0); opacity: 0.3; }
  50% { transform: translate(30px, -20px); opacity: 0.1; }
  100% { transform: translate(60px, -40px); opacity: 0; }
}

/* king-threat-prisoners */
.scn-king-threat-prisoners {
  background:
    linear-gradient(180deg, #b8a080 0%, #988060 40%, #786040 70%, #584028 100%),
    radial-gradient(ellipse at 30% 50%, #ffcc88 0%, transparent 60%);
}
.scn-king-threat-prisoners .throne-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #cbad8b 0%, #a58563 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.2);
}
.scn-king-threat-prisoners .column-left {
  position: absolute; top: 0; left: 8%; width: 40px; height: 100%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.3), 2px 0 4px rgba(0,0,0,0.1);
}
.scn-king-threat-prisoners .column-right {
  position: absolute; top: 0; right: 8%; width: 40px; height: 100%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  box-shadow: inset 4px 0 8px rgba(0,0,0,0.3), -2px 0 4px rgba(0,0,0,0.1);
}
.scn-king-threat-prisoners .king-figure {
  position: absolute; bottom: 10%; left: 50%; width: 120px; height: 200px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1f1610 60%, transparent 80%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ktp-king 3s ease-in-out infinite;
}
.scn-king-threat-prisoners .pointing-hand {
  position: absolute; bottom: 55%; left: 40%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: ktp-hand 1.5s ease-in-out infinite alternate;
}
.scn-king-threat-prisoners .prisoner-shadow {
  position: absolute; bottom: 10%; left: 30%; width: 70px; height: 130px;
  background: radial-gradient(ellipse at 50% 40%, #2a1a10 0%, #1a0e08 50%, transparent 70%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ktp-prisoner 4s ease-in-out infinite;
}
.scn-king-threat-prisoners .torch-flame {
  position: absolute; top: 18%; left: 20%; width: 20px; height: 30px;
  background: radial-gradient(circle, #ffcc66 0%, #e89a3a 40%, transparent 60%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ktp-flame 2s ease-in-out infinite alternate;
}
.scn-king-threat-prisoners .torch-base {
  position: absolute; top: 28%; left: 19%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #5a4a36 0%, #3a2a1a 100%);
  border-radius: 2px;
  animation: ktp-torch 3s ease-in-out infinite;
}
@keyframes ktp-king {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.03) translateY(-2px); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes ktp-hand {
  0% { transform: rotate(-20deg) translateY(0); }
  100% { transform: rotate(-15deg) translateY(-3px); }
}
@keyframes ktp-prisoner {
  0%,100% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(0.95); opacity: 0.8; }
}
@keyframes ktp-flame {
  0% { transform: scaleY(0.9) translateY(0); opacity: 0.8; }
  100% { transform: scaleY(1.2) translateY(-2px); opacity: 1; }
}
@keyframes ktp-torch {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(1px); }
}

/* defiance-after-king */
.scn-defiance-after-king {
  background:
    linear-gradient(180deg, #c6b297 0%, #a68c72 30%, #806650 60%, #604830 100%),
    radial-gradient(ellipse at 80% 40%, #dbbc88 0%, transparent 70%);
}
.scn-defiance-after-king .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.3);
}
.scn-defiance-after-king .door-frame {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 80%;
  border: 8px solid #5a4a3a;
  background: transparent;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
}
.scn-defiance-after-king .door {
  position: absolute; top: 12%; left: 32%; width: 36%; height: 76%;
  background: linear-gradient(135deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.4);
  transform-origin: left center;
  animation: def-door 5s ease-in-out infinite;
}
.scn-defiance-after-king .figure-back {
  position: absolute; bottom: 18%; left: 50%; width: 60px; height: 170px;
  background: radial-gradient(ellipse at 50% 30%, #2a1a10 0%, #1a0e08 60%, transparent 80%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: translateX(-50%);
  animation: def-figure 3s ease-in-out infinite;
}
.scn-defiance-after-king .sword {
  position: absolute; bottom: 15%; left: 45%; width: 6px; height: 160px;
  background: linear-gradient(180deg, #b8a888 0%, #8a7a6a 100%);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: def-sword 2s ease-in-out infinite;
}
.scn-defiance-after-king .cape {
  position: absolute; bottom: 30%; left: 38%; width: 80px; height: 110px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 50%, transparent 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform-origin: top center;
  animation: def-cape 3s ease-in-out infinite alternate;
}
.scn-defiance-after-king .light-spill {
  position: absolute; top: 0; right: 0; width: 40%; height: 100%;
  background: linear-gradient(135deg, rgba(255,220,150,0.2) 0%, transparent 70%);
  animation: def-light 8s ease-in-out infinite alternate;
}
@keyframes def-door {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.6); }
  100% { transform: scaleX(1); }
}
@keyframes def-figure {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02) translateY(-2px); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes def-sword {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(20deg) translateY(-3px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes def-cape {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(8deg); }
}
@keyframes def-light {
  0% { opacity: 0.5; }
  100% { opacity: 1; }
}

/* Scene: falstaff-rises */
.scn-falstaff-rises {
  background: 
    linear-gradient(180deg, #a0d0ff 0%, #ffe0a0 50%, #ffcc80 100%),
    radial-gradient(ellipse at 50% 30%, #fff0c0 0%, transparent 60%);
}
.scn-falstaff-rises .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c0e0ff 0%, transparent 100%);
  animation: fr-sky 8s ease-in-out infinite alternate;
}
.scn-falstaff-rises .sun {
  position: absolute; top: 10%; left: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffeb3b 0%, #ff9800 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #ffb300, 0 0 80px 30px rgba(255,180,0,.4);
  animation: fr-sun 4s ease-in-out infinite alternate;
}
.scn-falstaff-rises .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a8a3a 0%, #3a5a1a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  animation: fr-ground 12s ease-in-out infinite alternate;
}
.scn-falstaff-rises .figure {
  position: absolute; bottom: 25%; left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8553d 0%, #8b3a2a 100%);
  border-radius: 50% 50% 60% 60% / 70% 70% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: fr-figure 6s ease-in-out infinite;
}
.scn-falstaff-rises .shield {
  position: absolute; bottom: 30%; left: 42%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #b0a000 0%, #6a6000 100%);
  border-radius: 20%; transform: rotate(-15deg);
  box-shadow: 0 3px 6px rgba(0,0,0,.4);
  animation: fr-shield 4s ease-in-out infinite alternate;
}
.scn-falstaff-rises .sword {
  position: absolute; bottom: 30%; left: 56%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #e0e0e0 0%, #888 100%);
  border-radius: 4px; transform: rotate(30deg);
  transform-origin: bottom center;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: fr-sword 3s ease-in-out infinite alternate;
}
.scn-falstaff-rises .sparkle {
  position: absolute; top: 30%; left: 60%; width: 8px; height: 8px;
  background: #fff; border-radius: 50%;
  box-shadow: 0 0 12px 4px #fff, 0 0 24px 8px rgba(255,255,255,.5);
  animation: fr-sparkle 1.5s ease-in-out infinite;
}
.scn-falstaff-rises .cloud {
  position: absolute; top: 15%; left: 20%; width: 100px; height: 20px;
  background: rgba(255,255,255,.6);
  border-radius: 50%; filter: blur(6px);
  animation: fr-cloud 40s linear infinite;
}

@keyframes fr-sky {
  0% { opacity: .85; background-position: 0% 0%; }
  50% { opacity: 1; background-position: 0% 10%; }
  100% { opacity: .9; background-position: 0% 0%; }
}
@keyframes fr-sun {
  0% { transform: scale(.95); box-shadow: 0 0 30px 10px #ffb300; }
  50% { transform: scale(1.05); box-shadow: 0 0 50px 20px #ffb300; }
  100% { transform: scale(1); box-shadow: 0 0 40px 15px #ffb300; }
}
@keyframes fr-ground {
  0% { transform: translateY(0) rotate(-.5deg); }
  50% { transform: translateY(-3px) rotate(.5deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes fr-figure {
  0% { transform: translateX(-50%) translateY(20px) rotate(-5deg) scale(.9); }
  50% { transform: translateX(-50%) translateY(-10px) rotate(2deg) scale(1.05); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg) scale(1); }
}
@keyframes fr-shield {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-3px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes fr-sword {
  0% { transform: rotate(30deg); }
  50% { transform: rotate(25deg); }
  100% { transform: rotate(30deg); }
}
@keyframes fr-sparkle {
  0% { transform: scale(1); opacity: .5; }
  50% { transform: scale(1.5); opacity: 1; }
  100% { transform: scale(1); opacity: .7; }
}
@keyframes fr-cloud {
  0% { transform: translateX(-120px); }
  100% { transform: translateX(220vw); }
}

/* Scene: battle-aftermath */
.scn-battle-aftermath {
  background: 
    linear-gradient(180deg, #89cff0 0%, #f5d0a0 50%, #c0935a 100%),
    radial-gradient(ellipse at 50% 25%, #fff5d0 0%, transparent 60%);
}
.scn-battle-aftermath .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b0d8f0 0%, #c0a070 100%);
  animation: ba-sky 10s ease-in-out infinite alternate;
}
.scn-battle-aftermath .sun {
  position: absolute; top: 8%; left: 30%; width: 55px; height: 55px;
  background: radial-gradient(circle, #ffe0a0 0%, #d07830 70%);
  border-radius: 50%;
  box-shadow: 0 0 35px 12px #d07830, 0 0 70px 25px rgba(208,120,48,.4);
  animation: ba-sun 3s ease-in-out infinite alternate;
}
.scn-battle-aftermath .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6b4f3c 0%, #3a2a1a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
  animation: ba-ground 8s ease-in-out infinite alternate;
}
.scn-battle-aftermath .king {
  position: absolute; bottom: 30%; left: 30%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #6a7a8a 0%, #2a3a4a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: ba-king 3s ease-in-out infinite alternate;
}
.scn-battle-aftermath .banner {
  position: absolute; bottom: 35%; left: 65%; width: 15px; height: 50px;
  background: linear-gradient(180deg, #a0461a 0%, #6a2a0a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: ba-banner 2s ease-in-out infinite alternate;
}
.scn-battle-aftermath .prisoner {
  position: absolute; bottom: 25%; left: 50%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: ba-prisoner 5s ease-in-out infinite;
}
.scn-battle-aftermath .dust {
  position: absolute; bottom: 8%; left: 10%; width: 140px; height: 30px;
  background: rgba(200,170,130,.3);
  border-radius: 50%; filter: blur(10px);
  animation: ba-dust 15s linear infinite;
}
.scn-battle-aftermath .crows {
  position: absolute; top: 18%; right: 10%; width: 20px; height: 15px;
  background: #222; border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 4px #111;
  animation: ba-crows 20s linear infinite;
}

@keyframes ba-sky {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes ba-sun {
  0% { transform: scale(.95); opacity: .8; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(1); opacity: .9; }
}
@keyframes ba-ground {
  0% { transform: translateY(0); box-shadow: inset 0 10px 30px rgba(0,0,0,.5); }
  50% { transform: translateY(3px); box-shadow: inset 0 8px 25px rgba(0,0,0,.6); }
  100% { transform: translateY(0); box-shadow: inset 0 10px 30px rgba(0,0,0,.5); }
}
@keyframes ba-king {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ba-banner {
  0% { transform: skewY(-10deg); }
  50% { transform: skewY(10deg); }
  100% { transform: skewY(-5deg); }
}
@keyframes ba-prisoner {
  0% { transform: translateX(-50%) translateY(0) rotate(-5deg); }
  25% { transform: translateX(-50%) translateY(2px) rotate(-3deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(-7deg); }
  75% { transform: translateX(-50%) translateY(1px) rotate(-4deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-5deg); }
}
@keyframes ba-dust {
  0% { transform: translateX(-20px); opacity: .3; }
  50% { transform: translateX(60px); opacity: .5; }
  100% { transform: translateX(120px); opacity: .2; }
}
@keyframes ba-crows {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(-60px) translateY(-10px); }
  50% { transform: translateX(-140px) translateY(5px); }
  75% { transform: translateX(-220px) translateY(-8px); }
  100% { transform: translateX(-300px) translateY(0); }
}

/* *** ballad-threat (funny, dark) *** */
.scn-ballad-threat {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1e1e2a 100%),
    radial-gradient(ellipse at 50% 20%, #3a3a4e 0%, transparent 70%);
}
.scn-ballad-threat .wall-bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 4% 4% 0 0; }
.scn-ballad-threat .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 0 0 8% 8% / 0 0 20% 20%; }
.scn-ballad-threat .table { position:absolute; bottom:20%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 8% 8%; transform: perspective(60px) rotateX(10deg); box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: bt-table 5s ease-in-out infinite; }
.scn-ballad-threat .figure-seated { position:absolute; bottom:18%; left:40%; width:14%; height:25%; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bt-figure 3s ease-in-out infinite alternate; }
.scn-ballad-threat .tankard { position:absolute; bottom:25%; left:38%; width:6%; height:6%; background: radial-gradient(circle, #a08050 0%, #604020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: bt-tankard 2s ease-in-out infinite; }
.scn-ballad-threat .lantern-glow { position:absolute; bottom:40%; left:20%; width:8%; height:10%; background: radial-gradient(circle, #ffaa40 0%, #cc8030 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 15px rgba(255,170,64,.4); animation: bt-lantern 4s ease-in-out infinite alternate; }
.scn-ballad-threat .window-moon { position:absolute; top:10%; right:15%; width:12%; height:18%; background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 100%); border: 2px solid #4a4a5a; border-radius: 8% / 10%; box-shadow: inset 0 0 10px rgba(255,255,200,.3); }
.scn-ballad-threat .window-moon::after { content:''; position:absolute; top:15%; left:25%; width:40%; height:40%; background: radial-gradient(circle, #f0eed0 0%, #d0cca0 100%); border-radius: 50%; box-shadow: 0 0 12px 6px rgba(240,238,208,.4); animation: bt-moon 12s ease-in-out infinite alternate; }

@keyframes bt-table { 0%,100% { transform: perspective(60px) rotateX(10deg) translateY(0); } 50% { transform: perspective(60px) rotateX(12deg) translateY(-2px); } }
@keyframes bt-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(2deg) scaleY(1.01); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes bt-tankard { 0% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes bt-lantern { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes bt-moon { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(10px) translateY(-5px); } 100% { transform: translateX(-5px) translateY(3px); } }

/* *** narrow-lane-ambush (tense, dark) *** */
.scn-narrow-lane-ambush {
  background:
    linear-gradient(180deg, #0f0f1a 0%, #1a1a2a 40%, #12121e 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a3a 0%, transparent 70%);
}
.scn-narrow-lane-ambush .sky-slit { position:absolute; top:0; left:0; right:0; height:8%; background: linear-gradient(180deg, #1a2a3a 0%, #0f1a2a 100%); }
.scn-narrow-lane-ambush .wall-left { position:absolute; top:0; left:0; width:25%; height:100%; background: linear-gradient(180deg, #2a1a2a 0%, #1a1a1e 100%); border-right: 2px solid #3a2a3a; box-shadow: inset -8px 0 12px rgba(0,0,0,.6); animation: nl-wall 15s ease-in-out infinite alternate; }
.scn-narrow-lane-ambush .wall-right { position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-left: 2px solid #3a2a3a; box-shadow: inset 8px 0 12px rgba(0,0,0,.6); animation: nl-wall 15s ease-in-out infinite alternate-reverse; }
.scn-narrow-lane-ambush .ground-lane { position:absolute; bottom:0; left:20%; right:25%; height:12%; background: linear-gradient(0deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 20% 20% 0 0; }
.scn-narrow-lane-ambush .ambusher { position:absolute; bottom:10%; left:15%; width:8%; height:30%; background: linear-gradient(180deg, #0e0e1e 0%, #050510 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nl-ambush 4s ease-in-out infinite alternate; }
.scn-narrow-lane-ambush .victim { position:absolute; bottom:8%; right:15%; width:7%; height:25%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nl-victim 5s ease-in-out infinite alternate; }
.scn-narrow-lane-ambush .cart-lurking { position:absolute; bottom:5%; left:40%; width:20%; height:15%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: nl-cart 8s ease-in-out infinite; }

@keyframes nl-wall { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes nl-ambush { 0% { transform: translateX(0) rotate(-5deg) scaleY(1); } 30% { transform: translateX(-5px) rotate(3deg) scaleY(1.05); } 70% { transform: translateX(8px) rotate(-2deg) scaleY(0.95); } 100% { transform: translateX(2px) rotate(4deg) scaleY(1); } }
@keyframes nl-victim { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-6px) rotate(-4deg) scaleY(1.02); } 100% { transform: translateX(3px) rotate(1deg); } }
@keyframes nl-cart { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(2deg); } }

/* *** disguises-ready (tense, dark) *** */
.scn-disguises-ready {
  background:
    linear-gradient(180deg, #0a0a14 0%, #14141e 40%, #0e0e18 100%),
    radial-gradient(ellipse at 30% 70%, #1e1e2a 0%, transparent 70%);
}
.scn-disguises-ready .room-corner { position:absolute; inset:0; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 50%, #0e0e1a 100%); border-radius: 20% 0 0 30% / 0 10% 20% 0; }
.scn-disguises-ready .shadow-back { position:absolute; inset:10% 5% 20% 10%; background: linear-gradient(180deg, rgba(0,0,0,.7) 0%, transparent 100%); border-radius: 30% 40% 20% 30% / 40% 30% 20% 40%; animation: dr-shadow 6s ease-in-out infinite alternate; }
.scn-disguises-ready .figure-one { position:absolute; bottom:15%; left:25%; width:10%; height:35%; background: linear-gradient(180deg, #141420 0%, #0a0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dr-fig1 3s ease-in-out infinite alternate; }
.scn-disguises-ready .figure-two { position:absolute; bottom:12%; right:20%; width:9%; height:32%; background: linear-gradient(180deg, #1a1a28 0%, #0e0e18 100%); border-radius: 50% 50% 35% 35% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dr-fig2 4s ease-in-out infinite alternate; }
.scn-disguises-ready .disguise-hat { position:absolute; bottom:40%; left:23%; width:8%; height:8%; background: radial-gradient(ellipse at 50% 40%, #1a1a2a 0%, #0a0a12 100%); border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%; box-shadow: 0 0 12px 4px rgba(0,0,0,.8); animation: dr-hat 2.5s ease-in-out infinite alternate; }
.scn-disguises-ready .candle-flicker { position:absolute; bottom:25%; left:50%; width:4%; height:12%; background: radial-gradient(circle at 50% 100%, #ffcc66 0%, #cc8833 30%, transparent 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 8px rgba(255,204,102,.3); animation: dr-candle 1.5s ease-in-out infinite; }
.scn-disguises-ready .trunk-shape { position:absolute; bottom:5%; left:35%; width:20%; height:18%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%; box-shadow: 0 6px 10px rgba(0,0,0,.6); transform: perspective(30px) rotateX(10deg); animation: dr-trunk 7s ease-in-out infinite; }

@keyframes dr-shadow { 0% { opacity:0.7; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(0.98); } }
@keyframes dr-fig1 { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-4px); } 100% { transform: rotate(-2deg) translateY(-2px); } }
@keyframes dr-fig2 { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(-1deg) translateY(-1px); } }
@keyframes dr-hat { 0% { transform: translateY(0) rotate(-10deg); } 30% { transform: translateY(-6px) rotate(5deg); } 70% { transform: translateY(-2px) rotate(-5deg); } 100% { transform: translateY(0) rotate(8deg); } }
@keyframes dr-candle { 0% { opacity:0.7; transform: scaleY(0.9); } 25% { opacity:1; transform: scaleY(1.1); } 50% { opacity:0.8; transform: scaleY(0.95); } 75% { opacity:0.9; transform: scaleY(1.05); } 100% { opacity:0.7; transform: scaleY(0.9); } }
@keyframes dr-trunk { 0% { transform: perspective(30px) rotateX(10deg) translateY(0); } 50% { transform: perspective(30px) rotateX(12deg) translateY(-2px); } 100% { transform: perspective(30px) rotateX(10deg) translateY(0); } }

/* *** travellers-robbed (funny, dark) *** */
.scn-travellers-robbed {
  background:
    linear-gradient(180deg, #12121c 0%, #1c1c2a 40%, #0e0e18 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 70%);
}
.scn-travellers-robbed .road-dust { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #2a2a1a 0%, #1a1a0e 100%); border-radius: 30% 30% 0 0 / 100% 100% 0 0; }
.scn-travellers-robbed .sky-night { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); }
.scn-travellers-robbed .robber-a { position:absolute; bottom:25%; left:15%; width:10%; height:32%; background: linear-gradient(180deg, #181828 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tr-roba 3s ease-in-out infinite; }
.scn-travellers-robbed .robber-b { position:absolute; bottom:28%; right:20%; width:9%; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 35% 35% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tr-robb 4s ease-in-out infinite; }
.scn-travellers-robbed .victim-bound { position:absolute; bottom:12%; left:35%; width:8%; height:20%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: tr-vic1 5s ease-in-out infinite alternate; }
.scn-travellers-robbed .victim-two { position:absolute; bottom:10%; right:35%; width:7%; height:18%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: tr-vic2 6s ease-in-out infinite alternate; }
.scn-travellers-robbed .cart-stolen { position:absolute; bottom:8%; left:50%; width:20%; height:15%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: tr-cart 8s ease-in-out infinite; }

@keyframes tr-roba { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(8px) rotate(5deg) scaleY(1.05); } 50% { transform: translateX(-4px) rotate(-3deg) scaleY(0.95); } 80% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tr-robb { 0% { transform: translateX(0) rotate(2deg); } 30% { transform: translateX(-6px) rotate(-4deg) scaleY(1.02); } 60% { transform: translateX(4px) rotate(3deg) scaleY(0.98); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes tr-vic1 { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(2px) rotate(-2deg); } }
@keyframes tr-vic2 { 0% { transform: translateY(2px) rotate(4deg); } 50% { transform: translateY(-3px) rotate(-3deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes tr-cart { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-5px) rotate(2deg); } }

/* Scene 1: king-rebukes-hal */
.scn-king-rebukes-hal {
  background: linear-gradient(180deg, #4a3528 0%, #2a1e14 30%, #1a120c 60%, #0d0906 100%),
              radial-gradient(ellipse at 50% 30%, #c8a060 0%, transparent 60%);
}
.scn-king-rebukes-hal .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(135deg, #5a4030 0%, #3a2a1a 50%, #2a1a0e 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  transform: perspective(800px) rotateX(12deg);
  box-shadow: inset 0 30px 40px rgba(0,0,0,0.6);
}
.scn-king-rebukes-hal .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 75%;
  background: linear-gradient(180deg, #6a5544 0%, #4a3528 50%, #2a1e14 100%);
  border-bottom: 4px solid #5a4030;
}
.scn-king-rebukes-hal .pillar {
  position: absolute; bottom: 25%; width: 8%; height: 55%;
  background: linear-gradient(90deg, #7a6a5a 0%, #5a4a3a 40%, #4a3a2a 60%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.4);
}
.scn-king-rebukes-hal .pillar.left {
  left: 10%;
}
.scn-king-rebukes-hal .pillar.right {
  right: 10%;
}
.scn-king-rebukes-hal .throne {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 20%; height: 35%;
  background: linear-gradient(180deg, #b09070 0%, #8a7050 40%, #5a4030 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.5);
  clip-path: polygon(0 20%, 100% 20%, 100% 100%, 0 100%);
}
.scn-king-rebukes-hal .king {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 12%; height: 28%;
  background: linear-gradient(180deg, #1a1a0e 0%, #0a0a05 50%, #000 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: krb-king-sway 6s ease-in-out infinite;
}
.scn-king-rebukes-hal .hal {
  position: absolute; bottom: 26%; left: 40%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: krb-hal-tremble 3s ease-in-out infinite;
}
.scn-king-rebukes-hal .candle-glow {
  position: absolute; bottom: 50%; left: 50%; transform: translateX(-50%);
  width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 40%, rgba(255,200,100,0.15) 0%, transparent 70%);
  animation: krb-flicker 4s ease-in-out infinite alternate;
}
.scn-king-rebukes-hal .window-light {
  position: absolute; top: 12%; right: 18%; width: 16%; height: 30%;
  background: linear-gradient(135deg, rgba(255,235,180,0.25) 0%, transparent 70%);
  clip-path: polygon(10% 0, 90% 0, 100% 100%, 0% 100%);
  filter: blur(6px);
  animation: krb-window-pulse 8s ease-in-out infinite alternate;
}
@keyframes krb-king-sway {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  30%,70% { transform: translateX(-50%) rotate(1deg); }
  50% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes krb-hal-tremble {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(-1px) rotate(-0.5deg); }
  75% { transform: translateX(1px) rotate(0.5deg); }
}
@keyframes krb-flicker {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes krb-window-pulse {
  0%,100% { opacity: 0.3; }
  50% { opacity: 0.8; }
}

/* Scene 2: king-compares-richard */
.scn-king-compares-richard {
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1a10 40%, #1a0e08 80%, #0d0704 100%),
              radial-gradient(ellipse at 60% 30%, #b89850 0%, transparent 70%);
}
.scn-king-compares-richard .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(135deg, #4a3520 0%, #2a1a0e 60%, #1a0e06 100%);
  border-radius: 0 0 40% 40% / 0 0 15% 15%;
  transform: perspective(800px) rotateX(10deg);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.5);
}
.scn-king-compares-richard .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 78%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 50%, #1a1008 100%);
  border-bottom: 3px solid #4a3020;
}
.scn-king-compares-richard .pillar {
  position: absolute; bottom: 22%; width: 7%; height: 50%;
  background: linear-gradient(90deg, #6a5040 0%, #4a3020 40%, #3a2010 60%, #2a1808 100%);
  border-radius: 5px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
}
.scn-king-compares-richard .pillar.left { left: 12%; }
.scn-king-compares-richard .pillar.right { right: 12%; }
.scn-king-compares-richard .portrait-frame {
  position: absolute; top: 15%; left: 50%; transform: translateX(-50%);
  width: 18%; height: 28%;
  background: linear-gradient(180deg, #8a7050 0%, #5a4030 50%, #3a2a1a 100%);
  border-radius: 6px;
  box-shadow: 0 0 20px rgba(0,0,0,0.6);
  clip-path: polygon(5% 0, 95% 0, 100% 10%, 100% 90%, 95% 100%, 5% 100%, 0 90%, 0 10%);
}
.scn-king-compares-richard .richard-shadow {
  position: absolute; top: 18%; left: 50%; transform: translateX(-50%);
  width: 14%; height: 23%;
  background: radial-gradient(ellipse, rgba(180,120,60,0.2) 0%, transparent 70%);
  filter: blur(8px);
  animation: kcr-richard-fade 5s ease-in-out infinite alternate;
}
.scn-king-compares-richard .jester {
  position: absolute; bottom: 24%; left: 25%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 50%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: kcr-jester-dance 3s ease-in-out infinite;
}
.scn-king-compares-richard .candle-glow {
  position: absolute; bottom: 48%; left: 50%; transform: translateX(-50%);
  width: 40%; height: 35%;
  background: radial-gradient(ellipse at 50% 40%, rgba(200,160,80,0.12) 0%, transparent 80%);
  animation: kcr-flicker 3.5s ease-in-out infinite alternate;
}
.scn-king-compares-richard .window-light {
  position: absolute; top: 10%; left: 10%; width: 14%; height: 25%;
  background: linear-gradient(135deg, rgba(255,220,150,0.2) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 30%, 80% 100%, 0 100%);
  filter: blur(5px);
  animation: kcr-window-pulse 6s ease-in-out infinite alternate;
}
@keyframes kcr-richard-fade {
  0%,100% { opacity: 0.2; transform: translateX(-50%) scale(1); }
  50% { opacity: 0.5; transform: translateX(-50%) scale(1.05); }
}
@keyframes kcr-jester-dance {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(-5deg); }
  75% { transform: translateX(-5px) rotate(5deg); }
}
@keyframes kcr-flicker {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.5; }
}
@keyframes kcr-window-pulse {
  0%,100% { opacity: 0.2; }
  50% { opacity: 0.6; }
}

/* Scene 3: hal-promises-reform */
.scn-hal-promises-reform {
  background: linear-gradient(180deg, #5a4530 0%, #3a2a1a 30%, #2a1a0e 60%, #1a0e06 100%),
              radial-gradient(ellipse at 50% 20%, #e0c080 0%, transparent 60%);
  transition: filter 0.3s;
}
.scn-hal-promises-reform .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 26%;
  background: linear-gradient(135deg, #6a5040 0%, #4a3520 50%, #3a2814 100%);
  border-radius: 0 0 40% 40% / 0 0 18% 18%;
  transform: perspective(600px) rotateX(8deg);
  box-shadow: inset 0 30px 40px rgba(0,0,0,0.4);
}
.scn-hal-promises-reform .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 74%;
  background: linear-gradient(180deg, #7a6040 0%, #5a4030 40%, #3a2818 100%);
  border-bottom: 4px solid #6a5030;
}
.scn-hal-promises-reform .pillar {
  position: absolute; bottom: 26%; width: 6%; height: 48%;
  background: linear-gradient(90deg, #8a7050 0%, #5a4030 40%, #4a3020 60%, #3a2010 100%);
  border-radius: 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.3);
}
.scn-hal-promises-reform .pillar.left { left: 15%; }
.scn-hal-promises-reform .pillar.right { right: 15%; }
.scn-hal-promises-reform .throne {
  position: absolute; bottom: 26%; left: 50%; transform: translateX(-50%);
  width: 18%; height: 30%;
  background: linear-gradient(180deg, #a08060 0%, #7a6040 40%, #4a3020 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.5);
  clip-path: polygon(5% 15%, 95% 15%, 100% 100%, 0 100%);
}
.scn-hal-promises-reform .king {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 10%; height: 25%;
  background: linear-gradient(180deg, #1a1a0e 0%, #0a0a05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: hpr-king-breath 8s ease-in-out infinite;
}
.scn-hal-promises-reform .hal-kneeling {
  position: absolute; bottom: 22%; left: 42%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 40% 40% 50% 50%;
  transform-origin: bottom center;
  animation: hpr-kneel 6s ease-in-out infinite;
}
.scn-hal-promises-reform .ray-of-light {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(135deg, rgba(255,235,180,0.1) 0%, transparent 80%);
  clip-path: polygon(40% 0, 60% 0, 90% 100%, 10% 100%);
  filter: blur(10px);
  animation: hpr-ray-pulse 12s ease-in-out infinite alternate;
}
.scn-hal-promises-reform .candle-glow {
  position: absolute; bottom: 50%; left: 50%; transform: translateX(-50%);
  width: 25%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,200,100,0.1) 0%, transparent 70%);
  animation: hpr-candle-breath 10s ease-in-out infinite alternate;
}
@keyframes hpr-king-breath {
  0%,100% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
}
@keyframes hpr-kneel {
  0%,100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(0) rotate(-2deg); }
}
@keyframes hpr-ray-pulse {
  0%,100% { opacity: 0.3; }
  50% { opacity: 0.8; }
}
@keyframes hpr-candle-breath {
  0% { opacity: 0.5; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}

/* Scene 4: king-warns-hal */
.scn-king-warns-hal {
  background: linear-gradient(180deg, #4a3528 0%, #2a1e14 30%, #1a120c 60%, #0d0906 100%),
              radial-gradient(ellipse at 40% 30%, #b89850 0%, transparent 70%);
}
.scn-king-warns-hal .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 24%;
  background: linear-gradient(135deg, #5a4030 0%, #3a2a1a 50%, #2a1a0e 100%);
  border-radius: 0 0 40% 40% / 0 0 15% 15%;
  transform: perspective(800px) rotateX(12deg);
  box-shadow: inset 0 25px 35px rgba(0,0,0,0.5);
}
.scn-king-warns-hal .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 76%;
  background: linear-gradient(180deg, #6a5544 0%, #4a3528 50%, #2a1e14 100%);
  border-bottom: 4px solid #5a4030;
}
.scn-king-warns-hal .pillar {
  position: absolute; bottom: 24%; width: 7%; height: 52%;
  background: linear-gradient(90deg, #7a6a5a 0%, #5a4a3a 40%, #4a3a2a 60%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
}
.scn-king-warns-hal .pillar.left { left: 10%; }
.scn-king-warns-hal .pillar.right { right: 10%; }
.scn-king-warns-hal .map {
  position: absolute; bottom: 30%; left: 20%; width: 20%; height: 20%;
  background: linear-gradient(135deg, #8a7050 0%, #5a4030 40%, #3a2a1a 100%);
  border-radius: 4px;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
  clip-path: polygon(5% 0, 95% 0, 100% 5%, 100% 95%, 95% 100%, 5% 100%, 0 95%, 0 5%);
}
.scn-king-warns-hal .king-pointing {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 12%; height: 28%;
  background: linear-gradient(180deg, #1a1a0e 0%, #0a0a05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: kwh-king-sway 5s ease-in-out infinite;
}
.scn-king-warns-hal .hal {
  position: absolute; bottom: 26%; left: 35%; width: 8%; height: 26%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: kwh-hal-lift 4s ease-in-out infinite;
}
.scn-king-warns-hal .hotspur-banner {
  position: absolute; top: 8%; right: 10%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #a06030 0%, #704020 50%, #402010 100%);
  clip-path: polygon(0 0, 100% 0, 100% 85%, 50% 100%, 0 85%);
  animation: kwh-banner-wave 7s ease-in-out infinite;
  box-shadow: 0 0 15px rgba(160,96,48,0.3);
}
.scn-king-warns-hal .candle-glow {
  position: absolute; bottom: 48%; left: 50%; transform: translateX(-50%);
  width: 35%; height: 35%;
  background: radial-gradient(ellipse at 50% 40%, rgba(200,160,80,0.12) 0%, transparent 80%);
  animation: kwh-flicker 3.8s ease-in-out infinite alternate;
}
@keyframes kwh-king-sway {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  30% { transform: translateX(-50%) rotate(1.5deg); }
  70% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes kwh-hal-lift {
  0%,100% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(3px) translateY(-2px); }
}
@keyframes kwh-banner-wave {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(4deg); }
}
@keyframes kwh-flicker {
  0% { opacity: 0.5; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}

/* brain-with-fan */
.scn-brain-with-fan {
  background: linear-gradient(180deg, #0d0d1a 0%, #1a1a30 40%, #2a2040 70%, #1a1a30 100%),
              radial-gradient(ellipse at 50% 30%, #2a2040 0%, transparent 60%);
}
.scn-brain-with-fan .bg-deep { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #0a0a15 0%, transparent 100%); }
.scn-brain-with-fan .bg-mid { position:absolute; inset:30% 0 0 0; background:linear-gradient(180deg, #1a1a2e 0%, #2a2040 100%); }
.scn-brain-with-fan .head {
  position:absolute; bottom:35%; right:50%; width:60px; height:70px;
  background:linear-gradient(135deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 40% 60% 50% 50% / 50% 70% 40% 40%;
  transform-origin: bottom center;
  animation: bf-head 6s ease-in-out infinite alternate;
}
.scn-brain-with-fan .shoulder {
  position:absolute; bottom:20%; right:45%; width:80px; height:40px;
  background:linear-gradient(180deg, #2a2a3e 0%, #15152a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
}
.scn-brain-with-fan .fan-handle {
  position:absolute; bottom:38%; right:46%; width:8px; height:40px;
  background:linear-gradient(180deg, #6b4a3a 0%, #4a2a1a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: bf-handle 2s ease-in-out infinite alternate;
}
.scn-brain-with-fan .fan-blade {
  position:absolute; bottom:52%; right:44%; width:40px; height:60px;
  background:radial-gradient(ellipse at 30% 40%, #c8553d 0%, #a0461a 60%, #6b2a1a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  transform-origin: 80% 100%;
  animation: bf-blade 1.6s ease-in-out infinite;
}
.scn-brain-with-fan .candle-flame {
  position:absolute; bottom:40%; left:20%; width:8px; height:16px;
  background:radial-gradient(ellipse 40% 60%, #ffd680 0%, #ffa040 60%, transparent 100%);
  border-radius: 50%;
  animation: bf-flame 1.8s ease-in-out infinite alternate;
}
.scn-brain-with-fan .candle-glow {
  position:absolute; bottom:38%; left:18%; width:24px; height:24px;
  background:radial-gradient(circle, rgba(255,180,80,0.4) 0%, transparent 70%);
  border-radius:50%;
  animation: bf-glow 3s ease-in-out infinite alternate;
}
@keyframes bf-head { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(1deg) translateX(3px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes bf-handle { 0% { transform: rotate(-5deg); } 100% { transform: rotate(10deg); } }
@keyframes bf-blade { 0% { transform: rotate(0deg) scale(1); } 25% { transform: rotate(-15deg) scale(1.05); } 50% { transform: rotate(0deg) scale(1); } 75% { transform: rotate(15deg) scale(1.05); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes bf-flame { 0% { transform: scaleY(1) translateY(0); opacity:0.9; } 50% { transform: scaleY(1.3) translateY(-3px); opacity:1; } 100% { transform: scaleY(0.9) translateY(1px); opacity:0.8; } }
@keyframes bf-glow { 0% { opacity:0.5; transform:scale(1); } 50% { opacity:0.9; transform:scale(1.2); } 100% { opacity:0.6; transform:scale(0.9); } }

/* lady-percy-concern */
.scn-lady-percy-concern {
  background: linear-gradient(180deg, #2a1a10 0%, #3a2a1a 40%, #4a3a2a 70%, #2a1a10 100%),
              radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 60%);
}
.scn-lady-percy-concern .bg-warm { position:absolute; inset:0 0 20% 0; background:linear-gradient(180deg, #2a1a10 0%, transparent 100%); }
.scn-lady-percy-concern .window-frame {
  position:absolute; top:5%; left:10%; width:50%; height:40%;
  background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px #2a1a10;
}
.scn-lady-percy-concern .curtain {
  position:absolute; top:5%; width:25%; height:45%;
  background:linear-gradient(180deg, #6b4a3a 0%, #4a2a1a 100%);
  border-radius: 0 20px 20px 0;
  animation: lpc-curtain 20s ease-in-out infinite alternate;
}
.scn-lady-percy-concern .curtain-l { left:8%; transform-origin: left center; }
.scn-lady-percy-concern .curtain-r { right:20%; border-radius: 20px 0 0 20px; animation-delay: -10s; }
.scn-lady-percy-concern .figure-lady {
  position:absolute; bottom:25%; left:35%; width:50px; height:80px;
  background:linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: lpc-figure 8s ease-in-out infinite;
}
.scn-lady-percy-concern .candle-flame {
  position:absolute; bottom:30%; left:48%; width:6px; height:12px;
  background:radial-gradient(ellipse 40% 60%, #ffd680 0%, #ffa040 60%, transparent 100%);
  border-radius:50%;
  animation: lpc-flame 2.4s ease-in-out infinite alternate;
}
.scn-lady-percy-concern .candle-glow {
  position:absolute; bottom:28%; left:46%; width:20px; height:20px;
  background:radial-gradient(circle, rgba(255,180,80,0.3) 0%, transparent 70%);
  border-radius:50%;
  animation: lpc-glow 4s ease-in-out infinite alternate;
}
.scn-lady-percy-concern .table-edge {
  position:absolute; bottom:20%; left:30%; width:40%; height:8px;
  background:linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px 2px 0 0;
}
@keyframes lpc-curtain { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.05) rotate(2deg); } 100% { transform: scaleX(1) rotate(0deg); } }
@keyframes lpc-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes lpc-flame { 0% { transform: scaleY(1) translateY(0); opacity:0.8; } 50% { transform: scaleY(1.2) translateY(-2px); opacity:1; } 100% { transform: scaleY(0.9) translateY(1px); opacity:0.7; } }
@keyframes lpc-glow { 0% { opacity:0.4; transform:scale(1); } 50% { opacity:0.8; transform:scale(1.3); } 100% { opacity:0.5; transform:scale(0.9); } }

/* sweat-and-portents */
.scn-sweat-and-portents {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 40%, #2a2a4e 0%, transparent 70%);
}
.scn-sweat-and-portents .bg-dark { position:absolute; inset:0 0 20% 0; background:linear-gradient(180deg, #050510 0%, transparent 100%); }
.scn-sweat-and-portents .face-profile {
  position:absolute; bottom:20%; right:45%; width:70px; height:90px;
  background:linear-gradient(135deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 30% 60% 50% 50% / 40% 70% 30% 40%;
  transform-origin: bottom center;
  animation: sp-face 4s ease-in-out infinite alternate;
}
.scn-sweat-and-portents .collar {
  position:absolute; bottom:10%; right:35%; width:100px; height:20px;
  background:linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%;
}
.scn-sweat-and-portents .sweat {
  position:absolute; border-radius:50%;
  background:radial-gradient(circle, rgba(180,200,255,0.6) 0%, rgba(180,200,255,0.1) 100%);
  filter: blur(1px);
  animation: sp-sweat 3s ease-in-out infinite;
}
.scn-sweat-and-portents .sweat-1 { bottom:55%; right:48%; width:6px; height:6px; animation-delay:0s; }
.scn-sweat-and-portents .sweat-2 { bottom:50%; right:52%; width:4px; height:4px; animation-delay:-1.2s; }
.scn-sweat-and-portents .sweat-3 { bottom:60%; right:54%; width:5px; height:5px; animation-delay:0.5s; }
.scn-sweat-and-portents .highlight {
  position:absolute; top:30%; left:30%; width:20px; height:40px;
  background:radial-gradient(ellipse, rgba(200,220,255,0.15) 0%, transparent 100%);
  border-radius:50%;
  animation: sp-highlight 2s ease-in-out infinite alternate;
}
@keyframes sp-face { 0% { transform: rotate(-1deg) translateX(0); } 50% { transform: rotate(2deg) translateX(4px); } 100% { transform: rotate(-1deg) translateX(0); } }
@keyframes sp-sweat {
  0% { transform: scale(0.8) translateY(0); opacity:0.5; }
  30% { transform: scale(1.2) translateY(-4px); opacity:0.9; }
  60% { transform: scale(0.9) translateY(3px); opacity:0.7; }
  100% { transform: scale(1) translateY(0); opacity:0.5; }
}
@keyframes sp-highlight { 0% { opacity:0.2; transform:scaleX(1); } 50% { opacity:0.6; transform:scaleX(1.5); } 100% { opacity:0.2; transform:scaleX(1); } }

/* roan-horse-promise */
.scn-roan-horse-promise {
  background: linear-gradient(180deg, #1a0f0a 0%, #2a1a0a 40%, #1a0f0a 100%),
              radial-gradient(ellipse at 50% 50%, #2a1a0a 0%, transparent 70%);
}
.scn-roan-horse-promise .bg-stable { position:absolute; inset:0 0 10% 0; background:linear-gradient(180deg, #0f0805 0%, transparent 100%); }
.scn-roan-horse-promise .horse-body {
  position:absolute; bottom:25%; left:30%; width:120px; height:70px;
  background:linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%);
  border-radius: 40% 20% 30% 50% / 60% 30% 40% 50%;
  transform-origin: center bottom;
  animation: rh-body 5s ease-in-out infinite;
}
.scn-roan-horse-promise .horse-neck {
  position:absolute; bottom:45%; left:50%; width:30px; height:60px;
  background:linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rh-neck 3s ease-in-out infinite alternate;
}
.scn-roan-horse-promise .horse-ear {
  position:absolute; bottom:72%; left:58%; width:8px; height:16px;
  background:linear-gradient(180deg, #2a1a0a 0%, #1a0f0a 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-20deg);
  animation: rh-ear 4s ease-in-out infinite;
}
.scn-roan-horse-promise .stable-bar {
  position:absolute; bottom:30%; width:4px; height:60%;
  background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
}
.scn-roan-horse-promise .bar-l { left:15%; animation: rh-bar 8s ease-in-out infinite alternate; }
.scn-roan-horse-promise .bar-r { right:15%; animation: rh-bar 8s ease-in-out infinite alternate-reverse; }
.scn-roan-horse-promise .lantern {
  position:absolute; top:10%; left:60%; width:18px; height:24px;
  background:linear-gradient(180deg, #ffd680 0%, #c08040 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 0 20px 6px #c08040;
  animation: rh-lantern 2s ease-in-out infinite alternate;
}
.scn-roan-horse-promise .lantern-glow {
  position:absolute; top:8%; left:58%; width:30px; height:30px;
  background:radial-gradient(circle, rgba(255,180,80,0.4) 0%, transparent 70%);
  border-radius:50%;
  animation: rh-glow 4s ease-in-out infinite alternate;
}
@keyframes rh-body { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes rh-neck { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes rh-ear { 0% { transform: rotate(-20deg) scaleY(1); } 50% { transform: rotate(-30deg) scaleY(1.1); } 100% { transform: rotate(-20deg) scaleY(1); } }
@keyframes rh-bar { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes rh-lantern { 0% { opacity:0.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:0.8; transform:scale(0.95); } }
@keyframes rh-glow { 0% { opacity:0.3; transform:scale(1); } 50% { opacity:0.6; transform:scale(1.3); } 100% { opacity:0.4; transform:scale(0.9); } }

/* princes-robbing-thieves */
.scn-princes-robbing-thieves {
  background: linear-gradient(180deg, #0d1321 0%, #1c2336 40%, #2a334a 100%),
              radial-gradient(ellipse at 60% 80%, #3a4a6a 0%, transparent 70%);
}
.scn-princes-robbing-thieves .prt-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(0deg, #1a2340 0%, #1c2a44 50%, #0d1624 100%);
  animation: prt-sky 20s ease-in-out infinite alternate;
}
.scn-princes-robbing-thieves .prt-moon {
  position: absolute; top: 12%; right: 28%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #c8d0e8 0%, #a0acce 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(160,172,206,0.4);
  animation: prt-moon 10s ease-in-out infinite;
}
.scn-princes-robbing-thieves .prt-trees {
  position: absolute; bottom: 30%; left: 0; right: 0;
  height: 35%;
  background: linear-gradient(180deg, #0c1020 0%, #060a14 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  clip-path: polygon(0% 100%, 10% 70%, 20% 90%, 30% 60%, 40% 85%, 50% 50%, 60% 80%, 70% 55%, 80% 85%, 90% 65%, 100% 100%);
  animation: prt-trees 15s ease-in-out infinite alternate;
}
.scn-princes-robbing-thieves .prt-ground {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 35%;
  background: linear-gradient(0deg, #131a2e 0%, #1c2740 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
}
.scn-princes-robbing-thieves .prt-figures-thief1 {
  position: absolute; bottom: 22%; left: 30%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #0a0e1a 0%, #030612 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: scale(0.9) rotate(5deg);
  animation: prt-fig 4s ease-in-out infinite;
}
.scn-princes-robbing-thieves .prt-figures-thief2 {
  position: absolute; bottom: 25%; left: 38%;
  width: 22px; height: 42px;
  background: linear-gradient(180deg, #0a0e1a 0%, #030612 100%);
  border-radius: 35% 45% 20% 30% / 55% 65% 25% 35%;
  transform: scale(1) rotate(-3deg);
  animation: prt-fig 4.5s ease-in-out infinite -1s;
}
.scn-princes-robbing-thieves .prt-figures-prince {
  position: absolute; bottom: 20%; right: 25%;
  width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a2240 0%, #0c1430 100%);
  border-radius: 45% 50% 20% 30% / 65% 70% 30% 40%;
  transform: scale(1.1) rotate(8deg);
  animation: prt-prince 3s ease-in-out infinite;
}
.scn-princes-robbing-thieves .prt-bag {
  position: absolute; bottom: 16%; left: 45%;
  width: 30px; height: 20px;
  background: linear-gradient(180deg, #6b5b3a 0%, #4a3a1a 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: prt-bag 5s ease-in-out infinite;
}
.scn-princes-robbing-thieves .prt-lantern {
  position: absolute; bottom: 30%; right: 35%;
  width: 10px; height: 14px;
  background: radial-gradient(circle, #ffaa55 0%, #d47a2a 80%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 25px 8px rgba(212,122,42,0.6), 0 0 50px 16px rgba(212,122,42,0.3);
  animation: prt-lantern 2s ease-in-out infinite alternate;
}
@keyframes prt-sky { 0%{opacity:0.7} 50%{opacity:0.9} 100%{opacity:0.6} }
@keyframes prt-moon { 0%{transform:translateX(0)} 50%{transform:translateX(5px)} 100%{transform:translateX(-5px)} }
@keyframes prt-trees { 0%{transform:translateY(0)} 50%{transform:translateY(-4px)} 100%{transform:translateY(2px)} }
@keyframes prt-fig { 0%{transform:scale(0.9) rotate(5deg) translateX(0)} 25%{transform:scale(0.95) rotate(7deg) translateX(3px)} 50%{transform:scale(0.9) rotate(4deg) translateX(-2px)} 75%{transform:scale(0.95) rotate(6deg) translateX(2px)} 100%{transform:scale(0.9) rotate(5deg) translateX(0)} }
@keyframes prt-prince { 0%{transform:scale(1.1) rotate(8deg) translateX(0)} 33%{transform:scale(1.15) rotate(10deg) translateX(-4px)} 66%{transform:scale(1.05) rotate(6deg) translateX(4px)} 100%{transform:scale(1.1) rotate(8deg) translateX(0)} }
@keyframes prt-bag { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes prt-lantern { 0%{opacity:0.7;box-shadow:0 0 20px 6px rgba(212,122,42,0.4)} 50%{opacity:1;box-shadow:0 0 35px 12px rgba(255,170,85,0.7)} 100%{opacity:0.8;box-shadow:0 0 25px 8px rgba(212,122,42,0.5)} }

/* easy-got-booty */
.scn-easy-got-booty {
  background: linear-gradient(180deg, #181f30 0%, #2a3650 40%, #3c4f70 100%),
              radial-gradient(ellipse at 30% 90%, #5a7a9a 0%, transparent 60%);
}
.scn-easy-got-booty .egb-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(0deg, #202c42 0%, #2e4060 50%, #141c30 100%);
  animation: egb-sky 25s ease-in-out infinite alternate;
}
.scn-easy-got-booty .egb-moon {
  position: absolute; top: 10%; left: 25%;
  width: 38px; height: 38px;
  background: radial-gradient(circle, #d0e0f0 0%, #a0b8d0 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 25px 8px rgba(160,184,208,0.5);
  animation: egb-moon 15s ease-in-out infinite alternate;
}
.scn-easy-got-booty .egb-hills {
  position: absolute; bottom: 35%; left: 0; right: 0;
  height: 20%;
  background: linear-gradient(180deg, #1a2840 0%, #0c1420 100%);
  border-radius: 50% 50% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: egb-hills 18s ease-in-out infinite alternate;
}
.scn-easy-got-booty .egb-falstaff {
  position: absolute; bottom: 22%; left: 50%;
  width: 60px; height: 70px;
  background: radial-gradient(ellipse at 50% 40%, #2a3a20 0%, #1a2a10 100%);
  border-radius: 40% 30% 50% 50% / 60% 40% 40% 60%;
  transform: translateX(-50%) scale(1.2);
  animation: egb-falstaff 2s ease-in-out infinite alternate;
}
.scn-easy-got-booty .egb-horse {
  position: absolute; bottom: 24%; right: 25%;
  width: 50px; height: 40px;
  background: linear-gradient(180deg, #2a3830 0%, #141e18 100%);
  border-radius: 30% 50% 40% 30% / 50% 60% 40% 30%;
  transform: scaleX(-1);
  animation: egb-horse 3s ease-in-out infinite;
}
.scn-easy-got-booty .egb-booty {
  position: absolute; bottom: 15%; left: 40%;
  width: 20px; height: 20px;
  background: radial-gradient(circle, #b89850 0%, #806830 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 4px rgba(184,152,80,0.5);
  animation: egb-booty 1.6s ease-in-out infinite alternate;
}
.scn-easy-got-booty .egb-sweat {
  position: absolute; bottom: 55%; left: 48%;
  width: 6px; height: 6px;
  background: radial-gradient(circle, #c0d0e0 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(192,208,224,0.5);
  animation: egb-sweat 1.5s ease-in-out infinite;
}
.scn-easy-got-booty .egb-cloud {
  position: absolute; top: 18%; right: 10%;
  width: 70px; height: 16px;
  background: linear-gradient(90deg, rgba(200,210,230,0.3) 0%, rgba(200,210,230,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: egb-cloud 50s linear infinite;
}
@keyframes egb-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.6} }
@keyframes egb-moon { 0%{transform:translateX(0)} 50%{transform:translateX(6px)} 100%{transform:translateX(-6px)} }
@keyframes egb-hills { 0%{transform:translateY(0)} 50%{transform:translateY(-5px)} 100%{transform:translateY(0)} }
@keyframes egb-falstaff { 0%{transform:translateX(-50%) scale(1.2) rotate(-2deg)} 50%{transform:translateX(-50%) scale(1.25) rotate(2deg)} 100%{transform:translateX(-50%) scale(1.2) rotate(-2deg)} }
@keyframes egb-horse { 0%{transform:scaleX(-1) translateX(0)} 25%{transform:scaleX(-1) translateX(-4px)} 50%{transform:scaleX(-1) translateX(0) rotate(5deg)} 75%{transform:scaleX(-1) translateX(4px)} 100%{transform:scaleX(-1) translateX(0)} }
@keyframes egb-booty { 0%{transform:translateY(0) scale(1)} 50%{transform:translateY(-8px) scale(1.2)} 100%{transform:translateY(0) scale(1)} }
@keyframes egb-sweat { 0%{transform:translate(0,0)} 50%{transform:translate(-4px,-6px)} 100%{transform:translate(2px,-2px)} }
@keyframes egb-cloud { 0%{transform:translateX(0)} 100%{transform:translateX(-120vw)} }

/* warkworth-castle-letter */
.scn-warkworth-castle-letter {
  background: linear-gradient(180deg, #1a1822 0%, #2c2640 40%, #3a2e4a 100%),
              radial-gradient(ellipse at 50% 80%, #4a3a5a 0%, transparent 70%);
}
.scn-warkworth-castle-letter .wcl-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a38 0%, #1c1c28 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.7);
  animation: wcl-wall 15s ease-in-out infinite alternate;
}
.scn-warkworth-castle-letter .wcl-window {
  position: absolute; top: 15%; right: 20%;
  width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 50%, #4a6a8a 0%, #1c3048 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 0 20px rgba(74,106,138,0.3);
  animation: wcl-window 12s ease-in-out infinite alternate;
}
.scn-warkworth-castle-letter .wcl-table {
  position: absolute; bottom: 15%; left: 30%; right: 30%;
  height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.6);
}
.scn-warkworth-castle-letter .wcl-candle {
  position: absolute; bottom: 30%; left: 50%;
  width: 12px; height: 28px;
  background: linear-gradient(180deg, #e0c090 0%, #c0a070 100%);
  border-radius: 30% 30% 10% 10%;
  transform: translateX(-50%);
  animation: wcl-candle 3s ease-in-out infinite alternate;
}
.scn-warkworth-castle-letter .wcl-hotspur {
  position: absolute; bottom: 20%; left: 38%;
  width: 25px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 45% 40% 30% 35% / 60% 55% 35% 40%;
  transform: rotate(-5deg);
  animation: wcl-hotspur 4s ease-in-out infinite;
}
.scn-warkworth-castle-letter .wcl-letter {
  position: absolute; bottom: 25%; left: 48%;
  width: 22px; height: 14px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: wcl-letter 6s ease-in-out infinite;
}
.scn-warkworth-castle-letter .wcl-shadow {
  position: absolute; bottom: 18%; left: 40%;
  width: 50px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: wcl-shadow 5s ease-in-out infinite alternate;
}
@keyframes wcl-wall { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.85} }
@keyframes wcl-window { 0%{box-shadow:inset 0 0 20px rgba(74,106,138,0.3)} 50%{box-shadow:inset 0 0 40px rgba(74,106,138,0.5)} 100%{box-shadow:inset 0 0 20px rgba(74,106,138,0.3)} }
@keyframes wcl-candle { 0%{transform:translateX(-50%) scaleY(1) rotate(-2deg)} 50%{transform:translateX(-50%) scaleY(1.05) rotate(2deg)} 100%{transform:translateX(-50%) scaleY(1) rotate(-2deg)} }
@keyframes wcl-hotspur { 0%{transform:rotate(-5deg) translateX(0)} 25%{transform:rotate(-3deg) translateX(2px)} 50%{transform:rotate(-5deg) translateX(-1px)} 75%{transform:rotate(-7deg) translateX(1px)} 100%{transform:rotate(-5deg) translateX(0)} }
@keyframes wcl-letter { 0%{transform:rotate(10deg) translateY(0)} 50%{transform:rotate(8deg) translateY(-2px)} 100%{transform:rotate(10deg) translateY(0)} }
@keyframes wcl-shadow { 0%{opacity:0.3} 50%{opacity:0.6} 100%{opacity:0.3} }

/* letter-misjudged */
.scn-letter-misjudged {
  background: linear-gradient(180deg, #1a1422 0%, #2c2040 40%, #3a284a 100%),
              radial-gradient(ellipse at 40% 60%, #4a3a5a 0%, transparent 70%);
}
.scn-letter-misjudged .lmj-backdrop {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a38 0%, #1c1c28 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.8);
}
.scn-letter-misjudged .lmj-desk {
  position: absolute; bottom: 12%; left: 20%; right: 20%;
  height: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.6);
}
.scn-letter-misjudged .lmj-candle {
  position: absolute; bottom: 30%; left: 55%;
  width: 10px; height: 26px;
  background: linear-gradient(180deg, #e0c090 0%, #c0a070 100%);
  border-radius: 30% 30% 10% 10%;
  transform: translateX(-50%) rotate(3deg);
  animation: lmj-candle 2.5s ease-in-out infinite alternate;
}
.scn-letter-misjudged .lmj-hand {
  position: absolute; bottom: 22%; left: 42%;
  width: 20px; height: 35px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 30% 20% 40% 30% / 50% 30% 40% 50%;
  transform: rotate(-15deg);
  animation: lmj-hand 3s ease-in-out infinite;
}
.scn-letter-misjudged .lmj-letter {
  position: absolute; bottom: 18%; left: 47%;
  width: 25px; height: 18px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 2px;
  transform: rotate(20deg) scale(0.9);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: lmj-letter 4s ease-in-out infinite;
}
.scn-letter-misjudged .lmj-ink {
  position: absolute; bottom: 16%; left: 52%;
  width: 8px; height: 8px;
  background: radial-gradient(circle, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(42,26,26,0.6);
  animation: lmj-ink 2s ease-in-out infinite alternate;
}
.scn-letter-misjudged .lmj-flameglow {
  position: absolute; bottom: 40%; left: 55%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,100,0.2) 0%, transparent 100%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: lmj-flameglow 3s ease-in-out infinite alternate;
}
@keyframes lmj-candle { 0%{transform:translateX(-50%) rotate(3deg) scaleY(1)} 50%{transform:translateX(-50%) rotate(5deg) scaleY(1.04)} 100%{transform:translateX(-50%) rotate(3deg) scaleY(1)} }
@keyframes lmj-hand { 0%{transform:rotate(-15deg) translateX(0)} 25%{transform:rotate(-10deg) translateX(4px)} 50%{transform:rotate(-15deg) translateX(-2px)} 75%{transform:rotate(-20deg) translateX(2px)} 100%{transform:rotate(-15deg) translateX(0)} }
@keyframes lmj-letter { 0%{transform:rotate(20deg) scale(0.9) translateY(0)} 50%{transform:rotate(18deg) scale(0.85) translateY(-3px)} 100%{transform:rotate(20deg) scale(0.9) translateY(0)} }
@keyframes lmj-ink { 0%{transform:scale(1)} 50%{transform:scale(1.3)} 100%{transform:scale(1)} }
@keyframes lmj-flameglow { 0%{opacity:0.3;transform:translate(-50%,-50%) scale(1)} 50%{opacity:0.6;transform:translate(-50%,-50%) scale(1.1)} 100%{opacity:0.3;transform:translate(-50%,-50%) scale(1)} }

.scn-highway-gadshill { background: linear-gradient(180deg, #0a0e2a 0%, #1a1e3e 50%, #2a2e4e 100%), radial-gradient(ellipse at 50% 80%, #2a3a6a 0%, transparent 60%); }
.scn-highway-gadshill .sky-night { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #0b0f2b 0%, #151939 50%, #252949 100%); animation: hg-sky 8s ease-in-out infinite alternate; }
.scn-highway-gadshill .moon { position:absolute; top:12%; right:22%; width:40px; height:40px; background: radial-gradient(circle, #c0d0f0 0%, #8090b0 70%); border-radius:50%; box-shadow: 0 0 30px 6px #8090b0, 0 0 60px 12px rgba(128,144,176,.3); animation: hg-moon 5s ease-in-out infinite alternate; }
.scn-highway-gadshill .road { position:absolute; bottom:20%; left:0; right:0; height:18%; background: linear-gradient(180deg, #2a2e3e 0%, #1a1e2e 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.5); animation: hg-road 12s ease-in-out infinite; }
.scn-highway-gadshill .tree-a { position:absolute; bottom:30%; left:10%; width:30px; height:90px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hg-tree 7s ease-in-out infinite alternate; }
.scn-highway-gadshill .tree-b { position:absolute; bottom:35%; right:18%; width:25px; height:80px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hg-tree 9s ease-in-out infinite alternate-reverse; }
.scn-highway-gadshill .figure-left { position:absolute; bottom:14%; left:30%; width:16px; height:28px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hg-figureL 4s ease-in-out infinite; }
.scn-highway-gadshill .figure-right { position:absolute; bottom:16%; right:35%; width:16px; height:28px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hg-figureR 5s ease-in-out infinite; }
.scn-highway-gadshill .bush { position:absolute; bottom:18%; left:45%; width:50px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 60% 40% 40% 60%; filter: blur(2px); animation: hg-bush 6s ease-in-out infinite alternate; }
@keyframes hg-sky    { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes hg-moon   { 0% { box-shadow: 0 0 20px 4px #8090b0, 0 0 40px 8px rgba(128,144,176,.2); opacity:.85 } 50% { box-shadow: 0 0 40px 10px #a0b0d0, 0 0 80px 16px rgba(160,176,208,.4); opacity:1 } 100% { box-shadow: 0 0 25px 5px #8090b0, 0 0 50px 10px rgba(128,144,176,.25); opacity:.9 } }
@keyframes hg-road   { 0%,100% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.02) } }
@keyframes hg-tree   { 0% { transform: rotate(-2deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-3deg) } }
@keyframes hg-figureL{ 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(4px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes hg-figureR{ 0% { transform: translateX(0) translateY(0) rotate(2deg) } 25% { transform: translateX(-3px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(-6px) translateY(0) rotate(1deg) } 75% { transform: translateX(-3px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes hg-bush   { 0% { transform: scale(1) translateX(0) } 50% { transform: scale(1.05) translateX(-2px) } 100% { transform: scale(0.98) translateX(2px) } }

.scn-falstaff-horse-missing { background: linear-gradient(180deg, #0a0e2a 0%, #1a1e3e 50%, #2a2e4e 100%), radial-gradient(ellipse at 50% 100%, #2a3a5a 0%, transparent 60%); }
.scn-falstaff-horse-missing .bg-night { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0b0f2b 0%, #151939 100%); animation: fh-bg 10s ease-in-out infinite alternate; }
.scn-falstaff-horse-missing .ground { position:absolute; bottom:10%; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1e2a 0%, #0a0e1a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 6px 16px rgba(0,0,0,.5); }
.scn-falstaff-horse-missing .falstaff-figure { position:absolute; bottom:12%; left:35%; width:40px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fh-wobble 3s ease-in-out infinite; }
.scn-falstaff-horse-missing .lantern { position:absolute; bottom:22%; right:30%; width:8px; height:12px; background: radial-gradient(circle, #d0a050 0%, #806030 70%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px #806030, 0 0 40px 12px rgba(128,96,48,.3); animation: fh-lantern 2.5s ease-in-out infinite alternate; }
.scn-falstaff-horse-missing .horse-silhouette { position:absolute; bottom:30%; left:60%; width:50px; height:40px; background: linear-gradient(180deg, #0a0e1a 0%, #050910 100%); border-radius: 40% 30% 50% 40% / 60% 40% 50% 30%; filter: blur(1px); animation: fh-horse 6s ease-in-out infinite; }
.scn-falstaff-horse-missing .stars { position:absolute; top:8%; left:0; right:0; height:20%; background: radial-gradient(circle at 20% 30%, rgba(255,255,255,.3) 0%, transparent 2%), radial-gradient(circle at 70% 10%, rgba(255,255,255,.2) 0%, transparent 2%), radial-gradient(circle at 50% 60%, rgba(255,255,255,.15) 0%, transparent 2%); animation: fh-stars 4s ease-in-out infinite alternate; }
.scn-falstaff-horse-missing .bush-a { position:absolute; bottom:24%; left:10%; width:40px; height:25px; background: linear-gradient(180deg, #1a1e2a 0%, #0a0e1a 100%); border-radius: 50% 40% 40% 60%; filter: blur(3px); animation: fh-bush 5s ease-in-out infinite alternate; }
.scn-falstaff-horse-missing .bush-b { position:absolute; bottom:28%; right:10%; width:35px; height:20px; background: linear-gradient(180deg, #1a1e2a 0%, #0a0e1a 100%); border-radius: 60% 40% 40% 60%; filter: blur(3px); animation: fh-bush 7s ease-in-out infinite alternate reverse; }
@keyframes fh-bg    { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fh-wobble{ 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(5deg) } 50% { transform: translateX(-2px) rotate(-3deg) } 75% { transform: translateX(4px) rotate(4deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes fh-lantern{ 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }
@keyframes fh-horse { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-4px) scaleX(0.95) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes fh-stars { 0% { opacity:.3 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes fh-bush  { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(0.9) } }

.scn-eight-yards-of-ground { background: linear-gradient(180deg, #0a0e2a 0%, #1a1e3e 50%, #2a2e4e 100%), radial-gradient(ellipse at 50% 30%, #3a4a6a 0%, transparent 70%); }
.scn-eight-yards-of-ground .bg-top { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0b0f2b 0%, #151939 100%); animation: ey-bg 9s ease-in-out infinite alternate; }
.scn-eight-yards-of-ground .path { position:absolute; top:10%; left:50%; width:8px; height:80%; background: linear-gradient(180deg, #1a1e2e 0%, #2a2e3e 50%, #1a1e2e 100%); transform: translateX(-50%); border-radius: 0%; animation: ey-path 6s ease-in-out infinite; }
.scn-eight-yards-of-ground .figure-walk { position:absolute; top:30%; left:50%; width:10px; height:14px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: ey-walk 4s linear infinite; }
.scn-eight-yards-of-ground .rock-a { position:absolute; top:55%; left:60%; width:16px; height:12px; background: linear-gradient(180deg, #1a1e2a 0%, #0a0e1a 100%); border-radius: 40% 60% 40% 60%; animation: ey-rock 8s ease-in-out infinite alternate; }
.scn-eight-yards-of-ground .rock-b { position:absolute; top:70%; left:35%; width:12px; height:10px; background: linear-gradient(180deg, #1a1e2a 0%, #0a0e1a 100%); border-radius: 60% 40% 40% 60%; animation: ey-rock 10s ease-in-out infinite alternate-reverse; }
.scn-eight-yards-of-ground .star-field { position:absolute; top:0; left:0; right:0; height:40%; background: radial-gradient(circle at 15% 20%, rgba(255,255,255,.3) 0%, transparent 2%), radial-gradient(circle at 85% 30%, rgba(255,255,255,.2) 0%, transparent 2%), radial-gradient(circle at 50% 10%, rgba(255,255,255,.15) 0%, transparent 2%); animation: ey-star 5s ease-in-out infinite alternate; }
.scn-eight-yards-of-ground .moon-small { position:absolute; top:6%; left:20%; width:18px; height:18px; background: radial-gradient(circle, #c0d0f0 0%, #8090b0 70%); border-radius:50%; box-shadow: 0 0 12px 3px #8090b0; animation: ey-moon 7s ease-in-out infinite alternate; }
@keyframes ey-bg   { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ey-path { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.05) } 100% { transform: translateX(-50%) scaleY(0.95) } }
@keyframes ey-walk { 0% { transform: translate(-50%, 0) } 50% { transform: translate(-48%, -2px) } 100% { transform: translate(-50%, 0) } }
@keyframes ey-rock { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(5deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes ey-star { 0% { opacity:.3 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes ey-moon { 0% { box-shadow: 0 0 8px 2px #8090b0; opacity:.8 } 50% { box-shadow: 0 0 18px 5px #a0b0d0; opacity:1 } 100% { box-shadow: 0 0 10px 3px #8090b0; opacity:.9 } }

.scn-uncolted-rogue { background: linear-gradient(180deg, #0a0e2a 0%, #151939 40%, #1a1e3e 100%), radial-gradient(ellipse at 50% 80%, #2a3a5a 0%, transparent 60%); }
.scn-uncolted-rogue .bg-vertical { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0b0f2b 0%, #151939 100%); animation: ur-bg 8s ease-in-out infinite alternate; }
.scn-uncolted-rogue .ground-line { position:absolute; bottom:20%; left:0; right:0; height:10%; background: linear-gradient(180deg, #1a1e2a 0%, #0a0e1a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.scn-uncolted-rogue .figure-down { position:absolute; bottom:2%; left:50%; width:30px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: ur-figure 3s ease-in-out infinite; }
.scn-uncolted-rogue .horse-above { position:absolute; top:15%; left:40%; width:40px; height:30px; background: linear-gradient(180deg, #1a1e2a 0%, #0a0e1a 100%); border-radius: 40% 30% 50% 40% / 60% 40% 50% 30%; animation: ur-horse 5s ease-in-out infinite; }
.scn-uncolted-rogue .chains { position:absolute; top:25%; left:50%; width:4px; height:20px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 0 0 50% 50%; box-shadow: 0 0 4px rgba(255,255,255,.1); animation: ur-chains 4s ease-in-out infinite alternate; }
.scn-uncolted-rogue .dust { position:absolute; bottom:20%; left:30%; width:20px; height:20px; background: radial-gradient(circle, rgba(200,200,220,.15) 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: ur-dust 6s ease-in-out infinite; }
@keyframes ur-bg     { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes ur-figure { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translate(-48%, -2px) rotate(3deg) } 50% { transform: translate(-50%, 0) rotate(-2deg) } 75% { transform: translate(-52%, -1px) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes ur-horse  { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-8px) scale(0.9) } 100% { transform: translateY(0) scale(1) } }
@keyframes ur-chains { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }
@keyframes ur-dust   { 0% { transform: scale(1) opacity:.3 } 50% { transform: scale(1.5) opacity:.6 } 100% { transform: scale(0.8) opacity:.2 } }

/* taketh-purse-tomorrow */
.scn-taketh-purse-tomorrow {
  background: linear-gradient(180deg, #2a1f14 0%, #1a120a 60%), radial-gradient(ellipse at 50% 60%, #8b6914 0%, transparent 80%);
}
.scn-taketh-purse-tomorrow .wall {
  position: absolute; inset: 0 0 45% 0;
  background: repeating-linear-gradient(90deg, #3a2a1a 0px, #2a1f14 4px, #3a2a1a 8px, #1f140e 12px);
  opacity: 0.6;
  animation: tp-wall 20s linear infinite;
}
.scn-taketh-purse-tomorrow .table {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 8%;
  background: linear-gradient(180deg, #5a3a1a, #3a2210);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,.7);
  animation: tp-table 8s ease-in-out infinite;
}
.scn-taketh-purse-tomorrow .lantern {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 50px;
  background: radial-gradient(circle, #f0d080 0%, #c09030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 50px 20px rgba(200,140,40,.6), 0 0 100px 40px rgba(200,140,40,.3);
  animation: tp-lantern 3s ease-in-out infinite alternate;
}
.scn-taketh-purse-tomorrow .figure-left {
  position: absolute; bottom: 25%; left: 25%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #6a5030 0%, #4a3018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tp-sway-left 4s ease-in-out infinite;
}
.scn-taketh-purse-tomorrow .figure-right {
  position: absolute; bottom: 25%; right: 25%;
  width: 35px; height: 75px;
  background: linear-gradient(180deg, #706040 0%, #504028 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tp-sway-right 5s ease-in-out infinite;
}
.scn-taketh-purse-tomorrow .mug1 {
  position: absolute; bottom: 23%; left: 32%;
  width: 16px; height: 22px;
  background: linear-gradient(180deg, #8a6a3a, #6a4a1a);
  border-radius: 10% 10% 30% 30%;
  animation: tp-mug1 6s ease-in-out infinite;
}
.scn-taketh-purse-tomorrow .mug2 {
  position: absolute; bottom: 23%; right: 32%;
  width: 16px; height: 22px;
  background: linear-gradient(180deg, #7a5a2a, #5a3a0a);
  border-radius: 10% 10% 30% 30%;
  animation: tp-mug2 7s ease-in-out infinite;
}
.scn-taketh-purse-tomorrow .glow-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, rgba(200,140,40,0.15), transparent 70%);
  animation: tp-glow 5s ease-in-out infinite alternate;
}
@keyframes tp-wall {
  0% { background-position: 0 0; }
  100% { background-position: -24px 0; }
}
@keyframes tp-table {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
}
@keyframes tp-lantern {
  0% { box-shadow: 0 0 40px 15px rgba(200,140,40,.5), 0 0 80px 30px rgba(200,140,40,.2); opacity: .9; }
  50% { box-shadow: 0 0 60px 25px rgba(200,140,40,.7), 0 0 120px 50px rgba(200,140,40,.4); opacity: 1; }
  100% { box-shadow: 0 0 45px 18px rgba(200,140,40,.55), 0 0 90px 35px rgba(200,140,40,.25); opacity: .95; }
}
@keyframes tp-sway-left {
  0%,100% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(3px); }
}
@keyframes tp-sway-right {
  0%,100% { transform: rotate(2deg) translateX(0); }
  50% { transform: rotate(-2deg) translateX(-3px); }
}
@keyframes tp-mug1 {
  0%,100% { transform: rotate(0); }
  50% { transform: rotate(-5deg) translateY(-2px); }
}
@keyframes tp-mug2 {
  0%,100% { transform: rotate(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
}
@keyframes tp-glow {
  0% { opacity: .5; }
  100% { opacity: .8; }
}

/* monsieur-remorse */
.scn-monsieur-remorse {
  background: linear-gradient(180deg, #2a1f14 0%, #1a120a 70%), radial-gradient(ellipse at 50% 50%, #8b6914 0%, transparent 60%);
}
.scn-monsieur-remorse .wall {
  position: absolute; inset: 0 0 40% 0;
  background: repeating-linear-gradient(90deg, #3a2a1a 0px, #2a1f14 4px, #3a2a1a 8px, #1f140e 12px);
  opacity: 0.5;
  animation: mr-wall 18s linear infinite;
}
.scn-monsieur-remorse .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a10, #1a0e06);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-monsieur-remorse .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 6%;
  background: linear-gradient(180deg, #5a3a1a, #3a2210);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,.7);
  animation: mr-table 10s ease-in-out infinite;
}
.scn-monsieur-remorse .figure-center {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 85px;
  background: linear-gradient(180deg, #c8553d 0%, #8a3020 100%); /* terracotta for Falstaff */
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mr-center 4s ease-in-out infinite;
}
.scn-monsieur-remorse .figure-left {
  position: absolute; bottom: 25%; left: 30%;
  width: 28px; height: 68px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2818 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mr-left 5s ease-in-out infinite;
}
.scn-monsieur-remorse .figure-right {
  position: absolute; bottom: 25%; right: 30%;
  width: 28px; height: 68px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2818 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mr-right 5.5s ease-in-out infinite;
}
.scn-monsieur-remorse .candle {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 14px; height: 40px;
  background: linear-gradient(180deg, #f0d080, #c09030);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(200,140,40,.5), 0 0 60px 20px rgba(200,140,40,.2);
  animation: mr-candle 2s ease-in-out infinite alternate;
}
.scn-monsieur-remorse .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, transparent 60%, rgba(0,0,0,.4) 100%);
  animation: mr-shadow 6s ease-in-out infinite alternate;
}
@keyframes mr-wall {
  0% { background-position: 0 0; }
  100% { background-position: -24px 0; }
}
@keyframes mr-table {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
}
@keyframes mr-center {
  0%,100% { transform: translateX(-50%) rotate(0) scaleY(1); }
  25% { transform: translateX(-50%) rotate(-3deg) scaleY(1.02); }
  75% { transform: translateX(-50%) rotate(3deg) scaleY(1.02); }
}
@keyframes mr-left {
  0%,100% { transform: rotate(1deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-2px); }
}
@keyframes mr-right {
  0%,100% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
}
@keyframes mr-candle {
  0% { box-shadow: 0 0 25px 8px rgba(200,140,40,.4), 0 0 50px 15px rgba(200,140,40,.15); transform: scaleY(1); }
  50% { box-shadow: 0 0 40px 15px rgba(200,140,40,.7), 0 0 80px 30px rgba(200,140,40,.3); transform: scaleY(1.05); }
  100% { box-shadow: 0 0 30px 10px rgba(200,140,40,.5), 0 0 60px 20px rgba(200,140,40,.2); transform: scaleY(0.98); }
}
@keyframes mr-shadow {
  0% { opacity: .3; }
  100% { opacity: .6; }
}

/* damned-for-word */
.scn-damned-for-word {
  background: linear-gradient(180deg, #2a1f14 0%, #1a120a 70%), radial-gradient(ellipse at 50% 55%, #8b6914 0%, transparent 70%);
}
.scn-damned-for-word .wall {
  position: absolute; inset: 0 0 35% 0;
  background: repeating-linear-gradient(90deg, #3a2a1a 0px, #2a1f14 4px, #3a2a1a 8px, #1f140e 12px);
  opacity: 0.4;
  animation: dw-wall 22s linear infinite;
}
.scn-damned-for-word .table {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 10%;
  background: linear-gradient(180deg, #5a3a1a, #3a2210);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,.7);
}
.scn-damned-for-word .figure {
  position: absolute; bottom: 25%; left: 45%; width: 38px; height: 80px;
  background: linear-gradient(180deg, #c8553d 0%, #8a3020 100%); /* terracotta */
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dw-figure 3.5s ease-in-out infinite;
}
.scn-damned-for-word .hand {
  position: absolute; bottom: 40%; left: 55%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #b07050, #7a4020);
  border-radius: 40% 40% 30% 30%;
  transform-origin: 100% 100%;
  animation: dw-hand 2s ease-in-out infinite alternate;
}
.scn-damned-for-word .goblet {
  position: absolute; bottom: 30%; left: 55%; width: 18px; height: 24px;
  background: linear-gradient(180deg, #a08060, #705030);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: dw-goblet 3s ease-in-out infinite;
}
.scn-damned-for-word .candle {
  position: absolute; bottom: 28%; left: 40%; width: 12px; height: 36px;
  background: linear-gradient(180deg, #f0d080, #c09030);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(200,140,40,.4), 0 0 40px 12px rgba(200,140,40,.15);
  animation: dw-candle 2.5s ease-in-out infinite alternate;
}
.scn-damned-for-word .shadow-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 45%, transparent 50%, rgba(0,0,0,.5) 100%);
  animation: dw-shadow 4s ease-in-out infinite alternate;
}
@keyframes dw-wall {
  0% { background-position: 0 0; }
  100% { background-position: -24px 0; }
}
@keyframes dw-figure {
  0%,100% { transform: rotate(2deg) translateX(0); }
  50% { transform: rotate(-2deg) translateX(5px); }
}
@keyframes dw-hand {
  0% { transform: rotate(-10deg) translate(0, 0); }
  100% { transform: rotate(15deg) translate(2px, -3px); }
}
@keyframes dw-goblet {
  0%,100% { transform: rotate(0) translateY(0); }
  25% { transform: rotate(-8deg) translateY(-2px); }
  75% { transform: rotate(6deg) translateY(-1px); }
}
@keyframes dw-candle {
  0% { box-shadow: 0 0 15px 4px rgba(200,140,40,.3), 0 0 30px 8px rgba(200,140,40,.1); transform: scaleY(1); }
  50% { box-shadow: 0 0 25px 8px rgba(200,140,40,.6), 0 0 50px 15px rgba(200,140,40,.25); transform: scaleY(1.04); }
  100% { box-shadow: 0 0 18px 5px rgba(200,140,40,.4), 0 0 35px 10px rgba(200,140,40,.15); transform: scaleY(0.97); }
}
@keyframes dw-shadow {
  0% { opacity: .2; }
  100% { opacity: .5; }
}

/* threat-to-hang */
.scn-threat-to-hang {
  background: linear-gradient(180deg, #2a1f14 0%, #1a120a 70%), radial-gradient(ellipse at 50% 45%, #8b6914 0%, transparent 70%);
}
.scn-threat-to-hang .wall {
  position: absolute; inset: 0 0 40% 0;
  background: repeating-linear-gradient(90deg, #3a2a1a 0px, #2a1f14 4px, #3a2a1a 8px, #1f140e 12px);
  opacity: 0.5;
  animation: th-wall 25s linear infinite;
}
.scn-threat-to-hang .table {
  position: absolute; bottom: 20%; left: 18%; right: 18%; height: 8%;
  background: linear-gradient(180deg, #5a3a1a, #3a2210);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,.7);
  animation: th-table 9s ease-in-out infinite;
}
.scn-threat-to-hang .figure-left {
  position: absolute; bottom: 25%; left: 28%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2818 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: th-left 4.5s ease-in-out infinite;
}
.scn-threat-to-hang .figure-right {
  position: absolute; bottom: 25%; right: 28%;
  width: 35px; height: 75px;
  background: linear-gradient(180deg, #c8553d 0%, #8a3020 100%); /* terracotta */
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: th-right 5.5s ease-in-out infinite;
}
.scn-threat-to-hang .candle {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 12px; height: 38px;
  background: linear-gradient(180deg, #f0d080, #c09030);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 25px 8px rgba(200,140,40,.4), 0 0 50px 15px rgba(200,140,40,.15);
  animation: th-candle 2s ease-in-out infinite alternate;
}
.scn-threat-to-hang .purse1 {
  position: absolute; bottom: 22%; left: 38%;
  width: 20px; height: 16px;
  background: radial-gradient(circle, #6a4a2a, #3a2210);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  box-shadow: 0 2px 4px rgba(0,0,0,.6);
  animation: th-purse1 6s ease-in-out infinite;
}
.scn-threat-to-hang .purse2 {
  position: absolute; bottom: 22%; right: 38%;
  width: 18px; height: 14px;
  background: radial-gradient(circle, #7a5a2a, #4a2a10);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  box-shadow: 0 2px 4px rgba(0,0,0,.6);
  animation: th-purse2 7s ease-in-out infinite;
}
.scn-threat-to-hang .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, transparent 50%, rgba(0,0,0,.5) 100%);
  animation: th-shadow 8s ease-in-out infinite alternate;
}
@keyframes th-wall {
  0% { background-position: 0 0; }
  100% { background-position: -24px 0; }
}
@keyframes th-table {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
}
@keyframes th-left {
  0%,100% { transform: rotate(2deg) translateY(0); }
  25% { transform: rotate(-3deg) translateY(-3px); }
  75% { transform: rotate(1deg) translateY(-1px); }
}
@keyframes th-right {
  0%,100% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
}
@keyframes th-candle {
  0% { box-shadow: 0 0 20px 5px rgba(200,140,40,.3), 0 0 40px 10px rgba(200,140,40,.1); transform: scaleY(1); }
  50% { box-shadow: 0 0 35px 12px rgba(200,140,40,.6), 0 0 60px 20px rgba(200,140,40,.25); transform: scaleY(1.05); }
  100% { box-shadow: 0 0 25px 8px rgba(200,140,40,.4), 0 0 45px 15px rgba(200,140,40,.15); transform: scaleY(0.98); }
}
@keyframes th-purse1 {
  0%,100% { transform: rotate(0) scale(1); }
  50% { transform: rotate(-10deg) scale(1.1); }
}
@keyframes th-purse2 {
  0%,100% { transform: rotate(0) scale(1); }
  50% { transform: rotate(10deg) scale(1.1); }
}
@keyframes th-shadow {
  0% { opacity: .3; }
  100% { opacity: .65; }
}

.scn-item-division-map {
  background: linear-gradient(180deg, #0d1b2a 0%, #1b2a3a 40%, #2a3b4b 100%),
              radial-gradient(ellipse at 70% 20%, #4a6a8a 0%, transparent 60%);
}
.scn-item-division-map .table {
  position: absolute; inset: 55% 0 0 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.6);
  animation: sim-table 20s ease-in-out infinite alternate;
}
.scn-item-division-map .map {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 45%;
  background: linear-gradient(135deg, #5a7a5a 0%, #8a9a6a 40%, #ad9a6a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5), inset 0 1px 3px rgba(255,255,200,.3);
  animation: sim-map 15s ease-in-out infinite alternate;
}
.scn-item-division-map .border-line {
  position: absolute; bottom: 40%; left: 20%; width: 60%; height: 2px;
  background: #8a6a3a;
  animation: sim-border 8s ease-in-out infinite;
}
.scn-item-division-map .border-a { transform: rotate(-10deg); animation-delay: 0s; }
.scn-item-division-map .border-b { transform: rotate(15deg); animation-delay: -4s; bottom: 55%; left: 30%; width: 40%; }
.scn-item-division-map .moonbeam {
  position: absolute; inset: 0 0 0 0; pointer-events: none;
  background: linear-gradient(135deg, transparent 30%, rgba(200,220,255,.15) 40%, transparent 50%);
  animation: sim-beam 10s ease-in-out infinite alternate;
}
.scn-item-division-map .hand {
  position: absolute; bottom: 35%; left: 45%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sim-hand 4s ease-in-out infinite;
}
.scn-item-division-map .quill {
  position: absolute; bottom: 38%; left: 48%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #d4b48a 0%, #8a6a3a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: sim-quill 3s ease-in-out infinite;
}
.scn-item-division-map .ink-spot {
  position: absolute; bottom: 34%; left: 50%; width: 6px; height: 6px;
  background: radial-gradient(circle, #1a0a00 0%, transparent 70%);
  border-radius: 50%;
  animation: sim-ink 7s ease-in-out infinite;
}
@keyframes sim-table { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes sim-map { 0% { transform: scale(1) } 50% { transform: scale(1.01) } 100% { transform: scale(.98) } }
@keyframes sim-border { 0%,100% { opacity: .6 } 50% { opacity: 1 } }
@keyframes sim-beam { 0% { opacity: .1; transform: translateX(-5%) } 50% { opacity: .25; transform: translateX(5%) } 100% { opacity: .1; transform: translateX(-5%) } }
@keyframes sim-hand { 0% { transform: translateY(0) rotate(-5deg) } 25% { transform: translateY(-2px) rotate(-2deg) } 50% { transform: translateY(0) rotate(3deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes sim-quill { 0% { transform: rotate(0) scaleY(1) } 50% { transform: rotate(8deg) scaleY(.9) } 100% { transform: rotate(0) scaleY(1) } }
@keyframes sim-ink { 0%,100% { opacity: .6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.2) } }

.scn-division-map {
  background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 50%, #2a3a4a 100%),
              radial-gradient(ellipse at 30% 10%, #3a5a7a 0%, transparent 70%);
}
.scn-division-map .map-close {
  position: absolute; inset: 20% 10% 20% 10%;
  background: linear-gradient(135deg, #5a7a5a 0%, #8a9a6a 50%, #9a8a5a 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px rgba(0,0,0,.5);
  animation: sdm-zoom 15s ease-in-out infinite alternate;
}
.scn-division-map .ruler {
  position: absolute; bottom: 35%; left: 20%; right: 40%; height: 4px;
  background: linear-gradient(90deg, #c0a060 0%, #a08040 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: sdm-ruler 6s ease-in-out infinite;
}
.scn-division-map .ink-pot {
  position: absolute; bottom: 22%; left: 15%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,.6);
  animation: sdm-pot 12s ease-in-out infinite;
}
.scn-division-map .quill-draw {
  position: absolute; bottom: 30%; left: 22%; width: 3px; height: 22px;
  background: linear-gradient(180deg, #d4b48a 0%, #8a6a3a 100%);
  transform-origin: bottom center;
  animation: sdm-quill 3s ease-in-out infinite;
}
.scn-division-map .hand-draw {
  position: absolute; bottom: 28%; left: 20%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sdm-hand 4s ease-in-out infinite;
}
.scn-division-map .line-drawn {
  position: absolute; bottom: 35%; left: 22%; width: 40%; height: 2px;
  background: #8a6a3a;
  transform-origin: left center;
  animation: sdm-line 8s ease-in-out infinite;
}
.scn-division-map .shadow-divide {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.3) 50%, transparent 100%);
  pointer-events: none;
  animation: sdm-shadow 8s ease-in-out infinite alternate;
}
@keyframes sdm-zoom { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(.97) } }
@keyframes sdm-ruler { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes sdm-pot { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes sdm-quill { 0% { transform: rotate(0) scaleY(1) } 25% { transform: rotate(10deg) scaleY(.85) } 50% { transform: rotate(-2deg) scaleY(1) } 75% { transform: rotate(5deg) scaleY(.9) } 100% { transform: rotate(0) scaleY(1) } }
@keyframes sdm-hand { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(5px) rotate(-5deg) } 50% { transform: translateX(10px) rotate(2deg) } 75% { transform: translateX(5px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sdm-line { 0% { transform: scaleX(0); opacity: 0 } 25% { transform: scaleX(.3); opacity: 1 } 50% { transform: scaleX(.6) } 75% { transform: scaleX(.9) } 100% { transform: scaleX(1); opacity: .8 } }
@keyframes sdm-shadow { 0% { opacity: .2 } 50% { opacity: .5 } 100% { opacity: .2 } }

.scn-welsh-parting-lovers {
  background: linear-gradient(180deg, #2a3a4a 0%, #4a5a6a 30%, #6a7a7a 60%, #8a9a8a 100%),
              radial-gradient(ellipse at 50% 80%, #c0a080 0%, transparent 60%);
}
.scn-welsh-parting-lovers .sky-warm {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a7a8a 0%, #8a9a8a 50%, #b0a080 100%);
  animation: swl-sky 20s ease-in-out infinite alternate;
}
.scn-welsh-parting-lovers .moon-warm {
  position: absolute; top: 10%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe8c0 0%, #d4b080 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(255,232,192,.4);
  animation: swl-moon 12s ease-in-out infinite alternate;
}
.scn-welsh-parting-lovers .hill-left {
  position: absolute; bottom: 30%; left: 0; right: 40%; height: 25%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 100%);
  border-radius: 0 60% 0 0 / 0 40% 0 0;
  animation: swl-hill 18s ease-in-out infinite alternate;
}
.scn-welsh-parting-lovers .figure-left {
  position: absolute; bottom: 22%; left: 35%; 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: swl-figure 6s ease-in-out infinite;
}
.scn-welsh-parting-lovers .figure-right {
  position: absolute; bottom: 22%; left: 48%; 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: swl-figure 6s ease-in-out infinite reverse;
}
.scn-welsh-parting-lovers .hand-touch {
  position: absolute; bottom: 30%; left: 44%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c0a080 0%, transparent 70%);
  border-radius: 50%;
  animation: swl-hand 4s ease-in-out infinite;
}
.scn-welsh-parting-lovers .tear-drop {
  position: absolute; bottom: 28%; left: 40%; width: 4px; height: 8px;
  background: linear-gradient(180deg, #b0d0e0 0%, transparent 100%);
  border-radius: 50%;
  animation: swl-tear 3s ease-in-out infinite;
}
.scn-welsh-parting-lovers .arch-window {
  position: absolute; bottom: 35%; left: 20%; right: 20%; height: 30%;
  border: 6px solid #4a3a2a;
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  background: radial-gradient(ellipse at 50% 30%, #ffe8c0 0%, transparent 70%);
  opacity: .3;
  animation: swl-window 25s ease-in-out infinite alternate;
}
@keyframes swl-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes swl-moon { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.05) translateY(-3px) } 100% { transform: scale(.95) translateY(2px) } }
@keyframes swl-hill { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes swl-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(-2px) rotate(2deg) } 50% { transform: translateX(1px) rotate(-1deg) } 75% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes swl-hand { 0%,100% { opacity: .5; transform: scale(1) } 50% { opacity: 1; transform: scale(1.3) } }
@keyframes swl-tear { 0% { transform: translateY(0); opacity: .8 } 50% { transform: translateY(8px); opacity: .4 } 100% { transform: translateY(16px); opacity: 0 } }
@keyframes swl-window { 0% { opacity: .2 } 50% { opacity: .4 } 100% { opacity: .2 } }

.scn-king-henry-court-rebuke {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 30%, #7a6a5a 60%, #9a8a7a 100%),
              radial-gradient(ellipse at 50% 30%, #d4b48a 0%, transparent 70%);
}
.scn-king-henry-court-rebuke .floor {
  position: absolute; inset: 60% 0 0 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.3);
  animation: skh-floor 15s ease-in-out infinite alternate;
}
.scn-king-henry-court-rebuke .back-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #7a6a5a 0%, #9a8a7a 50%, #8a7a6a 100%);
  animation: skh-wall 20s ease-in-out infinite alternate;
}
.scn-king-henry-court-rebuke .throne {
  position: absolute; bottom: 40%; left: 30%; right: 30%; height: 20%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
  animation: skh-throne 10s ease-in-out infinite alternate;
}
.scn-king-henry-court-rebuke .king-silhouette {
  position: absolute; bottom: 35%; left: 25%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: skh-king 5s ease-in-out infinite;
}
.scn-king-henry-court-rebuke .prince-silhouette {
  position: absolute; bottom: 35%; right: 25%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: skh-prince 5s ease-in-out infinite reverse;
}
.scn-king-henry-court-rebuke .column-left {
  position: absolute; bottom: 0; left: 5%; width: 10%; height: 90%;
  background: linear-gradient(90deg, #8a7a6a 0%, #b0a090 30%, #8a7a6a 70%);
  border-radius: 4px;
  box-shadow: inset -2px 0 4px rgba(0,0,0,.2);
  animation: skh-column 8s ease-in-out infinite alternate;
}
.scn-king-henry-court-rebuke .column-right {
  position: absolute; bottom: 0; right: 5%; width: 10%; height: 90%;
  background: linear-gradient(90deg, #8a7a6a 0%, #b0a090 30%, #8a7a6a 70%);
  border-radius: 4px;
  box-shadow: inset 2px 0 4px rgba(0,0,0,.2);
  animation: skh-column 8s ease-in-out infinite alternate-reverse;
}
.scn-king-henry-court-rebuke .light-beam {
  position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(135deg, transparent 20%, rgba(255,230,180,.15) 40%, transparent 60%);
  animation: skh-beam 6s ease-in-out infinite alternate;
}
@keyframes skh-floor { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes skh-wall { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes skh-throne { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes skh-king { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(-2px) rotate(2deg) } 50% { transform: translateX(1px) rotate(-1deg) } 75% { transform: translateX(-1px) rotate(3deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes skh-prince { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(2px) rotate(-2deg) } 50% { transform: translateX(-1px) rotate(1deg) } 75% { transform: translateX(1px) rotate(-3deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes skh-column { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes skh-beam { 0% { opacity: .1; transform: translateX(-5%) } 50% { opacity: .3; transform: translateX(5%) } 100% { opacity: .1; transform: translateX(-5%) } }

.scn-uncle-blames-king {
  background:
    radial-gradient(ellipse 120% 80% at 30% 70%, rgba(100,60,20,0.3), transparent 70%),
    linear-gradient(180deg, #f5e8d0 0%, #d4b896 40%, #b8966a 100%);
}
.scn-uncle-blames-king .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8b6f4b 0%, #5c432c 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-uncle-blames-king .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 35%;
  background: linear-gradient(180deg, #f0dbb8 0%, #dcc4a0 100%);
}
.scn-uncle-blames-king .window {
  position: absolute; top: 15%; left: 15%; width: 35%; height: 50%;
  background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #c8b88a 60%, transparent 100%);
  border: 6px solid #6b4f2e;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,230,150,0.4);
  animation: ubk-window 8s ease-in-out infinite alternate;
}
.scn-uncle-blames-king .figure-left {
  position: absolute; bottom: 20%; left: 25%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -20px 0 30px rgba(0,0,0,0.4);
  animation: ubk-figleft 5s ease-in-out infinite;
}
.scn-uncle-blames-king .figure-right {
  position: absolute; bottom: 22%; right: 20%; width: 11%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ubk-figright 6s ease-in-out infinite alternate;
}
.scn-uncle-blames-king .shadow-left {
  position: absolute; bottom: 18%; left: 22%; width: 18%; height: 15%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4), transparent);
  animation: ubk-shadow 5s ease-in-out infinite;
}
.scn-uncle-blames-king .candle {
  position: absolute; bottom: 30%; left: 50%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #e8c070 0%, #a07030 100%);
  border-radius: 4px 4px 2px 2px;
  transform: translateX(-50%);
}
.scn-uncle-blames-king .glow {
  position: absolute; bottom: 25%; left: 48%; width: 6%; height: 12%;
  background: radial-gradient(ellipse, #ffd070 0%, rgba(255,200,80,0.3) 60%, transparent 100%);
  border-radius: 50%;
  animation: ubk-glow 2s ease-in-out infinite alternate;
}
@keyframes ubk-window { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ubk-figleft { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } }
@keyframes ubk-figright { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 50% { transform: translateX(-5px) rotate(-3deg) scaleY(0.95); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes ubk-shadow { 0%,100% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.1); } }
@keyframes ubk-glow { 0% { opacity: 0.6; transform: scale(1); } 100% { opacity: 1; transform: scale(1.3); } }

.scn-richard-deposition {
  background:
    radial-gradient(ellipse 100% 90% at 50% 40%, rgba(90,70,40,0.2), transparent 70%),
    linear-gradient(180deg, #e3d5b8 0%, #c2b08f 40%, #a08060 100%);
}
.scn-richard-deposition .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a6545 0%, #4c3820 100%);
}
.scn-richard-deposition .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #d6c4a8 0%, #b8a080 100%);
}
.scn-richard-deposition .window {
  position: absolute; top: 10%; right: 10%; width: 30%; height: 60%;
  background: radial-gradient(ellipse at 50% 30%, #fff8dc, #d4b88a 70%, transparent);
  border: 5px solid #6b4f2e;
  box-shadow: inset 0 0 40px rgba(255,230,150,0.3);
  animation: rdp-window 10s ease-in-out infinite alternate;
}
.scn-richard-deposition .throne {
  position: absolute; bottom: 22%; left: 15%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #8b6b3a 0%, #5a4a2a 100%);
  border-radius: 10px 10px 5px 5px;
  box-shadow: 5px 5px 15px rgba(0,0,0,0.4);
  animation: rdp-throne 7s ease-in-out infinite;
}
.scn-richard-deposition .figure-king {
  position: absolute; bottom: 25%; left: 16%; width: 10%; height: 38%;
  background: linear-gradient(180deg, #2a1a08 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rdp-king 4s ease-in-out infinite alternate;
}
.scn-richard-deposition .figure-kneeling {
  position: absolute; bottom: 12%; right: 25%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: rdp-kneel 6s ease-in-out infinite;
}
.scn-richard-deposition .crown {
  position: absolute; bottom: 55%; left: 18%; width: 8%; height: 6%;
  background: radial-gradient(ellipse, #d4a84a, #a08030 60%, transparent);
  border-radius: 50% 50% 0 0;
  animation: rdp-crown 8s ease-in-out infinite alternate;
}
.scn-richard-deposition .scroll {
  position: absolute; bottom: 28%; left: 30%; width: 20%; height: 8%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%);
  border-radius: 3px;
  transform: rotate(-10deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: rdp-scroll 5s ease-in-out infinite;
}
.scn-richard-deposition .shadow-large {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 20%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2), transparent);
  animation: rdp-shadow 12s ease-in-out infinite alternate;
}
@keyframes rdp-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes rdp-throne { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes rdp-king { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes rdp-kneel { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(1px) rotate(2deg); } }
@keyframes rdp-crown { 0% { opacity: 0.6; transform: scale(0.9); } 100% { opacity: 1; transform: scale(1.1); } }
@keyframes rdp-scroll { 0%,100% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-12deg) translateX(3px); } }
@keyframes rdp-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 100% { opacity: 0.5; transform: scaleX(1.05); } }

.scn-plant-thorn-bolingbroke {
  background:
    radial-gradient(ellipse 110% 80% at 40% 60%, rgba(70,90,30,0.2), transparent 60%),
    linear-gradient(180deg, #d8cfb0 0%, #b8a88a 40%, #9a8360 100%);
}
.scn-plant-thorn-bolingbroke .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6b5a42 0%, #3d2e1e 100%);
}
.scn-plant-thorn-bolingbroke .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 35%;
  background: linear-gradient(180deg, #d2c2a8 0%, #b4a080 100%);
}
.scn-plant-thorn-bolingbroke .window {
  position: absolute; top: 12%; left: 50%; width: 40%; height: 55%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #fff8e0, #d8c09a 70%, transparent);
  border: 5px solid #5c432c;
  box-shadow: inset 0 0 30px rgba(255,230,150,0.3);
  animation: ptb-window 9s ease-in-out infinite alternate;
}
.scn-plant-thorn-bolingbroke .table {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 12%;
  background: linear-gradient(180deg, #7a6535 0%, #4c3820 100%);
  border-radius: 4px;
  box-shadow: 0 5px 15px rgba(0,0,0,0.4);
  animation: ptb-table 11s ease-in-out infinite alternate;
}
.scn-plant-thorn-bolingbroke .figure-seated {
  position: absolute; bottom: 15%; left: 35%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ptb-seated 5s ease-in-out infinite;
}
.scn-plant-thorn-bolingbroke .figure-standing {
  position: absolute; bottom: 22%; right: 20%; width: 10%; height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -15px 0 20px rgba(0,0,0,0.3);
  animation: ptb-standing 4s ease-in-out infinite alternate;
}
.scn-plant-thorn-bolingbroke .thorn-branch {
  position: absolute; bottom: 28%; left: 30%; width: 20%; height: 5%;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a3a 50%, #3a2a1a 100%);
  border-radius: 50%;
  transform: rotate(15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ptb-thorn 6s ease-in-out infinite;
}
.scn-plant-thorn-bolingbroke .inkwell {
  position: absolute; bottom: 28%; left: 42%; width: 4%; height: 4%;
  background: radial-gradient(circle, #1a1a1a 0%, #333 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: ptb-ink 7s ease-in-out infinite alternate;
}
.scn-plant-thorn-bolingbroke .shadow-desk {
  position: absolute; bottom: 16%; left: 20%; width: 60%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2), transparent);
}
@keyframes ptb-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ptb-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ptb-seated { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } }
@keyframes ptb-standing { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ptb-thorn { 0%,100% { transform: rotate(15deg); } 50% { transform: rotate(20deg) scaleX(1.05); } }
@keyframes ptb-ink { 0% { opacity: 0.7; } 100% { opacity: 1; } }

.scn-secret-book-plot {
  background:
    radial-gradient(ellipse 120% 90% at 50% 30%, rgba(50,40,20,0.3), transparent 70%),
    linear-gradient(180deg, #eadbc8 0%, #c8b898 40%, #a08a6a 100%);
}
.scn-secret-book-plot .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a6a52 0%, #4a3a28 100%);
}
.scn-secret-book-plot .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a890 100%);
}
.scn-secret-book-plot .bookshelf {
  position: absolute; top: 5%; left: 5%; width: 90%; height: 45%;
  background: repeating-linear-gradient(90deg, #4a3a2a 0, #4a3a2a 8px, #5c4c3c 8px, #5c4c3c 16px);
  border-radius: 4px;
  box-shadow: 0 5px 15px rgba(0,0,0,0.3);
  animation: sbp-shelf 15s ease-in-out infinite alternate;
}
.scn-secret-book-plot .table {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 14%;
  background: linear-gradient(180deg, #6b5535 0%, #3d2e1e 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-secret-book-plot .book {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 16%;
  background: linear-gradient(180deg, #b89a6a 0%, #8a7050 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: sbp-book 7s ease-in-out infinite;
}
.scn-secret-book-plot .candle {
  position: absolute; bottom: 35%; left: 48%; width: 2%; height: 10%;
  background: linear-gradient(180deg, #e8c070 0%, #a07030 100%);
  border-radius: 3px;
  animation: sbp-candle 3s ease-in-out infinite alternate;
}
.scn-secret-book-plot .figure-left {
  position: absolute; bottom: 15%; left: 22%; width: 12%; height: 42%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sbp-figleft 5s ease-in-out infinite;
}
.scn-secret-book-plot .figure-right {
  position: absolute; bottom: 15%; right: 22%; width: 12%; height: 42%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sbp-figright 5s ease-in-out infinite alternate;
}
.scn-secret-book-plot .shadow-close {
  position: absolute; bottom: 12%; left: 15%; width: 70%; height: 15%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25), transparent);
  animation: sbp-shadow 8s ease-in-out infinite alternate;
}
@keyframes sbp-shelf { 0% { opacity: 0.9; } 100% { opacity: 1; } }
@keyframes sbp-book { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes sbp-candle { 0% { opacity: 0.7; transform: scaleY(0.95); } 100% { opacity: 1; transform: scaleY(1.05); } }
@keyframes sbp-figleft { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-1px) rotate(0deg); } }
@keyframes sbp-figright { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sbp-shadow { 0% { opacity: 0.3; } 100% { opacity: 0.5; } }

/* palace-council-opening */
.scn-palace-council-opening {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 30%, #c09a7a 100%), radial-gradient(ellipse at 50% 20%, #ffdd99 0%, transparent 60%);
}
.scn-palace-council-opening .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #b89a7a 0%, #8a6b4e 100%);
  border-top: 2px solid #c4a080;
  animation: pc-floor 12s ease-in-out infinite alternate;
}
.scn-palace-council-opening .columns {
  position: absolute; top: 5%; bottom: 18%; width: 6%;
  background: linear-gradient(180deg, #e8d5b8 0%, #c9b097 50%, #a68e76 100%);
  border-radius: 4px;
  box-shadow: inset -2px 0 6px rgba(0,0,0,0.15);
}
.scn-palace-council-opening .columns.left { left: 10%; }
.scn-palace-council-opening .columns.right { right: 10%; }
.scn-palace-council-opening .throne {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 22%; height: 32%;
  background: linear-gradient(180deg, #c8553d 0%, #8a3a2a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 -4px 20px rgba(200,85,61,0.4), inset 0 4px 8px rgba(255,255,255,0.2);
  animation: pc-throne 4s ease-in-out infinite;
}
.scn-palace-council-opening .king {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 14%; height: 30%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: pc-king 8s ease-in-out infinite alternate;
}
.scn-palace-council-opening .courtier {
  position: absolute; bottom: 18%; width: 8%; height: 38%;
  background: linear-gradient(180deg, #3a3a4e 0%, #22223a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
}
.scn-palace-council-opening .courtier.c1 { left: 25%; animation: pc-courtier 7s ease-in-out infinite alternate; }
.scn-palace-council-opening .courtier.c2 { right: 25%; animation: pc-courtier 7s ease-in-out infinite alternate-reverse; animation-delay: 2s; }
.scn-palace-council-opening .window {
  position: absolute; top: 4%; left: 42%; width: 16%; height: 20%;
  background: radial-gradient(circle at 50% 30%, #fffef0 0%, #ffe899 40%, transparent 70%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 30px 15px rgba(255,232,153,0.5);
  animation: pc-window 3s ease-in-out infinite alternate;
}
@keyframes pc-floor { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes pc-throne { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px); } }
@keyframes pc-king { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes pc-courtier { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes pc-window { 0% { opacity: 0.7; box-shadow: 0 0 20px 10px rgba(255,232,153,0.4); } 50% { opacity: 1; box-shadow: 0 0 40px 25px rgba(255,232,153,0.7); } 100% { opacity: 0.8; box-shadow: 0 0 25px 15px rgba(255,232,153,0.5); } }

/* war-knife-metaphor */
.scn-war-knife-metaphor {
  background: linear-gradient(180deg, #e0d6c8 0%, #c4b5a0 40%, #a8947a 100%), radial-gradient(ellipse at 40% 20%, #ffe0b0 0%, transparent 60%);
}
.scn-war-knife-metaphor .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #d6e0e8 0%, #b8c6d4 100%);
  animation: wk-sky 15s ease-in-out infinite alternate;
}
.scn-war-knife-metaphor .trench {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-war-knife-metaphor .knife-blade {
  position: absolute; top: 20%; left: 28%; width: 8%; height: 50%;
  background: linear-gradient(180deg, #d6d6e0 0%, #b0b0c0 50%, #8a8a9a 100%);
  clip-path: polygon(40% 0%, 60% 0%, 55% 100%, 45% 100%);
  transform: rotate(15deg);
  box-shadow: 4px 0 10px rgba(0,0,0,0.3);
  animation: wk-blade 6s ease-in-out infinite;
}
.scn-war-knife-metaphor .knife-guard {
  position: absolute; top: 22%; left: 26%; width: 12%; height: 4%;
  background: linear-gradient(90deg, #5a4a3a 0%, #8a7a6a 50%, #5a4a3a 100%);
  border-radius: 10%;
  transform: rotate(15deg);
  animation: wk-guard 6s ease-in-out infinite;
}
.scn-war-knife-metaphor .knife-handle {
  position: absolute; top: 68%; left: 30%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(15deg);
  animation: wk-handle 6s ease-in-out infinite;
}
.scn-war-knife-metaphor .meteor {
  position: absolute; top: 10%; left: 70%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffd680 0%, #ff9933 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,153,51,0.6);
  animation: wk-meteor 8s ease-in-out infinite alternate;
}
.scn-war-knife-metaphor .hoof {
  position: absolute; bottom: 20%; right: 30%; width: 12%; height: 10%;
  background: radial-gradient(ellipse at 50% 70%, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-10deg);
  animation: wk-hoof 2s ease-in-out infinite alternate;
}
.scn-war-knife-metaphor .flower {
  position: absolute; bottom: 28%; left: 20%; width: 4%; height: 4%;
  background: radial-gradient(circle, #b87878 0%, #6a3a3a 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(184,120,120,0.5);
  animation: wk-flower 3s ease-in-out infinite alternate;
}
@keyframes wk-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes wk-blade { 0%,100% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(18deg) scaleY(1.03); } }
@keyframes wk-guard { 0%,100% { transform: rotate(15deg) scaleX(1); } 50% { transform: rotate(18deg) scaleX(1.05); } }
@keyframes wk-handle { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-3px); } }
@keyframes wk-meteor { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(-20px, 15px) scale(1.2); } 100% { transform: translate(10px, -10px) scale(0.9); } }
@keyframes wk-hoof { 0% { transform: rotate(-10deg) translateY(0); } 100% { transform: rotate(-7deg) translateY(-5px); } }
@keyframes wk-flower { 0% { opacity: 0.5; transform: scale(0.8); } 100% { opacity: 1; transform: scale(1.1); } }

/* crusade-purpose */
.scn-crusade-purpose {
  background: linear-gradient(135deg, #f0dcc0 0%, #d4b88a 40%, #b89a6a 100%), radial-gradient(ellipse at 30% 50%, #ffe0b0 0%, transparent 60%);
}
.scn-crusade-purpose .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.1) 100%);
  animation: cp-bg 10s ease-in-out infinite alternate;
}
.scn-crusade-purpose .knight {
  position: absolute; bottom: 20%; left: 38%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3e 50%, #1a1a2e 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: cp-knight 8s ease-in-out infinite alternate;
}
.scn-crusade-purpose .sword-blade {
  position: absolute; top: 18%; left: 52%; width: 4%; height: 40%;
  background: linear-gradient(180deg, #e0e0e8 0%, #b0b0c0 100%);
  clip-path: polygon(40% 0%, 60% 0%, 55% 100%, 45% 100%);
  transform: rotate(-20deg);
  transform-origin: bottom center;
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
  animation: cp-sword 5s ease-in-out infinite alternate;
}
.scn-crusade-purpose .sword-handle {
  position: absolute; bottom: 18%; left: 50%; width: 5%; height: 15%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30%;
  transform: rotate(-20deg);
  transform-origin: top center;
  animation: cp-sword-handle 5s ease-in-out infinite alternate;
}
.scn-crusade-purpose .shield {
  position: absolute; bottom: 30%; left: 30%; width: 16%; height: 22%;
  background: linear-gradient(180deg, #c8553d 0%, #8a3a2a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 0 0 3px #d4b88a, 0 4px 10px rgba(0,0,0,0.3);
  animation: cp-shield 9s ease-in-out infinite alternate;
}
.scn-crusade-purpose .cross {
  position: absolute; bottom: 35%; left: 44%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #d4b88a 0%, #b89a6a 100%);
  clip-path: polygon(35% 0%, 65% 0%, 65% 30%, 100% 30%, 100% 60%, 65% 60%, 65% 100%, 35% 100%, 35% 60%, 0% 60%, 0% 30%, 35% 30%);
  animation: cp-cross 6s ease-in-out infinite;
}
.scn-crusade-purpose .light-ray {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(135deg, rgba(255,220,140,0.6) 0%, rgba(255,220,140,0) 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  animation: cp-ray 7s ease-in-out infinite alternate;
}
@keyframes cp-bg { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.2; } }
@keyframes cp-knight { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cp-sword { 0% { transform: rotate(-20deg) scaleY(1); } 50% { transform: rotate(-15deg) scaleY(1.05); } 100% { transform: rotate(-22deg) scaleY(1); } }
@keyframes cp-sword-handle { 0% { transform: rotate(-20deg) scaleY(1); } 50% { transform: rotate(-15deg) scaleY(1.05); } 100% { transform: rotate(-22deg) scaleY(1); } }
@keyframes cp-shield { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-4px) scale(1.02); } 100% { transform: translateX(0) scale(1); } }
@keyframes cp-cross { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cp-ray { 0% { opacity: 0.3; transform: rotate(0deg); } 50% { opacity: 0.7; transform: rotate(2deg); } 100% { opacity: 0.4; transform: rotate(-1deg); } }

/* westmoreland-council */
.scn-westmoreland-council {
  background: linear-gradient(180deg, #e8d8c4 0%, #c4b09a 30%, #a6907a 100%), radial-gradient(ellipse at 50% 40%, #ffe0b0 0%, transparent 60%);
}
.scn-westmoreland-council .table {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 5% 5% / 40% 40% 5% 5%;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.5), inset 0 2px 4px rgba(255,255,255,0.1);
  animation: wc-table 15s ease-in-out infinite alternate;
}
.scn-westmoreland-council .figure {
  position: absolute; bottom: 20%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
}
.scn-westmoreland-council .figure.f1 { left: 22%; animation: wc-fig 5s ease-in-out infinite alternate; }
.scn-westmoreland-council .figure.f2 { right: 22%; animation: wc-fig 5s ease-in-out infinite alternate-reverse; animation-delay: 2s; }
.scn-westmoreland-council .candle {
  position: absolute; bottom: 28%; left: 48%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d4b88a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: wc-candle 4s ease-in-out infinite;
}
.scn-westmoreland-council .flame {
  position: absolute; bottom: 48%; left: 48.5%; width: 3%; height: 6%;
  background: radial-gradient(circle at 50% 60%, #ffd680 0%, #ff9933 50%, transparent 80%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  box-shadow: 0 0 20px 10px rgba(255,153,51,0.6);
  animation: wc-flame 1.5s ease-in-out infinite alternate;
}
.scn-westmoreland-council .scroll {
  position: absolute; bottom: 22%; left: 35%; width: 12%; height: 4%;
  background: linear-gradient(180deg, #f5efe0 0%, #e0d0b0 100%);
  border-radius: 20%;
  transform: rotate(10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: wc-scroll 10s ease-in-out infinite alternate;
}
.scn-westmoreland-council .map {
  position: absolute; bottom: 18%; left: 55%; width: 15%; height: 8%;
  background: linear-gradient(135deg, #d4c8b0 0%, #c0b09a 50%, #d4c8b0 100%);
  border-radius: 4%;
  transform: rotate(-8deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  animation: wc-map 12s ease-in-out infinite alternate;
}
@keyframes wc-table { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes wc-fig { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-5px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes wc-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes wc-flame { 0% { opacity: 0.6; transform: scale(0.8) rotate(-5deg); } 50% { opacity: 1; transform: scale(1.1) rotate(0deg); } 100% { opacity: 0.8; transform: scale(0.9) rotate(5deg); } }
@keyframes wc-scroll { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(12deg) translateX(5px); } 100% { transform: rotate(8deg) translateX(-3px); } }
@keyframes wc-map { 0% { transform: rotate(-8deg) scale(1); } 50% { transform: rotate(-6deg) scale(1.02); } 100% { transform: rotate(-10deg) scale(0.98); } }

.scn-rebel-camp-shrewsbury {
  background: 
    linear-gradient(180deg, #3b3b4f 0%, #5a5a6e 100%),
    radial-gradient(ellipse at 50% 80%, #4a4a5e 0%, transparent 70%);
}
.scn-rebel-camp-shrewsbury .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4c4c60 0%, transparent 100%); animation: rcs-sky 12s ease-in-out infinite alternate; }
.scn-rebel-camp-shrewsbury .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #404035 0%, #2a2a20 100%); border-radius: 30% 70% 0 0 / 50% 100% 0 0; }
.scn-rebel-camp-shrewsbury .tent { position:absolute; bottom:28%; left:35%; width:120px; height:80px; background: #5c5c4e; clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%); border-radius: 5px 5px 0 0; animation: rcs-tent 6s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury .tent-flag { position:absolute; bottom:60%; left:50%; transform:translateX(-50%); width: 4px; height: 30px; background: #4a4a3a; }
.scn-rebel-camp-shrewsbury .tent-flag::after { content:''; position:absolute; top:0; left:4px; width:24px; height:14px; background: #6e5634; clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 50%); animation: rcs-flag 2s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury .figure-left { position:absolute; bottom:25%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #1f1f2e 0%, #0e0e18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rcs-fig-l 4s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury .figure-right { position:absolute; bottom:25%; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #2c2c3a 0%, #1a1a26 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rcs-fig-r 4s ease-in-out infinite 1s; }
.scn-rebel-camp-shrewsbury .campfire { position:absolute; bottom:20%; left:45%; width:10px; height:10px; background: radial-gradient(circle, #b8733e 0%, #7a4a1e 70%); border-radius:50%; box-shadow: 0 0 16px 4px #7a4a1e; animation: rcs-fire 2s ease-in-out infinite alternate; }
@keyframes rcs-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rcs-tent { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes rcs-flag { 0% { transform: rotate(0deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(0deg) } }
@keyframes rcs-fig-l { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(-3deg) } 75% { transform: translateX(-4px) rotate(3deg) } }
@keyframes rcs-fig-r { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-4px) rotate(3deg) } 75% { transform: translateX(4px) rotate(-3deg) } }
@keyframes rcs-fire { 0% { opacity:.6; transform: scale(0.9) } 100% { opacity:1; transform: scale(1.1) } }

.scn-vernon-brings-news {
  background: 
    linear-gradient(180deg, #3a3a4e 0%, #5e5e70 50%, #48485a 100%),
    radial-gradient(ellipse at 60% 30%, #6a6a7c 0%, transparent 70%);
}
.scn-vernon-brings-news .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4f4f64 0%, transparent 100%); animation: vbn-sky 10s ease-in-out infinite alternate; }
.scn-vernon-brings-news .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #43433a 0%, #2d2d26 100%); border-radius: 20% 40% 0 0 / 60% 80% 0 0; }
.scn-vernon-brings-news .horse-body { position:absolute; bottom:35%; left:40%; width:60px; height:40px; background: linear-gradient(to right, #3a3a2e 0%, #4c4c3e 100%); border-radius: 60% 40% 40% 60% / 80% 60% 60% 80%; transform-origin: bottom center; animation: vbn-horse-body 3s ease-in-out infinite; }
.scn-vernon-brings-news .horse-legs { position:absolute; bottom:25%; left:42%; width:6px; height:30px; background: #2e2e24; border-radius: 2px; box-shadow: 18px 0 0 #2e2e24, 30px 0 0 #2e2e24, 48px 0 0 #2e2e24; animation: vbn-horse-legs 1.6s ease-in-out infinite; }
.scn-vernon-brings-news .rider { position:absolute; bottom:52%; left:48%; width:16px; height:20px; background: #1e1e2c; border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%; transform: translateX(-50%); animation: vbn-rider 3s ease-in-out infinite; }
.scn-vernon-brings-news .messenger { position:absolute; bottom:30%; left:65%; width:18px; height:36px; background: linear-gradient(180deg, #2c2c3a 0%, #141420 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vbn-messenger 4s ease-in-out infinite; }
.scn-vernon-brings-news .banner { position:absolute; bottom:55%; left:55%; width:20px; height:28px; background: #5e4a34; clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 80%); transform-origin: bottom left; animation: vbn-banner 2s ease-in-out infinite; }
@keyframes vbn-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes vbn-horse-body { 0%,100% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(0.98) } }
@keyframes vbn-horse-legs { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes vbn-rider { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-1px) rotate(2deg) } }
@keyframes vbn-messenger { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(-2deg) } 75% { transform: translateX(-3px) rotate(2deg) } }
@keyframes vbn-banner { 0% { transform: rotate(0deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(0deg) } }

.scn-road-coventry {
  background: 
    linear-gradient(180deg, #5a5a66 0%, #727282 40%, #8a8a9a 100%),
    radial-gradient(circle at 20% 40%, #9a9aaa 0%, transparent 60%);
}
.scn-road-coventry .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6e6e7e 0%, transparent 100%); animation: rdc-sky 8s ease-in-out infinite alternate; }
.scn-road-coventry .road { position:absolute; bottom:10%; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a4a40 0%, #3a3a30 100%); border-radius: 10% 10% 0 0; }
.scn-road-coventry .bottle-body { position:absolute; bottom:35%; left:30%; width:40px; height:60px; background: linear-gradient(180deg, #5a7a5a 0%, #3a5a3a 100%); border-radius: 10% 10% 30% 30%; transform: rotate(-15deg); animation: rdc-bottle 1.8s ease-in-out infinite; }
.scn-road-coventry .bottle-neck { position:absolute; bottom:65%; left:36%; width:12px; height:20px; background: #4a6a4a; border-radius: 20% 20% 0 0; transform: rotate(-15deg); animation: rdc-bottle 1.8s ease-in-out infinite; }
.scn-road-coventry .cork { position:absolute; bottom:75%; left:45%; width:14px; height:10px; background: #c4a060; border-radius: 30%; animation: rdc-cork 1.6s ease-out infinite; }
.scn-road-coventry .figure-bardolph { position:absolute; bottom:20%; left:15%; width:24px; height:44px; background: linear-gradient(180deg, #2e2e3c 0%, #1a1a26 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rdc-figure 2s ease-in-out infinite; }
.scn-road-coventry .cloud { position:absolute; top:10%; right:10%; width:80px; height:20px; background: rgba(200,200,210,0.4); filter: blur(8px); border-radius: 50%; animation: rdc-cloud 30s linear infinite; }
@keyframes rdc-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rdc-bottle { 0%,100% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-4px) } }
@keyframes rdc-cork { 0% { transform: translateY(0) rotate(0deg) } 100% { transform: translateY(-30px) rotate(45deg); opacity:0; } }
@keyframes rdc-figure { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(10px) rotate(5deg) } }
@keyframes rdc-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

.scn-rebel-camp-shrewsbury-again {
  background: 
    linear-gradient(180deg, #1a1a22 0%, #2c2c38 60%, #3e3e4a 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a36 0%, transparent 80%);
}
.scn-rebel-camp-shrewsbury-again .tent-roof { position:absolute; top:2%; left:20%; width:60%; height:30%; background: #4a4a3e; clip-path: polygon(50% 0%, 0% 100%, 100% 100%); }
.scn-rebel-camp-shrewsbury-again .tent-wall { position:absolute; bottom:25%; left:20%; width:60%; height:45%; background: linear-gradient(180deg, #3a3a2e 0%, #2a2a20 100%); border-radius: 0 0 10% 10%; }
.scn-rebel-camp-shrewsbury-again .table { position:absolute; bottom:30%; left:35%; width:30%; height:10%; background: #5a4a3a; border-radius: 5%; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
.scn-rebel-camp-shrewsbury-again .figure-left { position:absolute; bottom:28%; left:25%; width:22px; height:44px; background: linear-gradient(180deg, #1f1f2e 0%, #0e0e18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rc2-fig-l 3s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury-again .figure-right { position:absolute; bottom:28%; left:60%; width:22px; height:44px; background: linear-gradient(180deg, #2c2c3a 0%, #1a1a26 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rc2-fig-r 3.5s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury-again .candle { position:absolute; bottom:40%; left:48%; width:6px; height:20px; background: #e8d0a0; border-radius: 10%; box-shadow: 0 0 8px #f0d8a0; }
.scn-rebel-camp-shrewsbury-again .candle-glow { position:absolute; bottom:42%; left:48%; width:30px; height:30px; background: radial-gradient(circle, rgba(240,200,120,0.5) 0%, transparent 70%); border-radius:50%; animation: rc2-glow 2s ease-in-out infinite alternate; }
.scn-rebel-camp-shrewsbury-again .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a2a22 0%, #1a1a14 100%); border-radius: 20% 20% 0 0; }
@keyframes rc2-fig-l { 0%,100% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-3px) rotate(-4deg) } 70% { transform: translateX(3px) rotate(4deg) } }
@keyframes rc2-fig-r { 0%,100% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(3px) rotate(4deg) } 70% { transform: translateX(-3px) rotate(-4deg) } }
@keyframes rc2-glow { 0% { opacity:.4; transform: scale(0.9) } 100% { opacity:.8; transform: scale(1.1) } }

.scn-madcap-consent {
  background: 
    linear-gradient(180deg, #4a3a2a 0%, #2a1a12 50%, #1a0e08 100%),
    radial-gradient(ellipse at 30% 60%, #c88050 0%, transparent 80%);
}
.scn-madcap-consent .wall-back { position:absolute; inset:0 0 45% 0; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); animation: mc-wall 20s ease-in-out infinite alternate; }
.scn-madcap-consent .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 20% 20% 0 0; }
.scn-madcap-consent .table { position:absolute; bottom:22%; left:50%; width:140px; height:40px; transform:translateX(-50%); background: linear-gradient(90deg, #6a4a2a, #4a2a12, #6a4a2a); border-radius: 10% 10% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,.6); animation: mc-table 6s ease-in-out infinite; }
.scn-madcap-consent .candle { position:absolute; bottom:38%; left:50%; width:8px; height:24px; transform:translateX(-50%); background: linear-gradient(180deg, #ffe080 0%, #c88040 60%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 40px 20px #f0a040, 0 0 80px 40px rgba(240,160,64,.3); animation: mc-candle 4s ease-in-out infinite alternate; }
.scn-madcap-consent .falsstaff { position:absolute; bottom:18%; left:30%; width:40px; height:60px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mc-falsstaff 3s ease-in-out infinite; }
.scn-madcap-consent .prince { position:absolute; bottom:20%; left:58%; width:28px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mc-prince 3.5s ease-in-out infinite; }
.scn-madcap-consent .tankard { position:absolute; bottom:28%; left:48%; width:16px; height:20px; background: linear-gradient(180deg, #c88050 0%, #a06030 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: mc-tankard 5s ease-in-out infinite; }
.scn-madcap-consent .window { position:absolute; top:12%; right:15%; width:50px; height:60px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border: 4px solid #3a2a1a; border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 16px rgba(0,0,0,.6); }
.scn-madcap-consent .moonlight { position:absolute; top:8%; right:10%; width:30px; height:30px; background: radial-gradient(circle, #e8e8f0 0%, #a0a0c0 70%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(200,200,220,.3); animation: mc-moon 15s ease-in-out infinite alternate; }

@keyframes mc-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes mc-table { 0%,100% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(1deg) } }
@keyframes mc-candle { 0% { transform: translateX(-50%) scaleY(1); opacity:.9 } 50% { transform: translateX(-50%) scaleY(1.1); opacity:1 } 100% { transform: translateX(-50%) scaleY(.95); opacity:.8 } }
@keyframes mc-falsstaff { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mc-prince { 0% { transform: translateX(0) rotate(1deg) } 33% { transform: translateX(-2px) rotate(-1deg) } 66% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mc-tankard { 0%,100% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-2px) rotate(3deg) } }
@keyframes mc-moon { 0% { opacity:.7; transform: scale(.9) } 50% { opacity:1; transform: scale(1) } 100% { opacity:.6; transform: scale(.95) } }

.scn-farewell-latter-spring {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 50%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 70%, #c08050 0%, transparent 70%);
}
.scn-farewell-latter-spring .bg-floor { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-farewell-latter-spring .table-round { position:absolute; bottom:15%; left:50%; width:160px; height:80px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, #6a4a2a 0%, #3a2a1a 100%); border-radius: 50%; box-shadow: 0 12px 24px rgba(0,0,0,.7); animation: fl-table 8s ease-in-out infinite; }
.scn-farewell-latter-spring .lantern { position:absolute; bottom:35%; left:50%; width:12px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #f0c080 0%, #c08040 60%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 60px 30px #e0a060, 0 0 120px 60px rgba(224,160,96,.4); animation: fl-lantern 4s ease-in-out infinite alternate; }
.scn-farewell-latter-spring .figure-bardolph { position:absolute; bottom:18%; left:28%; width:30px; height:50px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fl-fig1 5s ease-in-out infinite; }
.scn-farewell-latter-spring .figure-peto { position:absolute; bottom:18%; left:42%; width:28px; height:48px; background: linear-gradient(180deg, #4a3a2a 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fl-fig2 4.5s ease-in-out infinite; }
.scn-farewell-latter-spring .figure-gadshill { position:absolute; bottom:18%; left:58%; width:32px; height:52px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fl-fig3 5.2s ease-in-out infinite; }
.scn-farewell-latter-spring .map { position:absolute; bottom:22%; left:50%; width:60px; height:40px; transform:translateX(-50%) rotate(-5deg); background: linear-gradient(135deg, #8a6a4a 0%, #6a4a2a 50%, #4a2a12 100%); border-radius: 4% 8% 12% 4%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: fl-map 20s ease-in-out infinite; }
.scn-farewell-latter-spring .coins { position:absolute; bottom:20%; left:44%; width:40px; height:10px; background: repeating-linear-gradient(90deg, #d0b080 0px, #d0b080 8px, #b09060 8px, #b09060 16px); border-radius: 20%; opacity:.7; animation: fl-coins 3s ease-in-out infinite alternate; }
.scn-farewell-latter-spring .shadow { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); }

@keyframes fl-table { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } }
@keyframes fl-lantern { 0% { transform: translateX(-50%) scaleY(1); opacity:.8 } 50% { transform: translateX(-50%) scaleY(1.15); opacity:1 } 100% { transform: translateX(-50%) scaleY(.9); opacity:.7 } }
@keyframes fl-fig1 { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(5px) rotate(2deg) } 60% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes fl-fig2 { 0% { transform: translateX(0) rotate(1deg) } 40% { transform: translateX(-4px) rotate(-2deg) } 80% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes fl-fig3 { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(6px) rotate(3deg) } 50% { transform: translateX(-4px) rotate(-1deg) } 75% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes fl-map { 0% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(-8deg) } 100% { transform: translateX(-50%) rotate(-5deg) } }
@keyframes fl-coins { 0% { opacity:.5 } 100% { opacity:.8 } }

.scn-planning-the-ambush {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 30%, #2a2a4a 60%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 20%, #3a3a5a 0%, transparent 70%);
}
.scn-planning-the-ambush .sky-dark { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%); }
.scn-planning-the-ambush .moon { position:absolute; top:10%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #c0c0e0 0%, #8080a0 70%); border-radius: 50%; box-shadow: 0 0 80px 40px rgba(128,128,160,.4); animation: pa-moon 20s ease-in-out infinite alternate; }
.scn-planning-the-ambush .tree-trunk-left { position:absolute; bottom:20%; left:10%; width:20px; height:100px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 16px rgba(0,0,0,.6); }
.scn-planning-the-ambush .tree-trunk-right { position:absolute; bottom:20%; right:8%; width:18px; height:120px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 16px rgba(0,0,0,.6); }
.scn-planning-the-ambush .bushes { position:absolute; bottom:18%; left:0; right:0; height:60px; background: radial-gradient(ellipse at 20% 100%, #1a2a1a 0%, transparent 70%), radial-gradient(ellipse at 80% 100%, #1a2a1a 0%, transparent 70%); filter: blur(2px); animation: pa-bushes 6s ease-in-out infinite alternate; }
.scn-planning-the-ambush .figure-ambush-1 { position:absolute; bottom:22%; left:35%; width:22px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pa-fig1 4s ease-in-out infinite; }
.scn-planning-the-ambush .figure-ambush-2 { position:absolute; bottom:20%; left:48%; width:24px; height:48px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pa-fig2 4.5s ease-in-out infinite; }
.scn-planning-the-ambush .figure-ambush-3 { position:absolute; bottom:24%; left:60%; width:20px; height:42px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pa-fig3 5s ease-in-out infinite; }
.scn-planning-the-ambush .lantern-dark { position:absolute; bottom:30%; left:50%; width:8px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #c08040 0%, #804020 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 15px #a06030, 0 0 60px 30px rgba(160,96,48,.3); animation: pa-lantern 3s ease-in-out infinite alternate; }

@keyframes pa-moon { 0% { opacity:.7; transform: scale(.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.8; transform: scale(1) } }
@keyframes pa-bushes { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes pa-fig1 { 0% { transform: translateX(0) rotate(-3deg) } 33% { transform: translateX(4px) rotate(2deg) } 66% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pa-fig2 { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-5px) rotate(2deg) } 50% { transform: translateX(3px) rotate(-2deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pa-fig3 { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(4px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pa-lantern { 0% { transform: translateX(-50%) scaleY(1); opacity:.6 } 50% { transform: translateX(-50%) scaleY(1.2); opacity:1 } 100% { transform: translateX(-50%) scaleY(.9); opacity:.5 } }

.scn-buckram-disguises {
  background: 
    linear-gradient(180deg, #0a0a12 0%, #1a1a2a 40%, #2a2a3a 70%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 60%, #2a3a2a 0%, transparent 80%);
}
.scn-buckram-disguises .forest-bg { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a12 0%, #1a1a2a 50%, #0a0a12 100%); }
.scn-buckram-disguises .horse-1 { position:absolute; bottom:20%; left:20%; width:40px; height:50px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: bd-horse1 7s ease-in-out infinite; }
.scn-buckram-disguises .horse-2 { position:absolute; bottom:20%; left:65%; width:36px; height:45px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: bd-horse2 8s ease-in-out infinite; }
.scn-buckram-disguises .figure-buckram-1 { position:absolute; bottom:22%; left:35%; width:24px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bd-fig1 5s ease-in-out infinite; }
.scn-buckram-disguises .figure-buckram-2 { position:absolute; bottom:22%; left:52%; width:22px; height:48px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bd-fig2 5.5s ease-in-out infinite; }
.scn-buckram-disguises .buckram-cape { position:absolute; bottom:24%; left:40%; width:30px; height:20px; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom center; animation: bd-cape 4s ease-in-out infinite alternate; }
.scn-buckram-disguises .vizard { position:absolute; bottom:38%; left:48%; width:12px; height:6px; background: linear-gradient(90deg, #2a2a1a, #1a1a0e); border-radius: 30% 30% 10% 10%; transform: rotate(15deg); animation: bd-vizard 6s ease-in-out infinite; }
.scn-buckram-disguises .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #0a0a12 0%, #1a1a2a 100%); border-radius: 30% 30% 0 0 / 80% 80% 0 0; }
.scn-buckram-disguises .fog { position:absolute; bottom:10%; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(30,30,50,.2) 50%, transparent 100%); filter: blur(6px); animation: bd-fog 25s linear infinite; }

@keyframes bd-horse1 { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes bd-horse2 { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes bd-fig1 { 0% { transform: translateX(0) rotate(1deg) } 33% { transform: translateX(4px) rotate(-2deg) } 66% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes bd-fig2 { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(-5px) rotate(2deg) } 50% { transform: translateX(3px) rotate(-2deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes bd-cape { 0% { transform: scaleX(1) rotate(0) } 50% { transform: scaleX(1.1) rotate(5deg) } 100% { transform: scaleX(1) rotate(0) } }
@keyframes bd-vizard { 0% { transform: rotate(15deg) translateX(0) } 50% { transform: rotate(20deg) translateX(2px) } 100% { transform: rotate(15deg) translateX(0) } }
@keyframes bd-fog { 0% { transform: translateX(0) } 50% { transform: translateX(30px) } 100% { transform: translateX(0) } }

/* hal-vows-revenge - warm bright interior, vengeful vow */
.scn-hal-vows-revenge {
  background: linear-gradient(180deg, #d9c9a3 0%, #c8b48b 40%, #b8a87b 100%), radial-gradient(ellipse at 70% 30%, rgba(255,230,180,0.4) 0%, transparent 50%);
}
.scn-hal-vows-revenge .hr-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d9c9a3 0%, #b8a87b 100%);
  animation: hr-wall 20s ease-in-out infinite alternate;
}
.scn-hal-vows-revenge .hr-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6b5b3e 0%, #4d3f2a 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.3);
}
.scn-hal-vows-revenge .hr-window {
  position: absolute; top: 12%; left: 15%; width: 40%; height: 50%;
  background: linear-gradient(135deg, rgba(255,230,180,0.7) 0%, rgba(255,200,130,0.2) 100%);
  border-radius: 4% 4% 10% 10% / 8% 8% 12% 12%;
  box-shadow: inset 0 0 40px rgba(255,220,160,0.6);
  animation: hr-window 6s ease-in-out infinite alternate;
}
.scn-hal-vows-revenge .hr-figure {
  position: absolute; bottom: 28%; left: 40%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hr-figure 8s ease-in-out infinite;
}
.scn-hal-vows-revenge .hr-sword {
  position: absolute; bottom: 50%; left: 44%; width: 2%; height: 30%;
  background: linear-gradient(180deg, #aaaaaa 0%, #666666 100%);
  border-radius: 10% 10% 20% 20% / 5% 5% 10% 10%;
  transform-origin: bottom center;
  animation: hr-sword 4s ease-in-out infinite;
}
.scn-hal-vows-revenge .hr-cloth {
  position: absolute; bottom: 40%; left: 55%; width: 15%; height: 25%;
  background: linear-gradient(135deg, #8b3a3a 0%, #5e1a1d 100%);
  border-radius: 20% 60% 40% 20% / 30% 50% 30% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: hr-cloth 7s ease-in-out infinite alternate;
}
.scn-hal-vows-revenge .hr-light {
  position: absolute; top: 30%; left: 70%; width: 6%; height: 6%;
  background: radial-gradient(circle, #ffdd66 0%, #ffaa33 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ffcc55, 0 0 60px 20px rgba(255,204,85,0.4);
  animation: hr-light 3s ease-in-out infinite alternate;
}
@keyframes hr-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes hr-window { 0% { opacity:0.7; box-shadow: inset 0 0 20px rgba(255,220,160,0.4); } 50% { opacity:0.9; box-shadow: inset 0 0 60px rgba(255,230,180,0.8); } 100% { opacity:0.75; box-shadow: inset 0 0 30px rgba(255,220,160,0.5); } }
@keyframes hr-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hr-sword { 0% { transform: rotate(-3deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-2deg); } }
@keyframes hr-cloth { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(0.95) scaleY(1.05) translateX(3px); } 100% { transform: scaleX(1) scaleY(1); } }
@keyframes hr-light { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.8; transform: scale(0.9); } }

/* blunt-arrives-speed - bright interior, tense arrival */
.scn-blunt-arrives-speed {
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a880 30%, #9c8a6a 100%), radial-gradient(ellipse at 80% 20%, rgba(200,180,140,0.5) 0%, transparent 60%);
}
.scn-blunt-arrives-speed .bas-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a880 100%);
  animation: bas-wall 12s ease-in-out infinite alternate;
}
.scn-blunt-arrives-speed .bas-door {
  position: absolute; top: 5%; left: 20%; width: 25%; height: 80%;
  background: linear-gradient(180deg, #6b5a3e 0%, #3d2f1e 100%);
  border-radius: 4% 4% 0 0 / 6% 6% 0 0;
  box-shadow: inset -6px 0 10px rgba(0,0,0,0.5);
  transform-origin: left center;
  animation: bas-door 2s ease-in-out infinite;
}
.scn-blunt-arrives-speed .bas-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7a6b52 0%, #5a4a34 100%);
  perspective: 400px;
}
.scn-blunt-arrives-speed .bas-figure {
  position: absolute; bottom: 25%; left: 50%; width: 10%; height: 50%;
  background: linear-gradient(180deg, #2a1f1a 0%, #14100a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: bas-figure 3s ease-in-out infinite;
}
.scn-blunt-arrives-speed .bas-scroll {
  position: absolute; bottom: 35%; left: 54%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b49a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  transform-origin: bottom center;
  animation: bas-scroll 1.5s ease-in-out infinite alternate;
}
.scn-blunt-arrives-speed .bas-candle {
  position: absolute; bottom: 48%; left: 10%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #e8d88a 0%, #d4b050 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px #ffdd88;
  animation: bas-candle 1.6s ease-in-out infinite alternate;
}
.scn-blunt-arrives-speed .bas-table {
  position: absolute; bottom: 38%; left: 5%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 10% 10% 0 0;
}
@keyframes bas-wall { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes bas-door { 0% { transform: rotateY(0deg) scaleX(1); } 50% { transform: rotateY(-15deg) scaleX(0.9); } 100% { transform: rotateY(0deg) scaleX(1); } }
@keyframes bas-figure { 0% { transform: translateX(-5px) translateY(0) rotate(-2deg); } 25% { transform: translateX(0) translateY(-2px) rotate(1deg); } 50% { transform: translateX(5px) translateY(0) rotate(2deg); } 75% { transform: translateX(0) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(-5px) translateY(0) rotate(-2deg); } }
@keyframes bas-scroll { 0% { transform: translateY(0) rotate(-5deg); } 100% { transform: translateY(-4px) rotate(8deg); } }
@keyframes bas-candle { 0% { opacity:0.6; transform: scaleY(1); } 100% { opacity:1; transform: scaleY(1.1) scaleX(0.9); } }

/* boars-head-tavern - firelit tavern, funny mood */
.scn-boars-head-tavern {
  background: linear-gradient(180deg, #4a3828 0%, #3a2a1a 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 70%, #8a5a2a 0%, transparent 60%);
}
.scn-boars-head-tavern .bht-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3828 0%, #3a2a1a 100%);
  animation: bht-wall 25s ease-in-out infinite alternate;
}
.scn-boars-head-tavern .bht-fire {
  position: absolute; bottom: 25%; left: 10%; width: 15%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, #ff9933 0%, #cc4400 40%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  filter: blur(2px);
  animation: bht-fire 2s ease-in-out infinite alternate;
}
.scn-boars-head-tavern .bht-table {
  position: absolute; bottom: 18%; left: 30%; width: 50%; height: 15%;
  background: linear-gradient(180deg, #6b4a2a 0%, #4a3020 100%);
  border-radius: 10% 10% 0 0;
}
.scn-boars-head-tavern .bht-mug {
  position: absolute; bottom: 30%; left: 45%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #8b5e3c 0%, #5a3a1e 100%);
  border-radius: 40% 40% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: bht-mug 6s ease-in-out infinite;
}
.scn-boars-head-tavern .bht-bardolph {
  position: absolute; bottom: 20%; left: 15%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bht-bardolph 4s ease-in-out infinite;
}
.scn-boars-head-tavern .bht-chair {
  position: absolute; bottom: 16%; left: 60%; width: 18%; height: 25%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
}
.scn-boars-head-tavern .bht-lantern {
  position: absolute; top: 10%; left: 50%; width: 5%; height: 8%;
  background: radial-gradient(circle, #ffdd44 0%, #ff9933 60%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 20px #ffaa55;
  animation: bht-lantern 3s ease-in-out infinite alternate;
}
@keyframes bht-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes bht-fire { 0% { transform: scaleY(1) scaleX(1); opacity:0.8; } 50% { transform: scaleY(1.15) scaleX(0.95); opacity:1; } 100% { transform: scaleY(1) scaleX(1); opacity:0.85; } }
@keyframes bht-mug { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(4deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes bht-bardolph { 0% { transform: scaleY(1) scaleX(1) translateY(0); } 30% { transform: scaleY(1.05) scaleX(0.95) translateY(-2px); } 60% { transform: scaleY(0.95) scaleX(1.05) translateY(3px); } 100% { transform: scaleY(1) scaleX(1) translateY(0); } }
@keyframes bht-lantern { 0% { opacity:0.6; box-shadow: 0 0 30px 15px #ffaa55; } 50% { opacity:1; box-shadow: 0 0 50px 25px #ffcc66; } 100% { opacity:0.7; box-shadow: 0 0 35px 18px #ff9933; } }

/* hostess-pickpocket - firelit tense confrontation */
.scn-hostess-pickpocket {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 60%, #6a3a1a 0%, transparent 70%);
}
.scn-hostess-pickpocket .hp-wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  animation: hp-wall 18s ease-in-out infinite alternate;
}
.scn-hostess-pickpocket .hp-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
}
.scn-hostess-pickpocket .hp-fire {
  position: absolute; bottom: 25%; left: 5%; width: 20%; height: 35%;
  background: radial-gradient(ellipse at 50% 0%, #ff8844 0%, #cc3300 40%, transparent 100%);
  filter: blur(3px);
  animation: hp-fire 1.5s ease-in-out infinite alternate;
}
.scn-hostess-pickpocket .hp-hostess {
  position: absolute; bottom: 30%; left: 30%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hp-hostess 2s ease-in-out infinite;
}
.scn-hostess-pickpocket .hp-falstaff {
  position: absolute; bottom: 25%; left: 55%; width: 25%; height: 50%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hp-falstaff 3s ease-in-out infinite;
}
.scn-hostess-pickpocket .hp-table {
  position: absolute; bottom: 22%; left: 40%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-hostess-pickpocket .hp-pouch {
  position: absolute; bottom: 18%; left: 45%; width: 6%; height: 6%;
  background: radial-gradient(circle, #8b7040 0%, #4a3020 100%);
  border-radius: 40% 40% 30% 30%;
  animation: hp-pouch 1.5s ease-in-out infinite alternate;
}
@keyframes hp-wall { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes hp-fire { 0% { opacity:0.6; transform: scaleY(1) scaleX(1); } 50% { opacity:1; transform: scaleY(1.1) scaleX(0.95); } 100% { opacity:0.7; transform: scaleY(1) scaleX(1); } }
@keyframes hp-hostess { 0% { transform: translateY(0) rotate(-3deg); } 30% { transform: translateY(-2px) rotate(5deg); } 60% { transform: translateY(0) rotate(-4deg); } 100% { transform: translateY(-1px) rotate(3deg); } }
@keyframes hp-falstaff { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg) scaleY(1.02); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hp-pouch { 0% { opacity:0.7; transform: translateX(0) translateY(0); } 100% { opacity:1; transform: translateX(2px) translateY(-1px); } }

/* pluck-honour-moon (moonlit, tense) */
.scn-pluck-honour-moon { background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 40%, #2a2a5e 100%), radial-gradient(ellipse at 50% 20%, #3a3a7e 0%, transparent 70%); }
.scn-pluck-honour-moon .sky { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a2e, #1a1a4e 80%); }
.scn-pluck-honour-moon .moon { position:absolute; top:15%; left:60%; width:60px; height:60px; background: radial-gradient(circle, #d0d0e0 0%, #a0a0c0 60%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(160,160,192,0.5); animation: phm-moon 12s ease-in-out infinite alternate; }
.scn-pluck-honour-moon .hill { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius: 60% 40% 0 0; }
.scn-pluck-honour-moon .figure { position:absolute; bottom:28%; left:45%; width:20px; height:50px; background: #0a0a1e; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: phm-figure 4s ease-in-out infinite; }
.scn-pluck-honour-moon .sea { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a2a3e 0%, #0a1a2e 100%); animation: phm-sea 6s ease-in-out infinite alternate; }
.scn-pluck-honour-moon .cloud-a { position:absolute; top:10%; left:10%; width:120px; height:20px; background: rgba(200,200,220,0.1); border-radius:50%; filter: blur(8px); animation: phm-cloud 25s linear infinite; }
.scn-pluck-honour-moon .cloud-b { position:absolute; top:20%; right:5%; width:80px; height:15px; background: rgba(200,200,220,0.08); border-radius:50%; filter: blur(6px); animation: phm-cloud 35s linear infinite reverse; }
.scn-pluck-honour-moon .stars { position:absolute; top:0; left:0; width:100%; height:50%; background: radial-gradient(1px 1px at 10% 20%, #fff 0%, transparent 100%) repeat; animation: phm-twinkle 3s ease-in-out infinite alternate; }
@keyframes phm-moon { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 40px 20px rgba(160,160,192,0.5); } 50% { transform: translateY(-5px) scale(1.02); box-shadow: 0 0 50px 25px rgba(160,160,192,0.6); } 100% { transform: translateY(3px) scale(0.98); box-shadow: 0 0 35px 18px rgba(160,160,192,0.4); } }
@keyframes phm-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(2px) rotate(-1deg); } }
@keyframes phm-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes phm-cloud { 0% { transform: translateX(-30px); } 50% { transform: translateX(0px); } 100% { transform: translateX(30px); } }
@keyframes phm-twinkle { 0% { opacity: 0.3; } 50% { opacity: 1; } 100% { opacity: 0.5; } }

/* scottish-prisoners-kept (bright-interior, tense) */
.scn-scottish-prisoners-kept { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%), radial-gradient(ellipse at 50% 50%, #6a5a3a 0%, transparent 70%); }
.scn-scottish-prisoners-kept .wall { position:absolute; inset:0; background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #4a3a2a 100%); }
.scn-scottish-prisoners-kept .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-scottish-prisoners-kept .bars { position:absolute; top:10%; left:10%; width:80%; height:70%; background: repeating-linear-gradient(0deg, #2a1a0a 0px, #2a1a0a 4px, transparent 4px, transparent 30px); }
.scn-scottish-prisoners-kept .king { position:absolute; bottom:22%; left:40%; width:40px; height:70px; background: linear-gradient(180deg, #5e1a1d 0%, #3a1a1a 100%); border-radius: 40% 40% 20% 20%; animation: spk-king 6s ease-in-out infinite; }
.scn-scottish-prisoners-kept .prisoner-1 { position:absolute; bottom:20%; left:15%; width:25px; height:50px; background: #1a1a2e; border-radius: 40% 40% 20% 20%; transform-origin: bottom; animation: spk-bow 4s ease-in-out infinite; }
.scn-scottish-prisoners-kept .prisoner-2 { position:absolute; bottom:20%; left:65%; width:25px; height:50px; background: #1a1a2e; border-radius: 40% 40% 20% 20%; transform-origin: bottom; animation: spk-bow 5s ease-in-out infinite 0.5s; }
.scn-scottish-prisoners-kept .candle { position:absolute; bottom:30%; left:75%; width:8px; height:30px; background: linear-gradient(180deg, #d0a060 0%, #a08040 100%); border-radius: 20%; animation: spk-candle 2s ease-in-out infinite; }
.scn-scottish-prisoners-kept .light { position:absolute; bottom:30%; left:75%; width:40px; height:40px; background: radial-gradient(circle, rgba(200,160,80,0.4) 0%, transparent 70%); animation: spk-light 2s ease-in-out infinite; }
@keyframes spk-king { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes spk-bow { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } }
@keyframes spk-candle { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.1); } 100% { opacity: 0.7; transform: scaleY(0.9); } }
@keyframes spk-light { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }

/* item-starling-mortimer (bright-interior, tense) */
.scn-item-starling-mortimer { background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%), radial-gradient(ellipse at 50% 30%, #6a5a3a 0%, transparent 60%); }
.scn-item-starling-mortimer .wall { position:absolute; inset:0; background: linear-gradient(90deg, #5a4a3a 0%, #6a5a4a 100%); }
.scn-item-starling-mortimer .cage { position:absolute; top:30%; left:50%; width:80px; height:100px; margin-left:-40px; background: linear-gradient(180deg, transparent 0%, #2a1a0a 10%, transparent 10%, #2a1a0a 20%) repeat-y; border: 2px solid #2a1a0a; animation: ism-sway 4s ease-in-out infinite; }
.scn-item-starling-mortimer .starling { position:absolute; top:40%; left:55%; width:20px; height:18px; background: #1a2a1a; border-radius: 50% 50% 40% 40%; animation: ism-peck 2s ease-in-out infinite; }
.scn-item-starling-mortimer .hand { position:absolute; bottom:35%; left:40%; width:30px; height:60px; background: #3a2a1a; border-radius: 40% 40% 30% 30%; animation: ism-hand 5s ease-in-out infinite; }
.scn-item-starling-mortimer .table { position:absolute; bottom:20%; left:20%; right:20%; height:10%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); }
.scn-item-starling-mortimer .shadow { position:absolute; bottom:20%; left:30%; width:60px; height:20px; background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(4px); animation: ism-shadow 5s ease-in-out infinite; }
.scn-item-starling-mortimer .letter { position:absolute; bottom:25%; left:35%; width:40px; height:30px; background: #d0c0a0; animation: ism-letter 6s ease-in-out infinite; }
@keyframes ism-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes ism-peck { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(0.9); } 100% { transform: translateY(0) scale(1); } }
@keyframes ism-hand { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ism-shadow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.1); } 100% { opacity: 0.3; transform: scale(1); } }
@keyframes ism-letter { 0% { transform: translateY(0) rotate(0deg); opacity:1; } 50% { transform: translateY(-2px) rotate(3deg); opacity:0.9; } 100% { transform: translateY(0) rotate(0deg); opacity:1; } }

/* wasp-stung-fool (bright-interior, tense) */
.scn-wasp-stung-fool { background: linear-gradient(180deg, #c0a060 0%, #806040 100%); }
.scn-wasp-stung-fool .window { position:absolute; top:10%; left:20%; right:20%; height:50%; background: #e0d0a0; border: 4px solid #4a3a2a; animation: wsf-light 3s ease-in-out infinite; }
.scn-wasp-stung-fool .fool { position:absolute; bottom:20%; left:40%; width:30px; height:70px; background: #1a1a2e; border-radius: 50% 50% 30% 30%; animation: wsf-fool 2s ease-in-out infinite; }
.scn-wasp-stung-fool .wasps { position:absolute; top:30%; left:50%; width:60px; height:40px; background: radial-gradient(circle at 20% 30%, #2a2a1a 2px, transparent 2px) repeat; animation: wsf-swarm 2s linear infinite; }
.scn-wasp-stung-fool .rods { position:absolute; bottom:20%; left:10%; width:80%; height:2px; background: #4a3a2a; transform: rotate(-20deg); animation: wsf-rod 4s ease-in-out infinite; }
.scn-wasp-stung-fool .shadow { position:absolute; bottom:15%; left:35%; width:40px; height:15px; background: rgba(0,0,0,0.4); border-radius:50%; }
.scn-wasp-stung-fool .chair { position:absolute; bottom:18%; left:45%; width:20px; height:30px; background: #3a2a1a; border-radius: 10%; }
@keyframes wsf-light { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes wsf-fool { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(2px) rotate(-3deg); } }
@keyframes wsf-swarm { 0% { transform: translate(0,0); } 25% { transform: translate(5px,-5px); } 50% { transform: translate(-3px,2px); } 75% { transform: translate(4px,4px); } 100% { transform: translate(0,0); } }
@keyframes wsf-rod { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(10px); } 100% { transform: rotate(-20deg) translateX(0); } }

/* ---------- hotspur-kate-farewell ---------- */
.scn-hotspur-kate-farewell {
  background: linear-gradient(180deg, #1c1a2a 0%, #2a2535 50%, #1a1625 100%),
              radial-gradient(ellipse at 50% 55%, #4a3a4a 0%, transparent 60%);
}
.scn-hotspur-kate-farewell .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2535 0%, #1a1625 100%);
  animation: hkf-wall 4s ease-in-out infinite alternate;
}
.scn-hotspur-kate-farewell .floor {
  position: absolute; inset: auto 0 0 0; height: 30%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0e0e12 100%);
}
.scn-hotspur-kate-farewell .figure-left {
  position: absolute; bottom: 30%; left: 22%; width: 32px; height: 80px;
  background: linear-gradient(180deg, #1e1e2e 0%, #12121e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hkf-left 2.5s ease-in-out infinite;
}
.scn-hotspur-kate-farewell .figure-right {
  position: absolute; bottom: 30%; right: 22%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #222233 0%, #151525 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hkf-right 2.8s ease-in-out infinite;
}
.scn-hotspur-kate-farewell .candle {
  position: absolute; bottom: 38%; left: 50%; width: 4px; height: 14px;
  background: linear-gradient(180deg, #f0d080 0%, #c0a060 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  animation: hkf-candle 2.4s ease-in-out infinite alternate;
}
.scn-hotspur-kate-farewell .candle-glow {
  position: absolute; bottom: 42%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,180,120,0.5) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: hkf-glow 1.8s ease-in-out infinite alternate;
}
.scn-hotspur-kate-farewell .shadow {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(3px);
  animation: hkf-shadow 4s ease-in-out infinite alternate;
}
@keyframes hkf-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes hkf-left {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-3px) rotate(1.5deg); }
  50% { transform: translateX(1px) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes hkf-right {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(2px) rotate(-1deg); }
  60% { transform: translateX(-1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes hkf-candle {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(0.85); }
  100% { transform: translateX(-50%) scaleY(1.05); }
}
@keyframes hkf-glow {
  0% { opacity: 0.5; transform: translate(-50%,-50%) scale(0.9); }
  50% { opacity: 0.8; transform: translate(-50%,-50%) scale(1.1); }
  100% { opacity: 0.6; transform: translate(-50%,-50%) scale(1); }
}
@keyframes hkf-shadow {
  0% { opacity: 0.4; transform: scaleX(0.95); }
  50% { opacity: 0.6; transform: scaleX(1.05); }
  100% { opacity: 0.45; transform: scaleX(1); }
}

/* ---------- boars-head-tavern-arrival ---------- */
.scn-boars-head-tavern-arrival {
  background: linear-gradient(180deg, #3a3020 0%, #2a2015 50%, #1e1810 100%),
              radial-gradient(ellipse at 50% 35%, #5a4a30 0%, transparent 60%);
}
.scn-boars-head-tavern-arrival .bg-mid {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #4a3a28 0%, #2a2015 100%);
  animation: bta-bg 6s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-arrival .barrel-left {
  position: absolute; bottom: 25%; left: 12%; width: 60px; height: 80px;
  background: linear-gradient(90deg, #6a5840 0%, #8a7050 50%, #5a4830 100%);
  border-radius: 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: bta-barrel 5s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-arrival .barrel-right {
  position: absolute; bottom: 25%; right: 12%; width: 60px; height: 80px;
  background: linear-gradient(90deg, #5a4830 0%, #7a6040 50%, #4a3820 100%);
  border-radius: 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: bta-barrel 5s ease-in-out infinite alternate-reverse;
}
.scn-boars-head-tavern-arrival .table {
  position: absolute; bottom: 25%; left: 35%; right: 35%; height: 25px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 4px;
  transform: perspective(200px) rotateX(10deg);
  animation: bta-table 8s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-arrival .figure-l {
  position: absolute; bottom: 25%; left: 38%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a2020 0%, #1a1212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bta-fig-l 4s ease-in-out infinite;
}
.scn-boars-head-tavern-arrival .figure-r {
  position: absolute; bottom: 25%; right: 38%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a2020 0%, #1a1212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bta-fig-r 4.5s ease-in-out infinite;
}
.scn-boars-head-tavern-arrival .lantern {
  position: absolute; top: 18%; left: 50%; width: 14px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 100%);
  border-radius: 30% 30% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 8px rgba(255,180,60,0.5), 0 0 40px 15px rgba(255,180,60,0.2);
  animation: bta-lantern 6s ease-in-out infinite;
}
@keyframes bta-bg {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes bta-barrel {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-4px) rotate(2deg); }
  50% { transform: translateY(2px) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes bta-table {
  0% { transform: perspective(200px) rotateX(10deg) translateY(0); }
  50% { transform: perspective(200px) rotateX(12deg) translateY(-2px); }
  100% { transform: perspective(200px) rotateX(9deg) translateY(1px); }
}
@keyframes bta-fig-l {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(5px) rotate(3deg); }
  50% { transform: translateX(-3px) rotate(-2deg); }
  75% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes bta-fig-r {
  0% { transform: translateX(0) rotate(0); }
  20% { transform: translateX(-4px) rotate(-3deg); }
  40% { transform: translateX(3px) rotate(2deg); }
  80% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes bta-lantern {
  0% { transform: translateX(-50%) rotate(0); }
  25% { transform: translateX(-50%) rotate(5deg); }
  50% { transform: translateX(-50%) rotate(-5deg); }
  75% { transform: translateX(-50%) rotate(3deg); }
  100% { transform: translateX(-50%) rotate(0); }
}

/* ---------- item-pennyworth-of-sugar ---------- */
.scn-item-pennyworth-of-sugar {
  background: linear-gradient(180deg, #4a3a20 0%, #3a2a15 50%, #2a1a0e 100%),
              radial-gradient(ellipse at 50% 70%, #6a5a30 0%, transparent 60%);
}
.scn-item-pennyworth-of-sugar .counter {
  position: absolute; inset: auto 0 0 0; height: 40%;
  background: linear-gradient(180deg, #5a4a30 0%, #3a2818 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.4);
}
.scn-item-pennyworth-of-sugar .sugar-pot {
  position: absolute; bottom: 45%; left: 48%; width: 24px; height: 28px;
  background: linear-gradient(180deg, #8a7a50 0%, #6a5a38 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  animation: ips-pot 6s ease-in-out infinite alternate;
}
.scn-item-pennyworth-of-sugar .sugar-cube {
  position: absolute; bottom: 42%; left: 52%; width: 10px; height: 10px;
  background: linear-gradient(135deg, #f8f0d8 0%, #e8d8b0 100%);
  border-radius: 10%;
  transform: rotate(15deg);
  animation: ips-cube 3s ease-in-out infinite;
}
.scn-item-pennyworth-of-sugar .hand {
  position: absolute; bottom: 40%; left: 55%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 60% 60%;
  transform: rotate(-20deg) scaleX(0.8);
  transform-origin: bottom left;
  animation: ips-hand 4s ease-in-out infinite;
}
.scn-item-pennyworth-of-sugar .candle-sm {
  position: absolute; bottom: 38%; left: 38%; width: 3px; height: 10px;
  background: linear-gradient(180deg, #f0d080 0%, #c0a060 100%);
  border-radius: 20%;
  animation: ips-candle 2s ease-in-out infinite alternate;
}
.scn-item-pennyworth-of-sugar .shadow-sugar {
  position: absolute; bottom: 40%; left: 45%; width: 30px; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(2px);
  animation: ips-shadow 3s ease-in-out infinite alternate;
}
@keyframes ips-pot {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.03); }
  100% { transform: translateX(-50%) scale(0.97); }
}
@keyframes ips-cube {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(25deg) translateY(-2px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes ips-hand {
  0% { transform: rotate(-20deg) scaleX(0.8) translateX(0); }
  25% { transform: rotate(-15deg) scaleX(0.85) translateX(4px); }
  50% { transform: rotate(-22deg) scaleX(0.75) translateX(-2px); }
  75% { transform: rotate(-18deg) scaleX(0.8) translateX(2px); }
  100% { transform: rotate(-20deg) scaleX(0.8) translateX(0); }
}
@keyframes ips-candle {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.8); }
  100% { transform: scaleY(1.1); }
}
@keyframes ips-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.2); }
  100% { opacity: 0.35; transform: scaleX(0.9); }
}

/* ---------- falstaff-coward-complaint ---------- */
.scn-falstaff-coward-complaint {
  background: linear-gradient(180deg, #3c2818 0%, #2c1c10 50%, #1a100a 100%),
              radial-gradient(ellipse at 50% 45%, #5a4028 0%, transparent 60%);
}
.scn-falstaff-coward-complaint .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #4a3020 0%, #2c1c10 100%);
  animation: fcc-wall 5s ease-in-out infinite alternate;
}
.scn-falstaff-coward-complaint .floor {
  position: absolute; inset: auto 0 0 0; height: 25%;
  background: linear-gradient(180deg, #2c1c10 0%, #1a100a 100%);
}
.scn-falstaff-coward-complaint .table {
  position: absolute; bottom: 25%; left: 25%; right: 25%; height: 18px;
  background: linear-gradient(180deg, #5a3820 0%, #3a2010 100%);
  border-radius: 6px;
  transform: perspective(200px) rotateX(8deg);
  animation: fcc-table 7s ease-in-out infinite alternate;
}
.scn-falstaff-coward-complaint .falstaff {
  position: absolute; bottom: 25%; left: 38%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #4a3020 0%, #2c1c12 100%);
  border-radius: 60% 60% 40% 40% / 70% 70% 30% 30%;
  transform: scaleX(1.3);
  transform-origin: bottom center;
  animation: fcc-falstaff 5s ease-in-out infinite;
}
.scn-falstaff-coward-complaint .companion-l {
  position: absolute; bottom: 25%; left: 25%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2820 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fcc-compl 4.5s ease-in-out infinite;
}
.scn-falstaff-coward-complaint .companion-r {
  position: absolute; bottom: 25%; right: 25%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2820 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fcc-compr 4.8s ease-in-out infinite;
}
.scn-falstaff-coward-complaint .wine-cup {
  position: absolute; bottom: 30%; left: 50%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #b87878 0%, #8a5858 100%);
  border-radius: 0 0 20% 20%;
  transform: translateX(-50%);
  animation: fcc-cup 3s ease-in-out infinite;
}
.scn-falstaff-coward-complaint .lantern {
  position: absolute; top: 20%; left: 50%; width: 12px; height: 18px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 0 30px 10px rgba(255,180,60,0.5);
  animation: fcc-lantern 8s ease-in-out infinite;
}
@keyframes fcc-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes fcc-table {
  0% { transform: perspective(200px) rotateX(8deg) translateY(0); }
  50% { transform: perspective(200px) rotateX(10deg) translateY(-2px); }
  100% { transform: perspective(200px) rotateX(7deg) translateY(1px); }
}
@keyframes fcc-falstaff {
  0% { transform: scaleX(1.3) translateX(0) rotate(0); }
  20% { transform: scaleX(1.35) translateX(-2px) rotate(2deg); }
  40% { transform: scaleX(1.25) translateX(1px) rotate(-1deg); }
  60% { transform: scaleX(1.32) translateX(-1px) rotate(1deg); }
  80% { transform: scaleX(1.28) translateX(2px) rotate(-2deg); }
  100% { transform: scaleX(1.3) translateX(0) rotate(0); }
}
@keyframes fcc-compl {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-3px) rotate(2deg); }
  50% { transform: translateX(2px) rotate(-1deg); }
  75% { transform: translateX(-1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes fcc-compr {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(3px) rotate(-2deg); }
  60% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes fcc-cup {
  0% { transform: translateX(-50%) rotate(0) translateY(0); }
  25% { transform: translateX(-50%) rotate(10deg) translateY(-2px); }
  50% { transform: translateX(-50%) rotate(-5deg) translateY(1px); }
  75% { transform: translateX(-50%) rotate(3deg) translateY(-1px); }
  100% { transform: translateX(-50%) rotate(0) translateY(0); }
}
@keyframes fcc-lantern {
  0% { transform: translateX(-50%) rotate(0); }
  20% { transform: translateX(-50%) rotate(6deg); }
  40% { transform: translateX(-50%) rotate(-4deg); }
  60% { transform: translateX(-50%) rotate(5deg); }
  80% { transform: translateX(-50%) rotate(-2deg); }
  100% { transform: translateX(-50%) rotate(0); }
}

.scn-chamberlain-intelligence {
  background:
    radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #1a1210 100%);
}
.scn-chamberlain-intelligence .arch-back {
  position: absolute; inset: 5% 10% 25% 10%;
  background: linear-gradient(135deg, #2a2220 0%, #3a3228 50%, #2a2220 100%);
  border-radius: 50% / 80% 80% 20% 20%;
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
  animation: ci-arch 12s ease-in-out infinite alternate;
}
.scn-chamberlain-intelligence .wall {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, transparent 0%, rgba(60,40,30,.3) 100%);
  animation: ci-wall 8s ease-in-out infinite alternate;
}
.scn-chamberlain-intelligence .candle {
  position: absolute; top: 30%; left: 22%;
  width: 6px; height: 16px;
  background: linear-gradient(180deg, #e8c080 0%, #a07040 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 8px 2px rgba(200,150,80,.4);
  animation: ci-candle 3s ease-in-out infinite;
}
.scn-chamberlain-intelligence .candle-glow {
  position: absolute; top: 24%; left: 18%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,120,.4) 0%, rgba(255,160,60,.15) 40%, transparent 70%);
  border-radius: 50%;
  animation: ci-glow 3s ease-in-out infinite alternate;
}
.scn-chamberlain-intelligence .chamberlain {
  position: absolute; bottom: 22%; left: 42%;
  width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1218 0%, #0a080a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ci-figure 4s ease-in-out infinite;
}
.scn-chamberlain-intelligence .purse {
  position: absolute; bottom: 30%; left: 52%;
  width: 14px; height: 10px;
  background: linear-gradient(135deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: ci-purse 4s ease-in-out infinite;
}
.scn-chamberlain-intelligence .hand {
  position: absolute; bottom: 28%; left: 48%;
  width: 16px; height: 20px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: ci-hand 3.5s ease-in-out infinite;
}
@keyframes ci-arch { 0% { transform: scale(1); opacity: .9 } 50% { transform: scale(1.01); opacity: 1 } 100% { transform: scale(1); opacity: .9 } }
@keyframes ci-wall { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .6 } }
@keyframes ci-candle { 0%,100% { transform: scale(1) rotate(-1deg) } 50% { transform: scale(1.02) rotate(2deg) } }
@keyframes ci-glow { 0% { opacity: .5; transform: scale(1) } 50% { opacity: .8; transform: scale(1.1) } 100% { opacity: .6; transform: scale(.95) } }
@keyframes ci-figure { 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(2deg) } }
@keyframes ci-purse { 0%,100% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-2px) rotate(5deg) } }
@keyframes ci-hand { 0%,100% { transform: translateX(0) rotate(-10deg) } 50% { transform: translateX(4px) rotate(10deg) } }

.scn-saint-nicholas-clerks {
  background:
    radial-gradient(ellipse at 50% 60%, #2a2a3a 0%, transparent 60%),
    linear-gradient(180deg, #12101a 0%, #1a1828 50%, #12101a 100%);
}
.scn-saint-nicholas-clerks .road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a22 0%, #12101a 100%);
  border-radius: 60% 40% 0 0 / 40% 20% 0 0;
  animation: snc-road 15s ease-in-out infinite alternate;
}
.scn-saint-nicholas-clerks .figure-left {
  position: absolute; bottom: 20%; left: 20%;
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1828 0%, #0a0812 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: snc-figure-l 5s ease-in-out infinite;
}
.scn-saint-nicholas-clerks .figure-center {
  position: absolute; bottom: 22%; left: 42%;
  width: 34px; height: 64px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: snc-figure-c 4.5s ease-in-out infinite;
}
.scn-saint-nicholas-clerks .figure-right {
  position: absolute; bottom: 18%; left: 62%;
  width: 28px; height: 56px;
  background: linear-gradient(180deg, #161628 0%, #08081a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: snc-figure-r 5.5s ease-in-out infinite;
}
.scn-saint-nicholas-clerks .noose {
  position: absolute; top: 12%; left: 48%;
  width: 20px; height: 40px;
  border: 2px solid #3a3a4a;
  border-radius: 0 0 50% 50%;
  background: transparent;
  box-shadow: 0 0 4px rgba(0,0,0,.3);
  animation: snc-noose 6s ease-in-out infinite;
}
.scn-saint-nicholas-clerks .halo {
  position: absolute; top: 6%; left: 44%;
  width: 30px; height: 10px;
  background: radial-gradient(ellipse, rgba(200,180,120,.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: snc-halo 4s ease-in-out infinite alternate;
}
.scn-saint-nicholas-clerks .lantern {
  position: absolute; bottom: 35%; right: 18%;
  width: 12px; height: 20px;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e14 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 4px rgba(200,160,80,.3);
  animation: snc-lantern 3s ease-in-out infinite;
}
@keyframes snc-road { 0% { opacity: .7; transform: scale(1) } 50% { opacity: .9; transform: scale(1.01) } 100% { opacity: .7; transform: scale(1) } }
@keyframes snc-figure-l { 0%,100% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(4px) rotate(3deg) } }
@keyframes snc-figure-c { 0%,100% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-3px) rotate(-2deg) } }
@keyframes snc-figure-r { 0%,100% { transform: translateX(0) rotate(4deg) } 50% { transform: translateX(-3px) rotate(-4deg) } }
@keyframes snc-noose { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes snc-halo { 0% { opacity: .3; transform: scale(1) } 50% { opacity: .6; transform: scale(1.1) } 100% { opacity: .4; transform: scale(.9) } }
@keyframes snc-lantern { 0%,100% { transform: rotate(-4deg) } 50% { transform: rotate(4deg) translateY(-2px) } }

.scn-nobility-and-tranquillity {
  background:
    radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #1a1410 100%);
}
.scn-nobility-and-tranquillity .wall-panel {
  position: absolute; inset: 10% 8% 20% 8%;
  background: linear-gradient(135deg, #2a1e18 0%, #3a2a22 50%, #2a1e18 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
  animation: nat-panel 15s ease-in-out infinite alternate;
}
.scn-nobility-and-tranquillity .noble-figure {
  position: absolute; bottom: 18%; left: 38%;
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: nat-noble 6s ease-in-out infinite;
}
.scn-nobility-and-tranquillity .chain-office {
  position: absolute; bottom: 45%; left: 35%;
  width: 50px; height: 12px;
  background: linear-gradient(90deg, #5a4a3a 0%, #8a7a5a 50%, #5a4a3a 100%);
  border-radius: 6px;
  box-shadow: 0 0 6px rgba(200,180,100,.2);
  animation: nat-chain 5s ease-in-out infinite;
}
.scn-nobility-and-tranquillity .table {
  position: absolute; bottom: 10%; left: 25%;
  width: 120px; height: 8px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e10 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: nat-table 12s ease-in-out infinite alternate;
}
.scn-nobility-and-tranquillity .goblet {
  position: absolute; bottom: 22%; left: 52%;
  width: 12px; height: 18px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: 0 0 4px rgba(200,180,100,.15);
  animation: nat-goblet 4s ease-in-out infinite;
}
.scn-nobility-and-tranquillity .lantern {
  position: absolute; top: 20%; right: 15%;
  width: 14px; height: 22px;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 4px;
  box-shadow: 0 0 24px 6px rgba(200,150,80,.25);
  animation: nat-lantern 3.5s ease-in-out infinite;
}
.scn-nobility-and-tranquillity .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%);
  animation: nat-shadow 10s ease-in-out infinite alternate;
}
@keyframes nat-panel { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes nat-noble { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes nat-chain { 0%,100% { transform: translateX(0) scale(1) } 50% { transform: translateX(2px) scale(1.02) } }
@keyframes nat-table { 0% { box-shadow: 0 4px 8px rgba(0,0,0,.4) } 50% { box-shadow: 0 6px 12px rgba(0,0,0,.5) } 100% { box-shadow: 0 4px 8px rgba(0,0,0,.4) } }
@keyframes nat-goblet { 0%,100% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } }
@keyframes nat-lantern { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) scale(1.02) } }
@keyframes nat-shadow { 0% { opacity: .5 } 50% { opacity: .8 } 100% { opacity: .5 } }

.scn-item-boots-commonwealth {
  background:
    radial-gradient(ellipse at 50% 30%, #1a2a3a 0%, transparent 60%),
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%);
}
.scn-item-boots-commonwealth .castle-tower {
  position: absolute; top: 8%; right: 20%;
  width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 0 12px rgba(0,0,0,.4);
  animation: ibc-tower 20s ease-in-out infinite alternate;
}
.scn-item-boots-commonwealth .boot {
  position: absolute; bottom: 12%; left: 30%;
  width: 80px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
  animation: ibc-boot 6s ease-in-out infinite;
}
.scn-item-boots-commonwealth .fern-left {
  position: absolute; bottom: 20%; left: 18%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(-20deg);
  animation: ibc-fern-l 8s ease-in-out infinite;
}
.scn-item-boots-commonwealth .fern-right {
  position: absolute; bottom: 18%; right: 15%;
  width: 28px; height: 46px;
  background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(20deg);
  animation: ibc-fern-r 8s ease-in-out infinite alternate;
}
.scn-item-boots-commonwealth .outline-figure {
  position: absolute; bottom: 25%; left: 48%;
  width: 24px; height: 50px;
  border: 1.5px dashed rgba(180,200,220,.2);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  background: transparent;
  animation: ibc-figure 5s ease-in-out infinite;
}
.scn-item-boots-commonwealth .stars {
  position: absolute; top: 5%; left: 0; right: 0; height: 30%;
  background:
    radial-gradient(2px 2px at 20% 30%, rgba(200,220,255,.4) 0%, transparent 100%),
    radial-gradient(2px 2px at 60% 15%, rgba(200,220,255,.3) 0%, transparent 100%),
    radial-gradient(1px 1px at 80% 25%, rgba(200,220,255,.5) 0%, transparent 100%);
  animation: ibc-stars 30s linear infinite;
}
.scn-item-boots-commonwealth .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  animation: ibc-ground 12s ease-in-out infinite alternate;
}
@keyframes ibc-tower { 0% { transform: scale(1); opacity: .7 } 50% { transform: scale(1.02); opacity: .9 } 100% { transform: scale(1); opacity: .7 } }
@keyframes ibc-boot { 0%,100% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-4px) rotate(3deg) } }
@keyframes ibc-fern-l { 0%,100% { transform: rotate(-25deg) scale(1) } 50% { transform: rotate(-15deg) scale(1.05) } }
@keyframes ibc-fern-r { 0%,100% { transform: rotate(15deg) scale(1) } 50% { transform: rotate(25deg) scale(1.05) } }
@keyframes ibc-figure { 0%,100% { opacity: .3; transform: translateY(0) } 50% { opacity: .6; transform: translateY(-5px) } }
@keyframes ibc-stars { 0% { opacity: .5 } 25% { opacity: .7 } 50% { opacity: .9 } 75% { opacity: .7 } 100% { opacity: .5 } }
@keyframes ibc-ground { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .7 } }

.scn-rebel-camp-before-battle { background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 60%, #2a3a3a 100%), radial-gradient(ellipse at 30% 80%, rgba(180,160,100,0.15) 0%, transparent 60%); }
.scn-rebel-camp-before-battle .sky { position:absolute; inset:0; height:60%; background:linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 50%, #3a4a5a 100%); animation:scrc-sky 20s ease-in-out infinite alternate; }
.scn-rebel-camp-before-battle .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background:linear-gradient(180deg, #3a4a3a, #2a3a2a); border-radius:30% 70% 0 0 / 50% 50% 0 0; animation:scrc-hills 15s ease-in-out infinite alternate; }
.scn-rebel-camp-before-battle .tent { position:absolute; bottom:33%; left:30%; width:80px; height:60px; background:#4a5a4a; clip-path:polygon(50% 0%, 0% 100%, 100% 100%); transform-origin:bottom center; animation:scrc-tent 4s ease-in-out infinite alternate; }
.scn-rebel-camp-before-battle .campfire { position:absolute; bottom:35%; left:55%; width:20px; height:30px; background:radial-gradient(circle at center, #c08040 0%, #a06030 40%, transparent 70%); border-radius:50%; box-shadow:0 0 30px 15px rgba(192,128,64,0.3); animation:scrc-fire 2s steps(4) infinite; }
.scn-rebel-camp-before-battle .smoke { position:absolute; bottom:55%; left:45%; width:40px; height:20px; background:radial-gradient(ellipse, rgba(200,200,200,0.4) 0%, transparent 100%); filter:blur(6px); animation:scrc-smoke 12s ease-in-out infinite alternate; }
.scn-rebel-camp-before-battle .figure-left { position:absolute; bottom:33%; left:40%; width:16px; height:28px; background:linear-gradient(180deg, #2a2a3a, #1a1a2a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:scrc-figure 8s ease-in-out infinite; }
.scn-rebel-camp-before-battle .figure-right { position:absolute; bottom:33%; left:60%; width:16px; height:28px; background:linear-gradient(180deg, #2a2a3a, #1a1a2a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:scrc-figure 8s ease-in-out infinite 4s; }
@keyframes scrc-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.7} }
@keyframes scrc-hills { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(2px)} }
@keyframes scrc-tent { 0%{transform:rotate(-1deg)} 50%{transform:rotate(1deg)} 100%{transform:rotate(0deg)} }
@keyframes scrc-fire { 0%{opacity:.9;transform:scale(1)} 25%{opacity:1;transform:scale(1.1)} 50%{opacity:.8;transform:scale(.95)} 75%{opacity:1;transform:scale(1.05)} 100%{opacity:.9;transform:scale(1)} }
@keyframes scrc-smoke { 0%{transform:translateY(0) translateX(0) scale(1);opacity:.6} 50%{transform:translateY(-20px) translateX(8px) scale(1.3);opacity:.2} 100%{transform:translateY(-40px) translateX(-5px) scale(1.6);opacity:0} }
@keyframes scrc-figure { 0%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-2px) rotate(2deg)} 100%{transform:translateY(0) rotate(0deg)} }

.scn-hotspur-challenge { background: linear-gradient(180deg, #4a7ead 0%, #8ec4e0 30%, #ffd0a0 100%), radial-gradient(circle at 80% 20%, #ffe680 0%, transparent 40%); }
.scn-hotspur-challenge .sun { position:absolute; top:10%; right:20%; width:60px; height:60px; background:radial-gradient(circle, #ffe680 0%, #ffc040 40%, transparent 70%); border-radius:50%; box-shadow:0 0 60px 30px rgba(255,230,128,0.5); animation:schp-sun 5s ease-in-out infinite alternate; }
.scn-hotspur-challenge .cloud1 { position:absolute; top:15%; left:10%; width:100px; height:30px; background:linear-gradient(180deg, rgba(255,255,255,0.7) 0%, transparent 100%); border-radius:50%; filter:blur(8px); animation:schp-cloud 40s linear infinite; }
.scn-hotspur-challenge .cloud2 { position:absolute; top:25%; right:15%; width:80px; height:20px; background:linear-gradient(180deg, rgba(255,255,255,0.5) 0%, transparent 100%); border-radius:50%; filter:blur(6px); animation:schp-cloud 50s linear infinite 10s; }
.scn-hotspur-challenge .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(0deg, #c4a463 0%, #a08550 100%); border-radius:20% 20% 0 0; }
.scn-hotspur-challenge .figure { position:absolute; bottom:20%; left:35%; width:24px; height:50px; background:linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:schp-figure 3s ease-in-out infinite; }
.scn-hotspur-challenge .sword { position:absolute; bottom:40%; left:42%; width:6px; height:40px; background:linear-gradient(180deg, #e0e0e0, #a0a0a0); border-radius:3px; transform-origin:bottom center; animation:schp-sword 2s ease-in-out infinite; }
.scn-hotspur-challenge .shield { position:absolute; bottom:30%; left:30%; width:20px; height:25px; background:linear-gradient(135deg, #c8a040 0%, #a08030 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow:0 4px 8px rgba(0,0,0,0.3); animation:schp-shield 3s ease-in-out infinite 1.5s; }
.scn-hotspur-challenge .banner { position:absolute; bottom:40%; left:70%; width:10px; height:30px; background:#c8553d; transform-origin:bottom center; animation:schp-banner 4s ease-in-out infinite; }
@keyframes schp-sun { 0%{transform:scale(1);opacity:.9} 50%{transform:scale(1.05);opacity:1} 100%{transform:scale(.95);opacity:.8} }
@keyframes schp-cloud { 0%{transform:translateX(0);opacity:.7} 50%{transform:translateX(50px);opacity:1} 100%{transform:translateX(100px);opacity:.5} }
@keyframes schp-figure { 0%{transform:translateY(0) rotate(-5deg)} 25%{transform:translateY(-5px) rotate(5deg)} 50%{transform:translateY(0) rotate(-3deg)} 75%{transform:translateY(-3px) rotate(3deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes schp-sword { 0%{transform:rotate(-10deg)} 50%{transform:rotate(20deg)} 100%{transform:rotate(-10deg)} }
@keyframes schp-shield { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes schp-banner { 0%{transform:rotate(-5deg) scaleY(1)} 50%{transform:rotate(5deg) scaleY(1.1)} 75%{transform:rotate(-3deg) scaleY(.9)} 100%{transform:rotate(0deg) scaleY(1)} }

.scn-king-douglas-blunt { background: linear-gradient(180deg, #4a7ead 0%, #8ec4e0 30%, #ffd0a0 100%), radial-gradient(circle at 30% 30%, #ffe680 0%, transparent 50%); }
.scn-king-douglas-blunt .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(0deg, #a08850 0%, #907840 100%); border-radius:20% 20% 0 0; }
.scn-king-douglas-blunt .figure-k { position:absolute; bottom:20%; left:30%; width:26px; height:55px; background:linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:kd-figure-k 2s ease-in-out infinite; }
.scn-king-douglas-blunt .figure-d { position:absolute; bottom:20%; left:55%; width:26px; height:55px; background:linear-gradient(180deg, #3a5a3a 0%, #1a3a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:kd-figure-d 2s ease-in-out infinite 1s; }
.scn-king-douglas-blunt .sword-k { position:absolute; bottom:42%; left:35%; width:6px; height:45px; background:linear-gradient(180deg, #e0e0e0, #a0a0a0); border-radius:3px; transform-origin:bottom center; animation:kd-sword 1.5s ease-in-out infinite; }
.scn-king-douglas-blunt .sword-d { position:absolute; bottom:42%; left:55%; width:6px; height:45px; background:linear-gradient(180deg, #e0e0e0, #a0a0a0); border-radius:3px; transform-origin:bottom center; animation:kd-sword 1.5s ease-in-out infinite 0.75s; }
.scn-king-douglas-blunt .crown { position:absolute; bottom:60%; left:32%; width:16px; height:10px; background:linear-gradient(180deg, #ffc040 0%, #c08030 100%); border-radius:50% 50% 0 0; box-shadow:0 0 8px 4px rgba(255,192,64,0.5); animation:kd-crown 3s ease-in-out infinite; }
.scn-king-douglas-blunt .dust { position:absolute; bottom:10%; left:40%; width:40px; height:20px; background:radial-gradient(ellipse, rgba(200,180,150,0.5) 0%, transparent 100%); filter:blur(4px); animation:kd-dust 4s ease-in-out infinite; }
@keyframes kd-figure-k { 0%{transform:translateY(0) rotate(-3deg)} 25%{transform:translateY(-3px) rotate(5deg)} 50%{transform:translateY(0) rotate(-2deg)} 75%{transform:translateY(-2px) rotate(3deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes kd-figure-d { 0%{transform:translateY(0) rotate(-3deg)} 25%{transform:translateY(-3px) rotate(5deg)} 50%{transform:translateY(0) rotate(-2deg)} 75%{transform:translateY(-2px) rotate(3deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes kd-sword { 0%{transform:rotate(-20deg)} 50%{transform:rotate(30deg)} 100%{transform:rotate(-20deg)} }
@keyframes kd-crown { 0%{transform:translateY(0) rotate(-3deg)} 50%{transform:translateY(-2px) rotate(3deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes kd-dust { 0%{transform:scale(1) translateX(0);opacity:.5} 50%{transform:scale(1.5) translateX(10px);opacity:.2} 100%{transform:scale(1) translateX(0);opacity:.5} }

.scn-falstaff-cowardice { background: linear-gradient(180deg, #4a8ed6 0%, #87ceeb 60%, #90ee90 100%), radial-gradient(ellipse at 70% 30%, #ffe680 0%, transparent 40%); }
.scn-falstaff-cowardice .sky { position:absolute; inset:0 0 60% 0; background:linear-gradient(180deg, #4a8ed6 0%, #87ceeb 100%); }
.scn-falstaff-cowardice .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(0deg, #6bb86b 0%, #90ee90 100%); border-radius:30% 30% 0 0; }
.scn-falstaff-cowardice .sun { position:absolute; top:10%; left:80%; width:50px; height:50px; background:radial-gradient(circle, #ffe680 0%, #ffc040 50%, transparent 80%); border-radius:50%; box-shadow:0 0 40px 20px rgba(255,230,128,0.5); animation:fc-sun 6s ease-in-out infinite alternate; }
.scn-falstaff-cowardice .bush { position:absolute; bottom:30%; left:50%; width:80px; height:60px; background:radial-gradient(ellipse at 50% 100%, #3a7a3a 0%, #2a5a2a 70%, transparent 100%); border-radius:50%; box-shadow:inset 0 -10px 20px rgba(0,0,0,0.2); animation:fc-bush 5s ease-in-out infinite; }
.scn-falstaff-cowardice .falstaff { position:absolute; bottom:20%; left:35%; width:40px; height:60px; background:radial-gradient(ellipse at 50% 30%, #c8a060 0%, #8a6a4a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; box-shadow:0 4px 10px rgba(0,0,0,0.3); transform-origin:bottom center; animation:fc-falstaff 4s ease-in-out infinite; }
.scn-falstaff-cowardice .hat { position:absolute; bottom:60%; left:38%; width:20px; height:10px; background:#4a3a2a; border-radius:50% 50% 0 0; transform-origin:bottom center; animation:fc-hat 3s ease-in-out infinite 1s; }
.scn-falstaff-cowardice .sword { position:absolute; bottom:35%; left:45%; width:4px; height:30px; background:linear-gradient(180deg, #e0e0e0, #a0a0a0); border-radius:2px; transform-origin:top center; animation:fc-sword 2s ease-in-out infinite; }
@keyframes fc-sun { 0%{transform:scale(1) rotate(0deg)} 50%{transform:scale(1.08) rotate(5deg)} 100%{transform:scale(1) rotate(0deg)} }
@keyframes fc-bush { 0%{transform:scaleX(1)} 50%{transform:scaleX(1.05) scaleY(.95)} 100%{transform:scaleX(1)} }
@keyframes fc-falstaff { 0%{transform:translateY(0) rotate(-2deg)} 25%{transform:translateY(-4px) rotate(3deg)} 50%{transform:translateY(0) rotate(-1deg)} 75%{transform:translateY(-2px) rotate(2deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes fc-hat { 0%{transform:translateY(0) rotate(-5deg)} 50%{transform:translateY(-3px) rotate(8deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes fc-sword { 0%{transform:rotate(10deg)} 50%{transform:rotate(-15deg)} 100%{transform:rotate(10deg)} }
/* end per-scene blocks */

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-london-palace-worcester-interrupts { background: linear-gradient(180deg, #d4c5a9 0%, #b8a68c 60%, #8a7a62 100%), radial-gradient(ellipse at 70% 40%, #e8dcc8 0%, transparent 50%); position: relative; overflow: hidden; min-height: 100vh; }
.scn-london-palace-worcester-interrupts .wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #c9b89d 0%, #a39178 100%); }
.scn-london-palace-worcester-interrupts .window { position: absolute; top: 12%; right: 15%; width: 90px; height: 120px; background: linear-gradient(180deg, #b0c4d8 0%, #a0b0c0 100%); border: 6px solid #6b5b45; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,240,0.3), 0 0 30px rgba(255,255,240,0.1); animation: lwi-window 8s ease-in-out infinite alternate; }
.scn-london-palace-worcester-interrupts .desk { position: absolute; bottom: 20%; left: 20%; right: 40%; height: 40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.5); }
.scn-london-palace-worcester-interrupts .book { position: absolute; bottom: 28%; left: 28%; width: 40px; height: 30px; background: linear-gradient(180deg, #c08040 0%, #a06030 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: lwi-book 6s ease-in-out infinite; }
.scn-london-palace-worcester-interrupts .hand { position: absolute; bottom: 30%; left: 24%; width: 20px; height: 30px; background: linear-gradient(180deg, #d6c4a0 0%, #b8a080 100%); border-radius: 50% 50% 40% 40%; transform: rotate(20deg); transform-origin: bottom; animation: lwi-hand 4s ease-in-out infinite alternate; }
.scn-london-palace-worcester-interrupts .candle { position: absolute; bottom: 35%; right: 35%; width: 8px; height: 18px; background: linear-gradient(180deg, #f0d8a0 0%, #e0c080 100%); border-radius: 2px; box-shadow: 0 0 20px 6px #ffd060; animation: lwi-candle 2s ease-in-out infinite alternate; }
.scn-london-palace-worcester-interrupts .shadow { position: absolute; bottom: 20%; left: 15%; width: 100px; height: 60px; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 70%); animation: lwi-shadow 6s ease-in-out infinite; }

@keyframes lwi-window { 0% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(255,255,240,0.3), 0 0 30px rgba(255,255,240,0.1); } 50% { opacity: 1; box-shadow: inset 0 0 30px rgba(255,255,240,0.5), 0 0 40px rgba(255,255,240,0.2); } 100% { opacity: 0.8; box-shadow: inset 0 0 15px rgba(255,255,240,0.2), 0 0 20px rgba(255,255,240,0.05); } }
@keyframes lwi-book { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes lwi-hand { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-3px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes lwi-candle { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.1); opacity: 1; } 100% { transform: scaleY(0.95); opacity: 0.8; } }
@keyframes lwi-shadow { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.8); } }

.scn-london-palace-hotspur-challenge { background: linear-gradient(180deg, #b8a88c 0%, #9a8a70 50%, #7a6a52 100%), radial-gradient(ellipse at 50% 30%, #d4c4a8 0%, transparent 60%); position: relative; overflow: hidden; min-height: 100vh; }
.scn-london-palace-hotspur-challenge .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #6a5a42 0%, #4a3a2a 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); }
.scn-london-palace-hotspur-challenge .column { position: absolute; bottom: 20%; width: 20px; height: 120px; background: linear-gradient(180deg, #c0b098 0%, #a09078 100%); border-radius: 4px; box-shadow: 0 0 10px rgba(0,0,0,0.2); }
.scn-london-palace-hotspur-challenge .column.left { left: 20%; }
.scn-london-palace-hotspur-challenge .column.right { right: 20%; }
.scn-london-palace-hotspur-challenge .figure-a { position: absolute; bottom: 25%; left: 30%; width: 30px; height: 50px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: lhc-figure-a 3s ease-in-out infinite; }
.scn-london-palace-hotspur-challenge .figure-b { position: absolute; bottom: 25%; right: 30%; width: 30px; height: 50px; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: lhc-figure-b 3s ease-in-out infinite; }
.scn-london-palace-hotspur-challenge .glow { position: absolute; top: 20%; left: 50%; width: 200px; height: 200px; transform: translate(-50%, -50%); background: radial-gradient(circle, rgba(255,220,150,0.3) 0%, transparent 70%); animation: lhc-glow 5s ease-in-out infinite alternate; }

@keyframes lhc-figure-a { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(-5px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes lhc-figure-b { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(5deg) translateX(5px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes lhc-glow { 0% { opacity: 0.5; transform: translate(-50%, -50%) scale(1); } 50% { opacity: 0.8; transform: translate(-50%, -50%) scale(1.2); } 100% { opacity: 0.6; transform: translate(-50%, -50%) scale(0.9); } }

.scn-london-palace-hotspur-honour-quest { background: linear-gradient(180deg, #2a2a4a 0%, #3a3a5a 30%, #5a4a6a 60%, #8a7a6a 100%), radial-gradient(ellipse at 50% 0%, #c0a080 0%, transparent 50%); position: relative; overflow: hidden; min-height: 100vh; }
.scn-london-palace-hotspur-honour-quest .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #1a1a3a 0%, #3a2a4a 100%); }
.scn-london-palace-hotspur-honour-quest .moon { position: absolute; top: 10%; left: 50%; transform: translateX(-50%); width: 80px; height: 80px; background: radial-gradient(circle, #f0e0c0 0%, #d0c0a0 70%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(240,224,192,0.4), 0 0 120px 40px rgba(240,224,192,0.2); animation: lhh-moon 12s ease-in-out infinite alternate; }
.scn-london-palace-hotspur-honour-quest .cliff { position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
.scn-london-palace-hotspur-honour-quest .figure { position: absolute; bottom: 25%; left: 45%; width: 24px; height: 40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: lhh-figure 4s ease-in-out infinite; }
.scn-london-palace-hotspur-honour-quest .arm { position: absolute; bottom: 28%; left: 48%; width: 20px; height: 6px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50%; transform: rotate(-30deg); transform-origin: right; animation: lhh-arm 4s ease-in-out infinite; }
.scn-london-palace-hotspur-honour-quest .sparkle { position: absolute; top: 18%; left: 30%; width: 4px; height: 4px; background: white; border-radius: 50%; box-shadow: 0 0 6px 2px white; animation: lhh-sparkle 3s ease-in-out infinite; }
.scn-london-palace-hotspur-honour-quest .sparkle.two { left: 60%; animation-delay: 1.5s; }

@keyframes lhh-moon { 0% { transform: translateX(-50%) translateY(0); filter: brightness(1); } 50% { transform: translateX(-50%) translateY(-5px); filter: brightness(1.1); } 100% { transform: translateX(-50%) translateY(0); filter: brightness(0.9); } }
@keyframes lhh-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-10px) rotate(-5deg); } 50% { transform: translateY(-20px) rotate(0deg); } 75% { transform: translateY(-10px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lhh-arm { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-60deg); } 100% { transform: rotate(-30deg); } }
@keyframes lhh-sparkle { 0%,100% { opacity: 0; } 50% { opacity: 1; } }

.scn-london-palace-worcester-attend { background: linear-gradient(180deg, #c8b8a0 0%, #b0a088 50%, #8a7a62 100%), radial-gradient(ellipse at 50% 60%, #e0d0b8 0%, transparent 40%); position: relative; overflow: hidden; min-height: 100vh; }
.scn-london-palace-worcester-attend .backwall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #a89878 0%, #887858 100%); }
.scn-london-palace-worcester-attend .window { position: absolute; top: 15%; left: 10%; width: 80px; height: 100px; background: linear-gradient(180deg, #b0c4d8 0%, #a0b0c0 100%); border: 6px solid #6b5b45; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,240,0.3); animation: lwa-window 10s ease-in-out infinite alternate; }
.scn-london-palace-worcester-attend .chair { position: absolute; bottom: 20%; left: 25%; width: 40px; height: 60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 4% 4%; }
.scn-london-palace-worcester-attend .listener { position: absolute; bottom: 22%; left: 26%; width: 20px; height: 40px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lwa-listener 6s ease-in-out infinite; }
.scn-london-palace-worcester-attend .speaker { position: absolute; bottom: 22%; right: 30%; width: 22px; height: 44px; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lwa-speaker 4s ease-in-out infinite alternate; }
.scn-london-palace-worcester-attend .candle { position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%); width: 8px; height: 18px; background: linear-gradient(180deg, #f0d8a0 0%, #e0c080 100%); border-radius: 2px; box-shadow: 0 0 20px 6px #ffd060; animation: lwa-candle 3s ease-in-out infinite alternate; }
.scn-london-palace-worcester-attend .cloth { position: absolute; bottom: 20%; left: 15%; right: 30%; height: 30px; background: linear-gradient(180deg, #a04030 0%, #702020 100%); border-radius: 4px; animation: lwa-cloth 8s ease-in-out infinite; }

@keyframes lwa-window { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes lwa-listener { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes lwa-speaker { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes lwa-candle { 0% { transform: scaleY(1) translateX(-50%); } 50% { transform: scaleY(1.05) translateX(-50%); } 100% { transform: scaleY(0.95) translateX(-50%); } }
@keyframes lwa-cloth { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }

/* rochester-inn-yard-saint-nicholas */
.scn-rochester-inn-yard-saint-nicholas { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a2a2a 100%), radial-gradient(ellipse at 70% 80%, #6a4a3a 0%, transparent 60%); }
.scn-rochester-inn-yard-saint-nicholas .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a2a3e 0%, #3a3a4e 50%, #2a2a3e 100%); animation: sni-wall 12s ease-in-out infinite; }
.scn-rochester-inn-yard-saint-nicholas .gallows { position:absolute; bottom:30%; left:50%; width:80px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:6% 6% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.5); }
.scn-rochester-inn-yard-saint-nicholas .rope { position:absolute; bottom:55%; left:50%; width:4px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:2px; animation: sni-rope 2s ease-in-out infinite alternate; }
.scn-rochester-inn-yard-saint-nicholas .figure-neck { position:absolute; bottom:29%; left:50%; width:20px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sni-figure 4s ease-in-out infinite; }
.scn-rochester-inn-yard-saint-nicholas .lantern { position:absolute; bottom:40%; left:35%; width:12px; height:16px; background:#d08040; border-radius:10% 10% 20% 20%; box-shadow: 0 0 20px 6px #a06020, 0 0 40px 12px rgba(160,96,32,0.4); animation: sni-lantern 3s ease-in-out infinite alternate; }
.scn-rochester-inn-yard-saint-nicholas .barrel { position:absolute; bottom:28%; left:20%; width:26px; height:32px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: sni-barrel 8s ease-in-out infinite; }
.scn-rochester-inn-yard-saint-nicholas .dust { position:absolute; bottom:0; left:0; right:0; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(60,50,40,0.3) 0%, transparent 70%); animation: sni-dust 6s ease-in-out infinite alternate; }
@keyframes sni-wall { 0%,100% { opacity:0.8 } 50% { opacity:0.9 } }
@keyframes sni-rope { 0% { transform: translateX(-50%) translateY(0) } 100% { transform: translateX(-50%) translateY(4px) } }
@keyframes sni-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-50%) translateY(-2px) rotate(3deg) } 75% { transform: translateX(-50%) translateY(2px) rotate(-3deg) } }
@keyframes sni-lantern { 0% { box-shadow: 0 0 12px 4px #a06020; opacity:0.8 } 50% { box-shadow: 0 0 30px 10px #d08040; opacity:1 } 100% { box-shadow: 0 0 16px 6px #a06020; opacity:0.9 } }
@keyframes sni-barrel { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } }
@keyframes sni-dust { 0% { opacity:0.2 } 100% { opacity:0.5 } }

/* rochester-inn-yard-fat-gallows */
.scn-rochester-inn-yard-fat-gallows { background: linear-gradient(180deg, #0f0f1f 0%, #1f1f2f 40%, #2f1f1f 100%), radial-gradient(ellipse at 60% 70%, #4a3a2a 0%, transparent 70%); }
.scn-rochester-inn-yard-fat-gallows .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, #0f0f1f 0%, #1a1a2a 100%); animation: fg-night 10s ease-in-out infinite alternate; }
.scn-rochester-inn-yard-fat-gallows .big-gallows { position:absolute; bottom:20%; left:50%; width:120px; height:140px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius:8% 8% 0 0; box-shadow: 0 6px 18px rgba(0,0,0,0.6); }
.scn-rochester-inn-yard-fat-gallows .fat-figure { position:absolute; bottom:18%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; animation: fg-fat 5s ease-in-out infinite; }
.scn-rochester-inn-yard-fat-gallows .noose { position:absolute; bottom:50%; left:50%; width:6px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:3px; animation: fg-noose 2s ease-in-out infinite alternate; }
.scn-rochester-inn-yard-fat-gallows .torch { position:absolute; bottom:35%; left:20%; width:8px; height:16px; background:#c08040; border-radius:40% 40% 20% 20%; box-shadow: 0 0 25px 8px #a06020, 0 0 50px 16px rgba(160,96,32,0.3); animation: fg-torch 3s ease-in-out infinite; }
.scn-rochester-inn-yard-fat-gallows .cobweb { position:absolute; top:10%; right:10%; width:40px; height:40px; background: radial-gradient(circle, rgba(200,200,200,0.1) 0%, transparent 70%); border-radius:50%; filter: blur(2px); animation: fg-cobweb 20s linear infinite; }
@keyframes fg-night { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes fg-fat { 0%,100% { transform: translateX(-50%) scale(1) rotate(0deg) } 25% { transform: translateX(-50%) scale(1.05) rotate(2deg) } 75% { transform: translateX(-50%) scale(0.95) rotate(-2deg) } }
@keyframes fg-noose { 0% { transform: translateX(-50%) translateY(0) } 100% { transform: translateX(-50%) translateY(5px) } }
@keyframes fg-torch { 0% { box-shadow: 0 0 15px 5px #a06020; opacity:0.7 } 50% { box-shadow: 0 0 35px 12px #e0a060; opacity:1 } 100% { box-shadow: 0 0 20px 8px #a06020; opacity:0.8 } }
@keyframes fg-cobweb { 0% { transform: rotate(0deg) scale(0.9) } 50% { transform: rotate(180deg) scale(1.1) } 100% { transform: rotate(360deg) scale(0.9) } }

/* rochester-inn-yard-nobility-burgomasters */
.scn-rochester-inn-yard-nobility-burgomasters { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a2a1a 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%); }
.scn-rochester-inn-yard-nobility-burgomasters .bg-tavern { position:absolute; inset:0; background: linear-gradient(90deg, #1f1f2f 0%, #2f2f3f 50%, #1f1f2f 100%); animation: nb-bg 8s ease-in-out infinite alternate; }
.scn-rochester-inn-yard-nobility-burgomasters .table { position:absolute; bottom:18%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 0 0; transform: perspective(400px) rotateX(30deg); }
.scn-rochester-inn-yard-nobility-burgomasters .mug-a { position:absolute; bottom:30%; left:25%; width:20px; height:30px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:0 0 20% 20%; animation: nb-mug 4s ease-in-out infinite; }
.scn-rochester-inn-yard-nobility-burgomasters .mug-b { position:absolute; bottom:30%; right:25%; width:20px; height:30px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:0 0 20% 20%; animation: nb-mug 4s ease-in-out infinite reverse; }
.scn-rochester-inn-yard-nobility-burgomasters .burgomaster-1 { position:absolute; bottom:25%; left:20%; width:25px; height:50px; background: #2a2a3e; border-radius:40% 40% 20% 20%/60% 60% 20% 20%; animation: nb-figure 6s ease-in-out infinite; }
.scn-rochester-inn-yard-nobility-burgomasters .burgomaster-2 { position:absolute; bottom:25%; left:45%; width:25px; height:55px; background: #2a2a3e; border-radius:40% 40% 20% 20%/60% 60% 20% 20%; animation: nb-figure 6s ease-in-out infinite 0.5s; }
.scn-rochester-inn-yard-nobility-burgomasters .burgomaster-3 { position:absolute; bottom:25%; right:20%; width:25px; height:50px; background: #2a2a3e; border-radius:40% 40% 20% 20%/60% 60% 20% 20%; animation: nb-figure 6s ease-in-out infinite 1s; }
.scn-rochester-inn-yard-nobility-burgomasters .mustache-a { position:absolute; bottom:40%; left:18%; width:30px; height:6px; background: #5a3a2a; border-radius:50% 50% 0 0; transform: rotate(-10deg); animation: nb-mustache 2s ease-in-out infinite; }
.scn-rochester-inn-yard-nobility-burgomasters .mustache-b { position:absolute; bottom:40%; right:18%; width:30px; height:6px; background: #5a3a2a; border-radius:50% 50% 0 0; transform: rotate(10deg); animation: nb-mustache 2s ease-in-out infinite reverse; }
@keyframes nb-bg { 0%,100% { opacity:0.7 } 50% { opacity:0.9 } }
@keyframes nb-mug { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-5px) rotate(5deg) } }
@keyframes nb-figure { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.03) } }
@keyframes nb-mustache { 0%,100% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(-15deg) scaleX(1.1) } }

/* rochester-inn-yard-boots-water */
.scn-rochester-inn-yard-boots-water { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a1a1a 100%), radial-gradient(ellipse at 30% 50%, #2a3a2a 0%, transparent 70%); }
.scn-rochester-inn-yard-boots-water .bg-mud { position:absolute; inset:0; background: linear-gradient(180deg, #0f0f1f 0%, #1f1f2f 70%, #2f1f0f 100%); animation: bw-mud 10s ease-in-out infinite alternate; }
.scn-rochester-inn-yard-boots-water .puddle-1 { position:absolute; bottom:10%; left:20%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(60,80,100,0.3) 0%, transparent 70%); border-radius:50%; animation: bw-puddle 8s ease-in-out infinite; }
.scn-rochester-inn-yard-boots-water .puddle-2 { position:absolute; bottom:8%; right:15%; width:80px; height:15px; background: radial-gradient(ellipse, rgba(60,80,100,0.2) 0%, transparent 70%); border-radius:50%; animation: bw-puddle 8s ease-in-out infinite 2s; }
.scn-rochester-inn-yard-boots-water .boot-left { position:absolute; bottom:12%; left:30%; width:30px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:0 0 30% 30% / 0 0 40% 40%; animation: bw-boot 3s ease-in-out infinite; }
.scn-rochester-inn-yard-boots-water .boot-right { position:absolute; bottom:10%; left:45%; width:30px; height:45px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:0 0 30% 30% / 0 0 40% 40%; animation: bw-boot 3s ease-in-out infinite 1.5s; }
.scn-rochester-inn-yard-boots-water .fern-leaf { position:absolute; bottom:25%; left:55%; width:40px; height:12px; background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%); border-radius:50% 50% 0 0; transform: rotate(-30deg); filter: blur(2px); animation: bw-fern 12s linear infinite; }
.scn-rochester-inn-yard-boots-water .invisible-shimmer { position:absolute; bottom:20%; left:35%; width:50px; height:50px; background: radial-gradient(circle, rgba(200,200,220,0.1) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: bw-shimmer 5s ease-in-out infinite; }
@keyframes bw-mud { 0% { opacity:0.6 } 100% { opacity:0.8 } }
@keyframes bw-puddle { 0%,100% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.1) scaleY(0.9) } }
@keyframes bw-boot { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-4px) rotate(-5deg) } 75% { transform: translateY(3px) rotate(5deg) } }
@keyframes bw-fern { 0% { transform: rotate(-30deg) translateX(0) } 50% { transform: rotate(-25deg) translateX(10px) } 100% { transform: rotate(-30deg) translateX(0) } }
@keyframes bw-shimmer { 0%,100% { opacity:0.1 } 50% { opacity:0.4 } }

.scn-boars-head-tavern-trading-way {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 80%, #d08040 0%, transparent 60%);
}
.scn-boars-head-tavern-trading-way .tavern-wall { position:absolute; inset:0; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); }
.scn-boars-head-tavern-trading-way .fireplace { position:absolute; bottom:20%; left:10%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 100%, #e07030 0%, #802000 50%, #3a1a00 100%); border-radius: 20% 20% 0 0; box-shadow: 0 0 40px 20px rgba(224,112,48,.5); animation: bhtw-fire 3s ease-in-out infinite alternate; }
.scn-boars-head-tavern-trading-way .table { position:absolute; bottom:15%; left:35%; width:40%; height:15%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:10%; transform: perspective(200px) rotateX(20deg); }
.scn-boars-head-tavern-trading-way .figure-hal { position:absolute; bottom:20%; left:38%; width:30px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bhtw-bow 5s ease-in-out infinite; }
.scn-boars-head-tavern-trading-way .figure-falstaff { position:absolute; bottom:18%; left:55%; width:45px; 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: bhtw-wobble 4s ease-in-out infinite; }
.scn-boars-head-tavern-trading-way .tankard { position:absolute; bottom:22%; left:47%; width:12px; height:18px; background: linear-gradient(180deg, #a07040 0%, #603020 100%); border-radius:10% 10% 20% 20%; transform: rotate(10deg); animation: bhtw-drink 6s ease-in-out infinite; }
.scn-boars-head-tavern-trading-way .shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, #0a0000 100%); opacity:.7; }
@keyframes bhtw-fire { 0% { opacity:.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.02); } 100% { opacity:.9; transform: scale(0.98); } }
@keyframes bhtw-bow { 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 bhtw-wobble { 0% { transform: rotate(0deg) scale(1); } 30% { transform: rotate(-3deg) scale(1.02); } 60% { transform: rotate(3deg) scale(0.98); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes bhtw-drink { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }

.scn-boars-head-tavern-whit-faith {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%),
    radial-gradient(ellipse at 30% 60%, #c07030 0%, transparent 70%);
}
.scn-boars-head-tavern-whit-faith .backdrop { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-boars-head-tavern-whit-faith .chair { position:absolute; bottom:15%; left:30%; width:60px; height:80px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: bhwf-chair 7s ease-in-out infinite; }
.scn-boars-head-tavern-whit-faith .figure-king { position:absolute; bottom:25%; left:33%; width:40px; height:60px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bhwf-king 4s ease-in-out infinite; }
.scn-boars-head-tavern-whit-faith .figure-prince { position:absolute; bottom:20%; left:45%; width:30px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bhwf-prince 5s ease-in-out infinite reverse; }
.scn-boars-head-tavern-whit-faith .sceptre { position:absolute; bottom:40%; left:36%; width:4px; height:30px; background: #c07040; border-radius:10%; transform: rotate(-30deg); box-shadow: 0 0 6px 2px rgba(192,112,64,.5); animation: bhwf-sceptre 3s ease-in-out infinite; }
.scn-boars-head-tavern-whit-faith .crown { position:absolute; bottom:52%; left:35%; width:20px; height:10px; background: linear-gradient(90deg, #a08050 0%, #d0a060 50%, #a08050 100%); border-radius:50% 50% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: bhwf-crown 6s ease-in-out infinite; }
@keyframes bhwf-chair { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes bhwf-king { 0% { transform: rotate(0deg) scale(1); } 30% { transform: rotate(-3deg) scale(1.02); } 60% { transform: rotate(3deg) scale(0.98); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes bhwf-prince { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bhwf-sceptre { 0% { transform: rotate(-30deg) scaleY(1); } 50% { transform: rotate(-20deg) scaleY(1.05); } 100% { transform: rotate(-30deg) scaleY(1); } }
@keyframes bhwf-crown { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-boars-head-tavern-joined-stool {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 60%, #a06030 0%, transparent 80%);
}
.scn-boars-head-tavern-joined-stool .stool { position:absolute; bottom:20%; left:50%; width:60px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 50% 50% / 20% 20% 70% 70%; box-shadow: 0 6px 12px rgba(0,0,0,.7); animation: bhjs-stool 8s ease-in-out infinite; }
.scn-boars-head-tavern-joined-stool .crown { position:absolute; bottom:48%; left:50%; width:24px; height:12px; transform:translateX(-50%); background: linear-gradient(90deg, #b09060 0%, #e0c080 50%, #b09060 100%); border-radius:50% 50% 0 0; box-shadow: 0 0 8px 2px rgba(224,192,128,.5); animation: bhjs-crown 4s ease-in-out infinite; }
.scn-boars-head-tavern-joined-stool .dagger { position:absolute; bottom:45%; left:45%; width:4px; height:25px; background: #806050; border-radius:10%; transform: rotate(-40deg); box-shadow: 0 0 4px 1px rgba(128,96,80,.5); animation: bhjs-dagger 3s ease-in-out infinite alternate; }
.scn-boars-head-tavern-joined-stool .firelight { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, rgba(224,112,48,.15), transparent 60%); animation: bhjs-fire 5s ease-in-out infinite alternate; }
.scn-boars-head-tavern-joined-stool .shadow { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, #0a0000 100%); opacity:.8; }
@keyframes bhjs-stool { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 50% { transform: translateX(-50%) rotate(2deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(0deg) scale(1); } }
@keyframes bhjs-crown { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes bhjs-dagger { 0% { transform: rotate(-40deg) translateX(0); } 100% { transform: rotate(-30deg) translateX(3px); } }
@keyframes bhjs-fire { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }

.scn-boars-head-tavern-here-leg {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%),
    radial-gradient(ellipse at 40% 70%, #d08040 0%, transparent 70%);
}
.scn-boars-head-tavern-here-leg .tavern-bg { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-boars-head-tavern-here-leg .figure-falstaff { position:absolute; bottom:15%; left:35%; width:45px; height:70px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bhlg-fig 6s ease-in-out infinite; }
.scn-boars-head-tavern-here-leg .leg { position:absolute; bottom:15%; left:32%; width:8px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 30% 30%; transform-origin: bottom; transform: rotate(20deg); animation: bhlg-leg 4s ease-in-out infinite; }
.scn-boars-head-tavern-here-leg .hand { position:absolute; bottom:40%; left:30%; width:6px; height:14px; background: #5a4a3a; border-radius:50%; transform: rotate(30deg); animation: bhlg-hand 3s ease-in-out infinite alternate; }
.scn-boars-head-tavern-here-leg .figure-queen { position:absolute; bottom:20%; left:55%; width:30px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bhlg-queen 8s ease-in-out infinite; }
.scn-boars-head-tavern-here-leg .teardrop { position:absolute; bottom:45%; left:60%; width:4px; height:6px; background: rgba(200,180,160,.6); border-radius:50% 50% 20% 20%; animation: bhlg-tear 5s linear infinite; }
@keyframes bhlg-fig { 0% { transform: rotate(0deg) scale(1); } 25% { transform: rotate(-5deg) scale(1.02); } 50% { transform: rotate(5deg) scale(0.98); } 75% { transform: rotate(-3deg) scale(1.01); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes bhlg-leg { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(30deg) translateY(-3px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes bhlg-hand { 0% { transform: rotate(30deg) translateX(0); } 100% { transform: rotate(45deg) translateX(2px); } }
@keyframes bhlg-queen { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bhlg-tear { 0% { transform: translateY(0) scale(1); opacity:.8; } 50% { transform: translateY(10px) scale(0.8); opacity:.4; } 100% { transform: translateY(20px) scale(0.5); opacity:0; } }

/* rebel-camp-second-messenger */
.scn-rebel-camp-second-messenger {
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 50%, #2a2a3a 100%),
              radial-gradient(ellipse at 30% 50%, #5a5a6a 0%, transparent 60%);
}
.scn-rebel-camp-second-messenger .tent-bg {
  position:absolute; inset:5% 10% 20% 10%; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: inset 0 0 40px rgba(0,0,0,.5);
  animation: rcm-tent 8s ease-in-out infinite alternate;
}
.scn-rebel-camp-second-messenger .tent-pole {
  position:absolute; top:5%; left:42%; width:4px; height:55%; background: linear-gradient(180deg, #6a5a4a, #3a2a1a);
  transform: rotate(-2deg); animation: rcm-pole 10s ease-in-out infinite;
}
.scn-rebel-camp-second-messenger .tent-flap {
  position:absolute; top:30%; left:20%; width:60%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 20% 20%; clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
  animation: rcm-flap 6s ease-in-out infinite alternate;
}
.scn-rebel-camp-second-messenger .messenger {
  position:absolute; bottom:15%; left:30%; width:22px; height:40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rcm-walk 4s ease-in-out infinite;
}
.scn-rebel-camp-second-messenger .sword {
  position:absolute; bottom:18%; left:27%; width:4px; height:30px;
  background: linear-gradient(180deg, #8a7a6a, #5a4a3a);
  transform: rotate(25deg); border-radius: 2px;
  animation: rcm-sword 5s ease-in-out infinite;
}
.scn-rebel-camp-second-messenger .ground {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 0 0 10% 10%;
}
@keyframes rcm-tent { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes rcm-pole { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes rcm-flap { 0% { clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); } 50% { clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%); } 100% { clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); } }
@keyframes rcm-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-2deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes rcm-sword { 0% { transform: rotate(25deg) scaleY(1); } 50% { transform: rotate(35deg) scaleY(1.05); } 100% { transform: rotate(25deg) scaleY(1); } }

/* rebel-camp-hotspur-final-speech */
.scn-rebel-camp-hotspur-final-speech {
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a4a 50%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 0%, #a09070 0%, transparent 70%);
}
.scn-rebel-camp-hotspur-final-speech .sky-bg {
  position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #a09870 0%, #7a6a4a 100%);
  animation: rh-sky 12s ease-in-out infinite alternate;
}
.scn-rebel-camp-hotspur-final-speech .hills-embrace {
  position:absolute; bottom:35%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
  animation: rh-hills 18s ease-in-out infinite alternate;
}
.scn-rebel-camp-hotspur-final-speech .hotspur {
  position:absolute; bottom:20%; left:38%; width:24px; height:45px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg);
  animation: rh-embrace 4s ease-in-out infinite;
}
.scn-rebel-camp-hotspur-final-speech .douglas {
  position:absolute; bottom:20%; left:50%; width:24px; height:45px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg);
  animation: rh-embrace 4s ease-in-out infinite reverse;
}
.scn-rebel-camp-hotspur-final-speech .banner {
  position:absolute; bottom:30%; left:42%; width:6px; height:50px;
  background: #7a5a3a; transform: rotate(-15deg); transform-origin: bottom;
  animation: rh-banner 6s ease-in-out infinite;
}
.scn-rebel-camp-hotspur-final-speech .banner::after {
  content:''; position:absolute; top:-8px; left:-2px; width:20px; height:14px;
  background: linear-gradient(180deg, #b07040 0%, #8a5a3a 100%); border-radius: 0 40% 40% 0;
}
.scn-rebel-camp-hotspur-final-speech .horn {
  position:absolute; bottom:24%; left:60%; width:16px; height:8px;
  background: linear-gradient(90deg, #6a5a3a, #4a3a1a); border-radius: 50% / 100% 100% 0 0;
  transform: rotate(20deg); animation: rh-horn 3s ease-in-out infinite alternate;
}
.scn-rebel-camp-hotspur-final-speech .ground-embrace {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
}
@keyframes rh-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes rh-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes rh-embrace { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(2deg) translateX(-4px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes rh-banner { 0% { transform: rotate(-15deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(-15deg); } }
@keyframes rh-horn { 0% { transform: rotate(20deg) scaleX(1); } 50% { transform: rotate(10deg) scaleX(1.2); } 100% { transform: rotate(20deg) scaleX(1); } }

/* plain-camp-blunt-name */
.scn-plain-camp-blunt-name {
  background: linear-gradient(180deg, #a0b0c0 0%, #8098b0 50%, #6080a0 100%),
              radial-gradient(ellipse at 50% 100%, #b0c0d0 0%, transparent 80%);
}
.scn-plain-camp-blunt-name .sun-bg {
  position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #c0d0e0 0%, #a0b0c0 100%);
  animation: pbn-sky 10s ease-in-out infinite alternate;
}
.scn-plain-camp-blunt-name .ground-plain {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #7a8a6a 0%, #5a6a4a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-plain-camp-blunt-name .douglas-fig {
  position:absolute; bottom:18%; left:45%; width:26px; height:48px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-8deg);
  box-shadow: -8px 0 10px rgba(0,0,0,.3);
  animation: pbn-douglas 6s ease-in-out infinite;
}
.scn-plain-camp-blunt-name .blunt-fig {
  position:absolute; bottom:18%; left:30%; width:24px; height:46px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg) scaleX(-1);
  box-shadow: 8px 0 10px rgba(0,0,0,.3);
  animation: pbn-blunt 6s ease-in-out infinite;
}
.scn-plain-camp-blunt-name .sword-d {
  position:absolute; bottom:22%; left:40%; width:4px; height:32px;
  background: linear-gradient(180deg, #b0a090, #706050);
  transform: rotate(-20deg); border-radius: 2px;
  animation: pbn-sword 3s ease-in-out infinite alternate;
}
.scn-plain-camp-blunt-name .shadow-d {
  position:absolute; bottom:16%; left:44%; width:20px; height:6px;
  background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(3px);
  animation: pbn-shadow 6s ease-in-out infinite;
}
.scn-plain-camp-blunt-name .shadow-b {
  position:absolute; bottom:16%; left:28%; width:20px; height:6px;
  background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(3px);
  animation: pbn-shadow 6s ease-in-out infinite reverse;
}
@keyframes pbn-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes pbn-douglas { 0% { transform: rotate(-8deg) translateX(0); } 50% { transform: rotate(-12deg) translateX(5px); } 100% { transform: rotate(-8deg) translateX(0); } }
@keyframes pbn-blunt { 0% { transform: rotate(10deg) scaleX(-1) translateX(0); } 50% { transform: rotate(15deg) scaleX(-1) translateX(-5px); } 100% { transform: rotate(10deg) scaleX(-1) translateX(0); } }
@keyframes pbn-sword { 0% { transform: rotate(-20deg) scaleY(1); } 50% { transform: rotate(-30deg) scaleY(1.1); } 100% { transform: rotate(-20deg) scaleY(1); } }
@keyframes pbn-shadow { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.5; transform: scaleX(1.5); } 100% { opacity:0.3; transform: scaleX(1); } }

/* plain-camp-blunt-yielder */
.scn-plain-camp-blunt-yielder {
  background: linear-gradient(180deg, #a0b0c0 0%, #8098b0 50%, #6080a0 100%),
              radial-gradient(ellipse at 50% 100%, #b0c0d0 0%, transparent 80%);
}
.scn-plain-camp-blunt-yielder .sun-bg {
  position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #c0d0e0 0%, #a0b0c0 100%);
  animation: pby-sky 8s ease-in-out infinite alternate;
}
.scn-plain-camp-blunt-yielder .ground-plain {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #7a8a6a 0%, #5a6a4a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-plain-camp-blunt-yielder .douglas-strike {
  position:absolute; bottom:20%; left:50%; width:26px; height:50px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-15deg);
  animation: pby-douglas 3s ease-in-out infinite;
}
.scn-plain-camp-blunt-yielder .blunt-fall {
  position:absolute; bottom:10%; left:35%; width:24px; height:40px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(80deg) scaleX(-1);
  animation: pby-blunt 4s ease-in-out infinite;
}
.scn-plain-camp-blunt-yielder .sword-strike {
  position:absolute; bottom:22%; left:40%; width:4px; height:35px;
  background: linear-gradient(180deg, #a09080, #706050);
  transform: rotate(-45deg); border-radius: 2px;
  animation: pby-sword 2s ease-in-out infinite alternate;
}
.scn-plain-camp-blunt-yielder .blood-stain {
  position:absolute; bottom:12%; left:34%; width:12px; height:8px;
  background: radial-gradient(ellipse, #7a2a1a 0%, transparent 70%);
  border-radius: 50%; filter: blur(2px);
  animation: pby-blood 5s ease-in-out infinite;
}
.scn-plain-camp-blunt-yielder .shadow-strike {
  position:absolute; bottom:15%; left:48%; width:22px; height:8px;
  background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(4px);
  animation: pby-shadow 3s ease-in-out infinite;
}
@keyframes pby-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes pby-douglas { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-20deg) translateY(-3px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes pby-blunt { 0% { transform: rotate(80deg) scaleX(-1) translateX(0); } 50% { transform: rotate(90deg) scaleX(-1) translateX(8px); } 100% { transform: rotate(80deg) scaleX(-1) translateX(0); } }
@keyframes pby-sword { 0% { transform: rotate(-45deg) scaleY(1); } 50% { transform: rotate(-55deg) scaleY(1.15); } 100% { transform: rotate(-45deg) scaleY(1); } }
@keyframes pby-blood { 0% { opacity:0.2; transform: scale(0.8); } 50% { opacity:0.6; transform: scale(1.2); } 100% { opacity:0.2; transform: scale(0.8); } }
@keyframes pby-shadow { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.3); } 100% { opacity:0.3; transform: scaleX(1); } }

/* Boar's Head Tavern – Titan Butter (btb) */
.scn-boars-head-tavern-titan-butter {
  background: radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, #1a1208 80%), linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
}
.scn-boars-head-tavern-titan-butter .fire-glow {
  position: absolute; bottom: 20%; left: 20%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 100%, #e8a040 0%, rgba(232,160,64,0) 70%);
  animation: btb-fire 3s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-titan-butter .table {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 50% 50% / 30% 30% 20% 20%;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.6);
}
.scn-boars-head-tavern-titan-butter .butter-dish {
  position: absolute; bottom: 28%; left: 50%; width: 50px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c89060 0%, #8a6040 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-boars-head-tavern-titan-butter .butter-glint {
  position: absolute; bottom: 34%; left: 50%; width: 30px; height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0d060 0%, rgba(240,208,96,0) 70%);
  animation: btb-melt 4s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-titan-butter .titan-torso {
  position: absolute; bottom: 30%; left: 38%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: btb-rock 6s ease-in-out infinite;
}
.scn-boars-head-tavern-titan-butter .titan-arm {
  position: absolute; bottom: 35%; left: 42%; width: 50px; height: 70px;
  transform-origin: top left;
  background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 30% 30%;
  animation: btb-reach 5s ease-in-out infinite;
}
.scn-boars-head-tavern-titan-butter .mug {
  position: absolute; bottom: 22%; right: 25%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2212 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 2px 4px 6px rgba(0,0,0,0.4);
}
@keyframes btb-fire { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.7; transform: scaleY(0.95); } }
@keyframes btb-melt { 0% { height: 12px; opacity: 0.8; } 50% { height: 16px; opacity: 1; } 100% { height: 10px; opacity: 0.6; } }
@keyframes btb-rock { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes btb-reach { 0% { transform: rotate(-20deg) translateX(-10px); } 50% { transform: rotate(-10deg) translateX(-5px); } 100% { transform: rotate(-30deg) translateX(-15px); } }

/* Boar's Head Tavern – Lime Sack (btl) */
.scn-boars-head-tavern-lime-sack {
  background: radial-gradient(ellipse at 60% 50%, #2a1a0a 0%, #0e0804 100%);
}
.scn-boars-head-tavern-lime-sack .wall-shadow {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(0,0,0,0.4) 0%, transparent 60%);
}
.scn-boars-head-tavern-lime-sack .sack {
  position: absolute; bottom: 10%; left: 30%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2212 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.5);
  animation: btl-sway 8s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-lime-sack .lime-spill {
  position: absolute; bottom: 8%; left: 35%; width: 20px; height: 12px;
  background: radial-gradient(circle at 30% 50%, #7a8a3a 0%, #4a5a1a 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: btl-sparkle 3s ease-in-out infinite;
}
.scn-boars-head-tavern-lime-sack .cup {
  position: absolute; bottom: 20%; right: 30%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 2px 4px 6px rgba(0,0,0,0.5);
}
.scn-boars-head-tavern-lime-sack .flagon {
  position: absolute; bottom: 18%; left: 55%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(-10deg);
}
.scn-boars-head-tavern-lime-sack .rogue-hand {
  position: absolute; bottom: 25%; left: 45%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 50% 30% 30% 50%;
  animation: btl-grab 4s ease-in-out infinite;
}
@keyframes btl-sway { 0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-1deg); } }
@keyframes btl-sparkle { 0%,100% { opacity: 0.3; } 50% { opacity: 0.9; } }
@keyframes btl-grab { 0% { transform: translate(0,0); } 50% { transform: translate(10px,-5px); } 100% { transform: translate(0,0); } }

/* Boar's Head Tavern – Beat out Kingdom (btk) */
.scn-boars-head-tavern-beat-out-kingdom {
  background: radial-gradient(ellipse at 40% 70%, #2a1a0a 0%, #0e0804 100%);
}
.scn-boars-head-tavern-beat-out-kingdom .tavern-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-boars-head-tavern-beat-out-kingdom .falstaff-body {
  position: absolute; bottom: 25%; left: 20%; width: 100px; height: 130px;
  background: radial-gradient(circle at 50% 30%, #5a3a2a 0%, #3a2212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: btk-wobble 6s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-beat-out-kingdom .falstaff-head {
  position: absolute; bottom: 60%; left: 26%; width: 50px; height: 40px;
  background: radial-gradient(circle, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50%;
  animation: btk-shake 3s ease-in-out infinite;
}
.scn-boars-head-tavern-beat-out-kingdom .dagger-lath {
  position: absolute; bottom: 40%; left: 28%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: btk-stab 4s ease-in-out infinite;
}
.scn-boars-head-tavern-beat-out-kingdom .subject-a {
  position: absolute; bottom: 15%; right: 25%; width: 20px; height: 30px;
  background: #2a1a0a;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: btk-run-a 5s ease-in-out infinite;
}
.scn-boars-head-tavern-beat-out-kingdom .subject-b {
  position: absolute; bottom: 12%; right: 35%; width: 18px; height: 28px;
  background: #2a1a0a;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: btk-run-b 5s ease-in-out infinite 1s;
}
.scn-boars-head-tavern-beat-out-kingdom .subject-c {
  position: absolute; bottom: 18%; right: 45%; width: 16px; height: 26px;
  background: #2a1a0a;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: btk-run-c 5s ease-in-out infinite 2s;
}
@keyframes btk-wobble { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }
@keyframes btk-shake { 0% { transform: rotate(0deg); } 25% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 75% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes btk-stab { 0% { transform: rotate(15deg); } 50% { transform: rotate(25deg); } 100% { transform: rotate(15deg); } }
@keyframes btk-run-a { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-30px) scale(1.1); } 100% { transform: translateX(0) scale(1); } }
@keyframes btk-run-b { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-25px) scale(1.05); } 100% { transform: translateX(0) scale(1); } }
@keyframes btk-run-c { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-20px) scale(0.95); } 100% { transform: translateX(0) scale(1); } }

/* Boar's Head Tavern – Stab Threat (bts) */
.scn-boars-head-tavern-stab-threat {
  background: radial-gradient(ellipse at 70% 60%, #2a1a0a 0%, #0e0804 100%);
}
.scn-boars-head-tavern-stab-threat .back-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, transparent 70%);
}
.scn-boars-head-tavern-stab-threat .fat-paunch {
  position: absolute; bottom: 20%; left: 30%; width: 90px; height: 120px;
  background: radial-gradient(circle at 50% 40%, #5a3a2a 0%, #3a2212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bts-sway 7s ease-in-out infinite;
}
.scn-boars-head-tavern-stab-threat .stab-arm {
  position: absolute; bottom: 35%; left: 25%; width: 40px; height: 60px;
  transform-origin: right bottom;
  background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 100%);
  border-radius: 30% 40% 40% 30%;
  animation: bts-thrust 4s ease-in-out infinite;
}
.scn-boars-head-tavern-stab-threat .dagger-point {
  position: absolute; bottom: 48%; left: 18%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(30deg);
  transform-origin: bottom center;
  animation: bts-stab 4s ease-in-out infinite;
}
.scn-boars-head-tavern-stab-threat .coward-figure {
  position: absolute; bottom: 10%; right: 25%; width: 25px; height: 35px;
  background: #2a1a0a;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: bts-cower 5s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-stab-threat .table {
  position: absolute; bottom: 8%; left: 15%; right: 15%; height: 18%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 50% 50% / 30% 30% 20% 20%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.6);
}
@keyframes bts-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes bts-thrust { 0% { transform: rotate(30deg); } 50% { transform: rotate(50deg); } 100% { transform: rotate(30deg); } }
@keyframes bts-stab { 0% { transform: rotate(30deg) scaleY(1); } 50% { transform: rotate(50deg) scaleY(1.2); } 100% { transform: rotate(30deg) scaleY(1); } }
@keyframes bts-cower { 0% { transform: scale(1); } 50% { transform: scale(0.9) translateY(2px); } 100% { transform: scale(1); } }

/* boars-head-tavern-six-seven-fresh */
.scn-boars-head-tavern-six-seven-fresh { background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 50%, #2a0a00 100%), radial-gradient(ellipse at 50% 30%, #6a3a1a 0%, transparent 60%); }
.scn-boars-head-tavern-six-seven-fresh .wall { position:absolute; inset: 0 0 30% 0; background: linear-gradient(90deg, #5a3a2a 0%, #4a2a1a 30%, #5a3a2a 70%, #4a2a1a 100%); animation: bht1-wall 20s ease-in-out infinite; }
.scn-boars-head-tavern-six-seven-fresh .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-top: 4px solid #4a3a2a; }
.scn-boars-head-tavern-six-seven-fresh .table { position:absolute; bottom:25%; left:20%; width:60%; height:10%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.6); }
.scn-boars-head-tavern-six-seven-fresh .mug { position:absolute; bottom:30%; width:12px; height:18px; background: linear-gradient(180deg, #b08060 0%, #8a6040 100%); border-radius: 2px; }
.scn-boars-head-tavern-six-seven-fresh .mug-1 { left:30%; animation: bht1-mug 5s ease-in-out infinite; }
.scn-boars-head-tavern-six-seven-fresh .mug-2 { left:55%; animation: bht1-mug 5s ease-in-out infinite reverse; }
.scn-boars-head-tavern-six-seven-fresh .figure { position:absolute; bottom:10%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-boars-head-tavern-six-seven-fresh .figure-a { left:25%; animation: bht1-talk 4s ease-in-out infinite; }
.scn-boars-head-tavern-six-seven-fresh .figure-b { left:45%; animation: bht1-talk 4s ease-in-out infinite 0.5s; }
.scn-boars-head-tavern-six-seven-fresh .figure-c { left:65%; animation: bht1-talk 4s ease-in-out infinite 1s; }
.scn-boars-head-tavern-six-seven-fresh .hearth-glow { position:absolute; bottom:5%; left:10%; width:40%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(255,180,80,0.3) 0%, transparent 70%); filter: blur(8px); animation: bht1-glow 3s ease-in-out infinite alternate; }
@keyframes bht1-wall { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes bht1-mug { 0% { transform: rotate(0deg); } 25% { transform: rotate(-10deg) translateY(-2px); } 50% { transform: rotate(5deg); } 75% { transform: rotate(-5deg) translateY(-1px); } 100% { transform: rotate(0deg); } }
@keyframes bht1-talk { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(8deg); } 50% { transform: translateY(0) rotate(-5deg); } 75% { transform: translateY(-2px) rotate(3deg); } }
@keyframes bht1-glow { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(0.9); } }

/* boars-head-tavern-murdered-them */
.scn-boars-head-tavern-murdered-them { background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 50%, #2a0a00 100%), radial-gradient(ellipse at 50% 30%, #6a3a1a 0%, transparent 60%); }
.scn-boars-head-tavern-murdered-them .wall { position:absolute; inset: 0 0 30% 0; background: linear-gradient(90deg, #5a3a2a 0%, #4a2a1a 30%, #5a3a2a 70%, #4a2a1a 100%); }
.scn-boars-head-tavern-murdered-them .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-top: 4px solid #4a3a2a; }
.scn-boars-head-tavern-murdered-them .table { position:absolute; bottom:25%; left:40%; width:30%; height:10%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.6); }
.scn-boars-head-tavern-murdered-them .mug { position:absolute; bottom:30%; left:50%; width:12px; height:18px; background: linear-gradient(180deg, #b08060 0%, #8a6040 100%); border-radius: 2px; animation: bht2-mug 5s ease-in-out infinite; }
.scn-boars-head-tavern-murdered-them .figure { position:absolute; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-boars-head-tavern-murdered-them .speaker { bottom:10%; left:35%; transform-origin: bottom center; animation: bht2-speaker 4s ease-in-out infinite; }
.scn-boars-head-tavern-murdered-them .fallen-a { bottom:5%; left:20%; width:30px; height:20px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 30% 30% 50% 50%; transform: rotate(-30deg); animation: bht2-fallen 6s ease-in-out infinite; }
.scn-boars-head-tavern-murdered-them .fallen-b { bottom:5%; left:55%; width:30px; height:20px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 30% 30% 50% 50%; transform: rotate(20deg); animation: bht2-fallen 6s ease-in-out infinite 2s; }
.scn-boars-head-tavern-murdered-them .fire { position:absolute; bottom:2%; left:15%; width:40px; height:60px; background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #ff6020 40%, transparent 70%); filter: blur(6px); animation: bht2-fire 3s ease-in-out infinite alternate; }
@keyframes bht2-mug { 0% { transform: rotate(0deg); } 25% { transform: rotate(-15deg) translateY(-3px); } 50% { transform: rotate(5deg); } 75% { transform: rotate(-10deg); } 100% { transform: rotate(0deg); } }
@keyframes bht2-speaker { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(15deg); } 50% { transform: translateY(0) rotate(-8deg); } 75% { transform: translateY(-3px) rotate(10deg); } }
@keyframes bht2-fallen { 0%,100% { transform: rotate(-30deg) translateX(0); } 50% { transform: rotate(-20deg) translateX(5px); } }
@keyframes bht2-fire { 0% { opacity:0.6; transform: scaleY(0.9); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.7; transform: scaleY(0.95); } }

/* boars-head-tavern-four-but-two */
.scn-boars-head-tavern-four-but-two { background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 50%, #2a0a00 100%), radial-gradient(ellipse at 50% 30%, #6a3a1a 0%, transparent 60%); }
.scn-boars-head-tavern-four-but-two .wall { position:absolute; inset: 0 0 30% 0; background: linear-gradient(90deg, #5a3a2a 0%, #4a2a1a 30%, #5a3a2a 70%, #4a2a1a 100%); }
.scn-boars-head-tavern-four-but-two .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-top: 4px solid #4a3a2a; }
.scn-boars-head-tavern-four-but-two .table { position:absolute; bottom:25%; left:10%; width:45%; height:12%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.6); }
.scn-boars-head-tavern-four-but-two .figure { position:absolute; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-boars-head-tavern-four-but-two .target-man { bottom:10%; left:50%; animation: bht3-target 5s ease-in-out infinite; }
.scn-boars-head-tavern-four-but-two .attacker-a { bottom:10%; left:20%; animation: bht3-attack 4s ease-in-out infinite; }
.scn-boars-head-tavern-four-but-two .attacker-b { bottom:10%; left:70%; animation: bht3-attack 4s ease-in-out infinite 0.5s; }
.scn-boars-head-tavern-four-but-two .attacker-c { bottom:10%; left:30%; animation: bht3-attack 4s ease-in-out infinite 1s; }
.scn-boars-head-tavern-four-but-two .attacker-d { bottom:10%; left:60%; animation: bht3-attack 4s ease-in-out infinite 1.5s; }
.scn-boars-head-tavern-four-but-two .fire { position:absolute; bottom:2%; right:10%; width:50px; height:70px; background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #ff6020 40%, transparent 70%); filter: blur(8px); animation: bht3-fire 4s ease-in-out infinite alternate; }
@keyframes bht3-target { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-10px) rotate(-10deg); } 50% { transform: translateX(5px) rotate(5deg); } 75% { transform: translateX(-5px) rotate(-5deg); } }
@keyframes bht3-attack { 0%,100% { transform: translateX(0) scaleX(1); } 25% { transform: translateX(-15px) scaleX(0.8); } 50% { transform: translateX(10px) scaleX(1.1); } 75% { transform: translateX(-10px) scaleX(0.9); } }
@keyframes bht3-fire { 0% { opacity:0.5; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.15); } 100% { opacity:0.6; transform: scale(0.95); } }

/* boars-head-tavern-eleven-buckram */
.scn-boars-head-tavern-eleven-buckram { background: linear-gradient(180deg, #4a2a1a 0%, #1a0a00 60%, #0a0000 100%), radial-gradient(ellipse at 50% 20%, #6a3a1a 0%, transparent 50%); }
.scn-boars-head-tavern-eleven-buckram .wall { position:absolute; inset: 0 0 30% 0; background: linear-gradient(90deg, #5a3a2a 0%, #4a2a1a 30%, #5a3a2a 70%, #4a2a1a 100%); }
.scn-boars-head-tavern-eleven-buckram .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-top: 4px solid #4a3a2a; }
.scn-boars-head-tavern-eleven-buckram .table { position:absolute; bottom:25%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.6); }
.scn-boars-head-tavern-eleven-buckram .figure { position:absolute; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-boars-head-tavern-eleven-buckram .falstaff { bottom:12%; left:35%; transform-origin: bottom center; animation: bht4-falstaff 4s ease-in-out infinite; }
.scn-boars-head-tavern-eleven-buckram .hal { bottom:12%; left:55%; transform-origin: bottom center; animation: bht4-hal 4s ease-in-out infinite 1s; }
.scn-boars-head-tavern-eleven-buckram .buckram { position:absolute; bottom:15%; width:14px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 40% 40%; opacity:0.7; }
.scn-boars-head-tavern-eleven-buckram .buckram-1 { left:10%; animation: bht4-buckram 8s linear infinite; }
.scn-boars-head-tavern-eleven-buckram .buckram-2 { left:70%; animation: bht4-buckram 8s linear infinite 2s; }
.scn-boars-head-tavern-eleven-buckram .buckram-3 { left:85%; animation: bht4-buckram 8s linear infinite 4s; }
.scn-boars-head-tavern-eleven-buckram .fire { position:absolute; bottom:2%; left:10%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #ff6020 30%, transparent 70%); filter: blur(10px); animation: bht4-fire 3s ease-in-out infinite alternate; }
@keyframes bht4-falstaff { 0%,100% { transform: translateY(0) rotate(0deg) scaleX(1); } 25% { transform: translateY(-6px) rotate(15deg) scaleX(1.1); } 50% { transform: translateY(0) rotate(-10deg) scaleX(0.9); } 75% { transform: translateY(-3px) rotate(8deg) scaleX(1.05); } }
@keyframes bht4-hal { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(-12deg); } 50% { transform: translateY(0) rotate(8deg); } 75% { transform: translateY(-2px) rotate(-6deg); } }
@keyframes bht4-buckram { 0% { transform: translateY(0) scaleY(1); opacity:0.7; } 25% { transform: translateY(-8px) scaleY(1.1); opacity:1; } 50% { transform: translateY(0) scaleY(0.9); opacity:0.8; } 75% { transform: translateY(-5px) scaleY(1.05); opacity:0.9; } 100% { transform: translateY(0) scaleY(1); opacity:0.7; } }
@keyframes bht4-fire { 0% { opacity:0.4; transform: scaleY(0.8); } 50% { opacity:0.9; transform: scaleY(1.2); } 100% { opacity:0.5; transform: scaleY(0.9); } }

/* london-palace-worcester-blame */
.scn-london-palace-worcester-blame { background: linear-gradient(180deg, #f0e6d0 0%, #d8c8a0 40%, #b09870 100%), radial-gradient(ellipse at 60% 20%, #ffe0b0 0%, transparent 60%); }
.scn-london-palace-worcester-blame .throne { position:absolute; bottom:20%; left:15%; width:120px; height:100px; background: linear-gradient(135deg, #8a6a40, #5a3a20); border-radius: 10% 10% 30% 30%; box-shadow: 0 8px 20px rgba(0,0,0,.6); animation: tns-wb 10s ease-in-out infinite; }
.scn-london-palace-worcester-blame .king-figure { position:absolute; bottom:28%; left:18%; width:40px; height:80px; background: linear-gradient(180deg, #4a3030 0%, #2a1818 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fig-wb 4s ease-in-out infinite alternate; }
.scn-london-palace-worcester-blame .worcester-figure { position:absolute; bottom:28%; left:58%; width:36px; height:76px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fig-wb 3.6s ease-in-out infinite alternate-reverse; }
.scn-london-palace-worcester-blame .column-left { position:absolute; bottom:0; left:2%; width:30px; height:90%; background: linear-gradient(90deg, #c8b898, #a08870); box-shadow: inset -4px 0 10px rgba(0,0,0,.3); animation: none; }
.scn-london-palace-worcester-blame .column-right { position:absolute; bottom:0; right:2%; width:30px; height:90%; background: linear-gradient(90deg, #a08870, #c8b898); box-shadow: inset 4px 0 10px rgba(0,0,0,.3); animation: none; }
.scn-london-palace-worcester-blame .window { position:absolute; top:10%; right:10%; width:80px; height:100px; background: radial-gradient(ellipse at center, #fff0d0 0%, #e8d0a0 60%, #b09870 100%); border: 4px solid #5a3a20; border-radius: 4px; animation: glow-wb 2s ease-in-out infinite alternate; }
.scn-london-palace-worcester-blame .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.3) 100%); animation: shad-wb 5s ease-in-out infinite; }
@keyframes tns-wb { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes fig-wb { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(2px) rotate(0deg) } 100% { transform: translateX(-1px) rotate(2deg) } }
@keyframes glow-wb { 0% { opacity:.7; box-shadow: 0 0 20px 5px #e8d0a0 } 50% { opacity:1; box-shadow: 0 0 40px 12px #ffd080 } 100% { opacity:.8; box-shadow: 0 0 25px 6px #e8d0a0 } }
@keyframes shad-wb { 0%,100% { opacity:.4 } 50% { opacity:.6 } }

/* london-palace-king-summons */
.scn-london-palace-king-summons { background: linear-gradient(180deg, #f5eedd 0%, #e0d0b0 50%, #c0a880 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 70%); }
.scn-london-palace-king-summons .table { position:absolute; bottom:20%; left:25%; width:200px; height:30px; background: linear-gradient(180deg, #8a6a40, #6a4a2a); border-radius: 10px; box-shadow: 0 6px 12px rgba(0,0,0,.3); animation: none; }
.scn-london-palace-king-summons .king { position:absolute; bottom:32%; left:30%; width:44px; height:90px; background: linear-gradient(180deg, #4a3030 0%, #2a1818 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fig-ks 8s ease-in-out infinite; }
.scn-london-palace-king-summons .counselor { position:absolute; bottom:30%; left:52%; width:38px; height:78px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fig-ks 9s ease-in-out infinite reverse; }
.scn-london-palace-king-summons .window { position:absolute; top:8%; right:12%; width:90px; height:120px; background: radial-gradient(ellipse at center, #fff0d0 0%, #e8d0a0 60%, #b09870 100%); border: 4px solid #5a3a20; border-radius: 4px; animation: glow-ks 12s ease-in-out infinite; }
.scn-london-palace-king-summons .tapestry { position:absolute; top:5%; left:5%; width:60px; height:80px; background: linear-gradient(135deg, #704020 0%, #503020 100%); border-radius: 4px; animation: sway-ks 15s ease-in-out infinite alternate; }
.scn-london-palace-king-summons .candle-stand { position:absolute; bottom:22%; left:20%; width:8px; height:40px; background: #4a3a2a; border-radius: 2px; animation: none; }
.scn-london-palace-king-summons .candle-stand::after { content:''; position:absolute; top:-4px; left:-2px; width:12px; height:12px; background: radial-gradient(circle, #ffd080 0%, #ffa040 100%); border-radius: 50%; animation: flame-ks 3s ease-in-out infinite alternate; }
@keyframes fig-ks { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes glow-ks { 0%,100% { opacity:.85 } 50% { opacity:1 } }
@keyframes sway-ks { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes flame-ks { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.1) translateY(-2px) } 100% { transform: scaleY(0.9) translateY(1px) } }

/* london-palace-westmoreland-departure */
.scn-london-palace-westmoreland-departure { background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a0 40%, #b0a080 100%), radial-gradient(ellipse at 40% 50%, #fff0d0 0%, transparent 60%); }
.scn-london-palace-westmoreland-departure .prince { position:absolute; bottom:30%; left:30%; width:40px; height:82px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fig-wd 12s ease-in-out infinite; }
.scn-london-palace-westmoreland-departure .falstaff { position:absolute; bottom:15%; left:55%; width:80px; height:70px; background: radial-gradient(ellipse at 50% 40%, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; animation: belly-wd 6s ease-in-out infinite; }
.scn-london-palace-westmoreland-departure .bench { position:absolute; bottom:18%; left:50%; width:120px; height:12px; background: linear-gradient(90deg, #6a4a2a, #5a3a1a); border-radius: 4px; transform: translateX(-50%); animation: none; }
.scn-london-palace-westmoreland-departure .window { position:absolute; top:5%; right:5%; width:100px; height:130px; background: radial-gradient(ellipse at center, #fff0d0 0%, #e0c8a0 70%); border: 4px solid #5a3a20; border-radius: 4px; animation: glow-wd 15s ease-in-out infinite; }
.scn-london-palace-westmoreland-departure .table { position:absolute; bottom:22%; left:20%; width:80px; height:20px; background: linear-gradient(180deg, #8a6a40, #6a4a2a); border-radius: 4px; animation: none; }
.scn-london-palace-westmoreland-departure .goblet { position:absolute; bottom:26%; left:22%; width:14px; height:18px; background: #b09870; border-radius: 0 0 6px 6px; animation: none; }
.scn-london-palace-westmoreland-departure .goblet::after { content:''; position:absolute; top:-4px; left:2px; width:10px; height:6px; background: #c8b898; border-radius: 50%; }
@keyframes fig-wd { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-3px) } }
@keyframes belly-wd { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } }
@keyframes glow-wd { 0%,100% { opacity:.8 } 50% { opacity:1 } }

/* prince-apartment-time-jest */
.scn-prince-apartment-time-jest { background: linear-gradient(180deg, #2a2020 0%, #3a2a20 50%, #1a1212 100%), radial-gradient(ellipse at 50% 80%, #4a3a30 0%, transparent 70%); }
.scn-prince-apartment-time-jest .table { position:absolute; bottom:15%; left:15%; width:180px; height:28px; background: linear-gradient(180deg, #5a3a2a, #4a2a1a); border-radius: 8px; animation: none; }
.scn-prince-apartment-time-jest .clock { position:absolute; top:25%; left:30%; width:60px; height:60px; background: radial-gradient(circle, #8a7a5a 0%, #6a5a3a 100%); border: 4px solid #4a3a2a; border-radius: 50%; animation: spin-j 20s linear infinite; }
.scn-prince-apartment-time-jest .clock::after { content:''; position:absolute; top:50%; left:50%; width:4px; height:20px; background: #2a1a1a; transform-origin: bottom center; transform: translate(-50%, -100%) rotate(45deg); animation: tick-j 10s steps(60) infinite; }
.scn-prince-apartment-time-jest .cup-sack { position:absolute; bottom:22%; left:30%; width:20px; height:24px; background: #8a6a40; border-radius: 0 0 8px 8px; animation: wobble-j 3s ease-in-out infinite alternate; }
.scn-prince-apartment-time-jest .cup-sack::after { content:''; position:absolute; top:-4px; left:4px; width:12px; height:6px; background: #b09870; border-radius: 50%; }
.scn-prince-apartment-time-jest .falstaff-belly { position:absolute; bottom:10%; left:55%; width:90px; height:80px; background: radial-gradient(ellipse at 50% 40%, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; animation: belly-j 4s ease-in-out infinite; }
.scn-prince-apartment-time-jest .hal { position:absolute; bottom:22%; left:40%; width:36px; height:78px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fig-j 5s ease-in-out infinite; }
.scn-prince-apartment-time-jest .candle { position:absolute; bottom:20%; left:70%; width:6px; height:30px; background: #4a3a2a; border-radius: 2px; animation: none; }
.scn-prince-apartment-time-jest .candle::after { content:''; position:absolute; top:-6px; left:-2px; width:10px; height:10px; background: radial-gradient(circle, #ffd080 0%, #ff8030 100%); border-radius: 50%; animation: flame-j 2s ease-in-out infinite alternate; }
.scn-prince-apartment-time-jest .shadow-puppet { position:absolute; bottom:0; right:5%; width:80px; height:120px; background: rgba(0,0,0,.4); filter: blur(6px); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; animation: puppet-j 8s ease-in-out infinite alternate; }
@keyframes spin-j { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes tick-j { 0% { transform: translate(-50%, -100%) rotate(45deg) } 100% { transform: translate(-50%, -100%) rotate(405deg) } }
@keyframes wobble-j { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }
@keyframes belly-j { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.08) } }
@keyframes fig-j { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(3deg) } }
@keyframes flame-j { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.2) translateY(-3px) } 100% { transform: scaleY(0.8) translateY(1px) } }
@keyframes puppet-j { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-10px) scaleX(1.1) } 100% { transform: translateY(0) scaleX(0.9) } }

.scn-boars-head-tavern-knew-you-well { background: linear-gradient(180deg, #2c1a0e 0%, #4a2e1a 30%, #3a2212 70%, #1a1008 100%), radial-gradient(ellipse at 50% 0%, #8a5a3a 0%, transparent 60%); }
.scn-boars-head-tavern-knew-you-well .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5a3a1e 0%, #3a2212 100%); }
.scn-boars-head-tavern-knew-you-well .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2212 0%, #1a0e06 100%); border-top: 3px solid #4a2e1a; }
.scn-boars-head-tavern-knew-you-well .table { position:absolute; bottom:20%; left:50%; width:120px; height:16px; transform:translateX(-50%); background: linear-gradient(90deg, #6a4a2a 0%, #8a5a3a 50%, #5a3a1e 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-boars-head-tavern-knew-you-well .chair { position:absolute; bottom:20%; left:45%; width:40px; height:50px; background: linear-gradient(90deg, #3a2212 0%, #4a2e1a 50%, #2c1a0e 100%); border-radius: 6px; transform: translateX(-50%); box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-boars-head-tavern-knew-you-well .mug { position:absolute; bottom:24%; width:16px; height:20px; background: linear-gradient(90deg, #6a4a2a 0%, #8a5a3a 50%, #5a3a1e 100%); border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.scn-boars-head-tavern-knew-you-well .mug-1 { left:48%; animation: kw-mug1 5s ease-in-out infinite; }
.scn-boars-head-tavern-knew-you-well .mug-2 { left:54%; animation: kw-mug2 7s ease-in-out infinite; }
.scn-boars-head-tavern-knew-you-well .candle { position:absolute; bottom:28%; left:51%; width:8px; height:14px; background: linear-gradient(180deg, #c8a060 0%, #a08030 100%); border-radius: 4px; }
.scn-boars-head-tavern-knew-you-well .flame { position:absolute; bottom:30%; left:51%; width:8px; height:10px; background: radial-gradient(circle, #ffd080 0%, #e8a040 50%, #c06020 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 16px 4px #ffb060, 0 0 32px 8px rgba(255,176,96,.3); animation: kw-flame 1.6s ease-in-out infinite alternate; }
.scn-boars-head-tavern-knew-you-well .figure { position:absolute; bottom:15%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #1a1008 0%, #0a0602 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: kw-figure 6s ease-in-out infinite; }
@keyframes kw-mug1 { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(5deg) translateY(-2px); } 50% { transform: rotate(-3deg); } 75% { transform: rotate(2deg) translateY(-1px); } }
@keyframes kw-mug2 { 0%,100% { transform: rotate(0deg); } 30% { transform: rotate(-4deg) translateY(-1px); } 60% { transform: rotate(3deg); } }
@keyframes kw-flame { 0% { transform: scaleY(1) translateY(0); opacity:.9; } 50% { transform: scaleY(1.2) translateY(-2px); opacity:1; } 100% { transform: scaleY(0.9) translateY(1px); opacity:.85; } }
@keyframes kw-figure { 0%,100% { transform: rotate(-1deg); } 25% { transform: rotate(3deg) translateX(2px); } 50% { transform: rotate(-2deg) translateX(-1px); } 75% { transform: rotate(1deg); } }

.scn-boars-head-tavern-running-away { background: linear-gradient(180deg, #2c1a0e 0%, #4a2e1a 30%, #3a2212 70%, #1a1008 100%), radial-gradient(ellipse at 50% 0%, #8a5a3a 0%, transparent 60%); }
.scn-boars-head-tavern-running-away .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5a3a1e 0%, #3a2212 100%); }
.scn-boars-head-tavern-running-away .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2212 0%, #1a0e06 100%); border-top: 3px solid #4a2e1a; }
.scn-boars-head-tavern-running-away .doorway { position:absolute; left:10%; bottom:30%; width:80px; height:120px; background: linear-gradient(180deg, #1a1008 0%, #0a0602 100%); border-radius: 0 0 10px 10px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-boars-head-tavern-running-away .barrel { position:absolute; bottom:10%; left:70%; width:40px; height:50px; background: linear-gradient(90deg, #4a2e1a 0%, #6a4a2a 50%, #3a2212 100%); border-radius: 30%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-boars-head-tavern-running-away .figure-run { position:absolute; bottom:22%; left:25%; width:28px; height:65px; background: linear-gradient(180deg, #1a1008 0%, #0a0602 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ra-fig 2.4s ease-in-out infinite; }
.scn-boars-head-tavern-running-away .mug-flying { position:absolute; bottom:30%; left:40%; width:14px; height:18px; background: linear-gradient(90deg, #6a4a2a 0%, #8a5a3a 50%, #5a3a1e 100%); border-radius: 4px; animation: ra-mug 1.5s ease-in-out infinite; }
.scn-boars-head-tavern-running-away .spilled-ale { position:absolute; bottom:18%; left:30%; width:50px; height:10px; background: radial-gradient(ellipse, #c88830 0%, #a07020 100%); border-radius: 50%; filter:blur(3px); animation: ra-ale 2s ease-in-out infinite; }
.scn-boars-head-tavern-running-away .candle { position:absolute; bottom:28%; left:52%; width:8px; height:14px; background: linear-gradient(180deg, #c8a060 0%, #a08030 100%); border-radius: 4px; }
.scn-boars-head-tavern-running-away .flame { position:absolute; bottom:30%; left:52%; width:8px; height:10px; background: radial-gradient(circle, #ffd080 0%, #e8a040 50%, #c06020 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 16px 4px #ffb060, 0 0 32px 8px rgba(255,176,96,.3); animation: ra-flame 2.2s ease-in-out infinite alternate; }
@keyframes ra-fig { 0%,100% { transform: rotate(5deg) translateX(0); } 25% { transform: rotate(-3deg) translateX(-6px); } 50% { transform: rotate(8deg) translateX(0); } 75% { transform: rotate(-5deg) translateX(6px); } }
@keyframes ra-mug { 0%,100% { transform: rotate(0deg) translate(0,0); } 30% { transform: rotate(30deg) translate(10px,-8px); } 60% { transform: rotate(-20deg) translate(-5px,6px); } }
@keyframes ra-ale { 0%,100% { opacity:0.6; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.3); } }
@keyframes ra-flame { 0% { transform: scaleY(1); opacity:.9; } 50% { transform: scaleY(1.3) translateY(-3px); opacity:1; } 100% { transform: scaleY(0.8) translateY(2px); opacity:.8; } }

.scn-boars-head-tavern-royal-man { background: linear-gradient(180deg, #2c1a0e 0%, #4a2e1a 30%, #3a2212 70%, #1a1008 100%), radial-gradient(ellipse at 50% 0%, #8a5a3a 0%, transparent 60%); }
.scn-boars-head-tavern-royal-man .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5a3a1e 0%, #3a2212 100%); }
.scn-boars-head-tavern-royal-man .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2212 0%, #1a0e06 100%); border-top: 3px solid #4a2e1a; }
.scn-boars-head-tavern-royal-man .doorway { position:absolute; left:35%; bottom:30%; width:100px; height:130px; background: linear-gradient(180deg, #1a1008 0%, #0a0602 100%); border-radius: 0 0 10px 10px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-boars-head-tavern-royal-man .old-man { position:absolute; bottom:22%; left:42%; width:30px; height:65px; background: linear-gradient(180deg, #2c1a0e 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: rm-old 8s ease-in-out infinite; }
.scn-boars-head-tavern-royal-man .candle { position:absolute; bottom:28%; left:60%; width:8px; height:14px; background: linear-gradient(180deg, #c8a060 0%, #a08030 100%); border-radius: 4px; }
.scn-boars-head-tavern-royal-man .flame { position:absolute; bottom:30%; left:60%; width:8px; height:10px; background: radial-gradient(circle, #ffd080 0%, #e8a040 50%, #c06020 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 16px 4px #ffb060, 0 0 32px 8px rgba(255,176,96,.3); animation: rm-flame 3s ease-in-out infinite alternate; }
.scn-boars-head-tavern-royal-man .shadow { position:absolute; left:38%; bottom:18%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 100%); filter:blur(5px); animation: rm-shadow 10s ease-in-out infinite alternate; }
.scn-boars-head-tavern-royal-man .staff { position:absolute; bottom:22%; left:46%; width:4px; height:60px; background: linear-gradient(180deg, #5a3a1e 0%, #3a2212 100%); border-radius: 2px; transform: rotate(10deg); transform-origin: bottom; animation: rm-staff 4s ease-in-out infinite; }
@keyframes rm-old { 0%,100% { transform: rotate(-2deg) translateX(0); } 25% { transform: rotate(3deg) translateX(5px); } 50% { transform: rotate(-1deg) translateX(2px); } 75% { transform: rotate(1deg) translateX(-3px); } }
@keyframes rm-flame { 0% { transform: scaleY(1); opacity:.9; } 30% { transform: scaleY(1.1) translateY(-2px); opacity:1; } 100% { transform: scaleY(0.9) translateY(1px); opacity:.85; } }
@keyframes rm-shadow { 0%,100% { transform: scaleX(1); opacity:.3; } 50% { transform: scaleX(1.5); opacity:.5; } }
@keyframes rm-staff { 0%,100% { transform: rotate(10deg); } 50% { transform: rotate(15deg); } }

.scn-boars-head-tavern-lions-too { background: linear-gradient(180deg, #2c1a0e 0%, #4a2e1a 30%, #3a2212 70%, #1a1008 100%), radial-gradient(ellipse at 50% 0%, #8a5a3a 0%, transparent 60%); }
.scn-boars-head-tavern-lions-too .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5a3a1e 0%, #3a2212 100%); }
.scn-boars-head-tavern-lions-too .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2212 0%, #1a0e06 100%); border-top: 3px solid #4a2e1a; }
.scn-boars-head-tavern-lions-too .table { position:absolute; bottom:20%; left:50%; width:140px; height:14px; transform:translateX(-50%); background: linear-gradient(90deg, #6a4a2a 0%, #8a5a3a 50%, #5a3a1e 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-boars-head-tavern-lions-too .sword { position:absolute; bottom:22%; width:8px; height:60px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 2px; transform-origin: bottom center; }
.scn-boars-head-tavern-lions-too .sword-1 { left:40%; transform: rotate(-15deg); animation: lt-sword1 6s ease-in-out infinite; }
.scn-boars-head-tavern-lions-too .sword-2 { left:52%; transform: rotate(10deg); animation: lt-sword2 8s ease-in-out infinite; }
.scn-boars-head-tavern-lions-too .shield { position:absolute; bottom:15%; left:60%; width:40px; height:45px; background: radial-gradient(ellipse at 50% 40%, #6a4a2a 0%, #3a2212 100%); border-radius: 50% 50% 40% 40%; border: 3px solid #5a3a1e; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: lt-shield 10s ease-in-out infinite; }
.scn-boars-head-tavern-lions-too .candle { position:absolute; bottom:28%; left:48%; width:8px; height:14px; background: linear-gradient(180deg, #c8a060 0%, #a08030 100%); border-radius: 4px; }
.scn-boars-head-tavern-lions-too .flame { position:absolute; bottom:30%; left:48%; width:8px; height:10px; background: radial-gradient(circle, #ffd080 0%, #e8a040 50%, #c06020 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 16px 4px #ffb060, 0 0 32px 8px rgba(255,176,96,.3); animation: lt-flame 2.5s ease-in-out infinite alternate; }
.scn-boars-head-tavern-lions-too .figure { position:absolute; bottom:14%; left:30%; width:30px; height:70px; background: linear-gradient(180deg, #1a1008 0%, #0a0602 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lt-fig 7s ease-in-out infinite; }
@keyframes lt-sword1 { 0%,100% { transform: rotate(-15deg) translateY(0); } 25% { transform: rotate(-10deg) translateY(-4px); } 50% { transform: rotate(-20deg) translateY(2px); } 75% { transform: rotate(-5deg) translateY(-2px); } }
@keyframes lt-sword2 { 0%,100% { transform: rotate(10deg) translateY(0); } 30% { transform: rotate(18deg) translateY(-3px); } 60% { transform: rotate(5deg) translateY(2px); } }
@keyframes lt-shield { 0%,100% { transform: scale(1) rotate(0deg); } 25% { transform: scale(1.05) rotate(2deg); } 50% { transform: scale(0.95) rotate(-2deg); } 75% { transform: scale(1.02) rotate(1deg); } }
@keyframes lt-flame { 0% { transform: scaleY(1) translateY(0); opacity:.9; } 50% { transform: scaleY(1.2) translateY(-3px); opacity:1; } 100% { transform: scaleY(0.9) translateY(1px); opacity:.85; } }
@keyframes lt-fig { 0%,100% { transform: rotate(0deg) translateX(0); } 20% { transform: rotate(2deg) translateX(3px); } 40% { transform: rotate(-3deg) translateX(-4px); } 60% { transform: rotate(1deg) translateX(2px); } 80% { transform: rotate(-1deg) translateX(-2px); } }

.scn-plain-camp-give-it {
  background: linear-gradient(180deg, #f5d6a0 0%, #e8b87a 40%, #c48a4e 100%), radial-gradient(ellipse at 70% 30%, #ffeedd 0%, transparent 60%);
}
.scn-plain-camp-give-it .sky-layer { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffe5b4 0%, #f5d6a0 100%); animation: pg-sky 20s ease-in-out infinite alternate; }
.scn-plain-camp-give-it .tent-back { position:absolute; bottom:25%; left:10%; width:50%; height:50%; background: linear-gradient(135deg, #b88a5a 0%, #8c6a3a 100%); border-radius: 0 40% 0 0 / 0 50% 0 0; box-shadow: inset -10px 0 20px rgba(0,0,0,0.2); }
.scn-plain-camp-give-it .tent-front { position:absolute; bottom:20%; left:8%; width:55%; height:55%; background: linear-gradient(135deg, #c99a6a 0%, #a07848 100%); border-radius: 0 50% 0 0 / 0 60% 0 0; clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%); box-shadow: 0 -10px 30px rgba(0,0,0,0.3); animation: pg-tent 8s ease-in-out infinite; }
.scn-plain-camp-give-it .falstaff { position:absolute; bottom:15%; left:30%; width:100px; height:120px; background: radial-gradient(ellipse at 50% 60%, #d4a574 0%, #a07a4a 70%, #6a4a2a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%; transform: rotate(5deg); animation: pg-falstaff 4s ease-in-out infinite; }
.scn-plain-camp-give-it .bottle { position:absolute; bottom:30%; left:48%; width:30px; height:50px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: pg-bottle 3s ease-in-out infinite alternate; }
.scn-plain-camp-give-it .hal-arm { position:absolute; bottom:20%; left:50%; width:20px; height:60px; background: linear-gradient(180deg, #f0c89a 0%, #c8a070 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; transform: rotate(-30deg); animation: pg-arm 2s ease-in-out infinite alternate; }
.scn-plain-camp-give-it .sunbeam { position:absolute; top:0%; left:20%; width:30%; height:100%; background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, transparent 100%); filter: blur(10px); animation: pg-sun 6s ease-in-out infinite alternate; }

@keyframes pg-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes pg-tent { 0% { transform: translateY(0px); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes pg-falstaff { 0% { transform: rotate(3deg) translateX(0px); } 50% { transform: rotate(5deg) translateX(4px) scaleY(1.02); } 100% { transform: rotate(2deg) translateX(-2px); } }
@keyframes pg-bottle { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-4px); } 100% { transform: rotate(-5deg) translateY(2px); } }
@keyframes pg-arm { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-20deg) translateX(3px); } 100% { transform: rotate(-35deg); } }
@keyframes pg-sun { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.3; } }

.scn-plain-camp-falstaff-pierce {
  background: linear-gradient(180deg, #f0d8a0 0%, #d6b870 50%, #b09050 100%), radial-gradient(ellipse at 40% 70%, #ffe0b0 0%, transparent 70%);
}
.scn-plain-camp-falstaff-pierce .camp-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #aa7a4a 0%, #c89a5a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-plain-camp-falstaff-pierce .tent-flap { position:absolute; bottom:30%; left:5%; width:60%; height:45%; background: linear-gradient(135deg, #d4a070 0%, #a07848 100%); border-radius: 0 60% 0 0 / 0 50% 0 0; clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%); animation: pf-flap 6s ease-in-out infinite alternate; }
.scn-plain-camp-falstaff-pierce .falstaff-body { position:absolute; bottom:15%; left:20%; width:90px; height:110px; background: radial-gradient(ellipse at 50% 60%, #c09060 0%, #806030 70%, #503010 100%); border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%; transform: rotate(-10deg); animation: pf-falstaff 4s ease-in-out infinite; }
.scn-plain-camp-falstaff-pierce .thrown-bottle { position:absolute; bottom:50%; left:40%; width:25px; height:45px; background: linear-gradient(180deg, #7a5a2a 0%, #4a2a0a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: pf-bottle 2s ease-in-out infinite; }
.scn-plain-camp-falstaff-pierce .splash { position:absolute; bottom:48%; left:42%; width:40px; height:40px; background: radial-gradient(circle, rgba(200,150,80,0.8) 0%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: pf-splash 1.5s ease-in-out infinite; }
.scn-plain-camp-falstaff-pierce .hal-figure { position:absolute; bottom:12%; right:15%; width:70px; height:100px; background: linear-gradient(180deg, #d4a87a 0%, #a07848 100%); border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%; transform: scaleX(-1); animation: pf-hal 5s ease-in-out infinite; }
.scn-plain-camp-falstaff-pierce .dust-puff { position:absolute; bottom:18%; left:35%; width:50px; height:50px; background: radial-gradient(circle, rgba(180,140,80,0.6) 0%, transparent 100%); border-radius: 50%; filter: blur(10px); animation: pf-dust 3s ease-in-out infinite; }

@keyframes pf-flap { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1) translateX(-5px); } 100% { transform: scaleX(0.95); } }
@keyframes pf-falstaff { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-5px) scaleY(1.05); } 100% { transform: rotate(-8deg) translateY(2px); } }
@keyframes pf-bottle { 0% { transform: rotate(45deg) translateX(0) translateY(0); } 25% { transform: rotate(60deg) translateX(20px) translateY(-30px); } 50% { transform: rotate(80deg) translateX(40px) translateY(-60px); } 75% { transform: rotate(100deg) translateX(20px) translateY(-40px); } 100% { transform: rotate(120deg) translateX(0) translateY(0); } }
@keyframes pf-splash { 0% { opacity:0.8; transform: scale(1); } 50% { opacity:0.3; transform: scale(1.8); } 100% { opacity:0; transform: scale(2.5); } }
@keyframes pf-hal { 0% { transform: scaleX(-1) translateX(0); } 50% { transform: scaleX(-1) translateX(5px) rotate(2deg); } 100% { transform: scaleX(-1) translateX(-3px); } }
@keyframes pf-dust { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.5); } 100% { opacity:0; transform: scale(2); } }

.scn-field-excursions-westmoreland {
  background: linear-gradient(180deg, #c0b090 0%, #8a7a6a 50%, #5a4a3a 100%), radial-gradient(ellipse at 30% 50%, #b0a090 0%, transparent 70%);
}
.scn-field-excursions-westmoreland .battle-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #d4c4b4 0%, #b0a090 100%); animation: ew-sky 25s ease-in-out infinite alternate; }
.scn-field-excursions-westmoreland .distant-smoke { position:absolute; top:10%; left:20%; width:50%; height:40%; background: radial-gradient(ellipse, rgba(140,120,100,0.4) 0%, transparent 100%); filter: blur(15px); animation: ew-smoke 15s ease-in-out infinite alternate; }
.scn-field-excursions-westmoreland .westmoreland { position:absolute; bottom:20%; left:15%; width:80px; height:110px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%; transform: rotate(10deg); animation: ew-westmoreland 5s ease-in-out infinite; }
.scn-field-excursions-westmoreland .prince-harry { position:absolute; bottom:18%; left:40%; width:75px; height:105px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%; transform: rotate(-5deg); animation: ew-prince 6s ease-in-out infinite; }
.scn-field-excursions-westmoreland .blood-drip { position:absolute; bottom:22%; left:44%; width:8px; height:30px; background: linear-gradient(180deg, #a04030 0%, #602018 100%); border-radius: 50%; animation: ew-blood 3s ease-in-out infinite alternate; }
.scn-field-excursions-westmoreland .ground-rough { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #4a3a2a 0%, #6a5a4a 100%); border-radius: 40% 40% 0 0 / 30% 30% 0 0; }
.scn-field-excursions-westmoreland .splintered-pike { position:absolute; bottom:10%; right:20%; width:15px; height:80px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 0 0 50% 50%; transform: rotate(25deg); animation: ew-pike 4s ease-in-out infinite; }

@keyframes ew-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes ew-smoke { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.2) translateX(10px); } 100% { transform: scale(0.9) translateX(-5px); } }
@keyframes ew-westmoreland { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(8deg) translateX(5px) translateY(-3px); } 100% { transform: rotate(12deg) translateX(-2px); } }
@keyframes ew-prince { 0% { transform: rotate(-5deg) translateX(0) translateY(0); } 50% { transform: rotate(-8deg) translateX(-8px) translateY(-4px); } 100% { transform: rotate(-3deg) translateX(3px) translateY(2px); } }
@keyframes ew-blood { 0% { opacity:0.8; height:30px; } 50% { opacity:1; height:40px; } 100% { opacity:0.5; height:20px; } }
@keyframes ew-pike { 0% { transform: rotate(25deg) translateY(0); } 50% { transform: rotate(30deg) translateY(-5px); } 100% { transform: rotate(22deg) translateY(3px); } }

.scn-field-king-will-do {
  background: linear-gradient(180deg, #c0b098 0%, #907a6a 50%, #605040 100%), radial-gradient(ellipse at 60% 40%, #d4c0b0 0%, transparent 60%);
}
.scn-field-king-will-do .field-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #e0d0c0 0%, #b0a090 100%); animation: kw-sky 30s ease-in-out infinite alternate; }
.scn-field-king-will-do .tent-silhouette { position:absolute; bottom:20%; right:5%; width:45%; height:55%; background: linear-gradient(135deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 0 40% 0 0 / 0 50% 0 0; clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 0% 100%); box-shadow: -10px 0 20px rgba(0,0,0,0.4); animation: kw-tent 10s ease-in-out infinite; }
.scn-field-king-will-do .king-figure { position:absolute; bottom:14%; left:30%; width:90px; height:120px; background: linear-gradient(180deg, #705040 0%, #403020 100%); border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%; transform: rotate(2deg); animation: kw-king 5s ease-in-out infinite; }
.scn-field-king-will-do .sword-point { position:absolute; bottom:40%; left:35%; width:10px; height:60px; background: linear-gradient(180deg, #c0b0a0 0%, #605040 100%); border-radius: 50% 50% 0 0; transform: rotate(-15deg); box-shadow: 0 0 10px rgba(200,180,160,0.6); animation: kw-sword 2s ease-in-out infinite alternate; }
.scn-field-king-will-do .fallen-banner { position:absolute; bottom:10%; right:35%; width:60px; height:80px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%; transform: rotate(15deg); animation: kw-banner 8s ease-in-out infinite; }
.scn-field-king-will-do .dust-cloud { position:absolute; bottom:0%; left:10%; width:40%; height:30%; background: radial-gradient(ellipse, rgba(120,100,80,0.5) 0%, transparent 100%); filter: blur(20px); animation: kw-dust 12s ease-in-out infinite alternate; }
.scn-field-king-will-do .sunray { position:absolute; top:5%; left:40%; width:20%; height:70%; background: linear-gradient(180deg, rgba(255,220,180,0.3) 0%, transparent 100%); filter: blur(15px); transform: rotate(-10deg); animation: kw-sunray 7s ease-in-out infinite alternate; }

@keyframes kw-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes kw-tent { 0% { transform: translateX(0); } 50% { transform: translateX(-5px) scaleX(1.02); } 100% { transform: translateX(3px); } }
@keyframes kw-king { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-5px) scaleY(1.03); } 100% { transform: rotate(4deg) translateY(2px); } }
@keyframes kw-sword { 0% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(-10deg) scaleY(1.1); } 100% { transform: rotate(-18deg) scaleY(0.95); } }
@keyframes kw-banner { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-6px); } 100% { transform: rotate(20deg) translateY(3px); } }
@keyframes kw-dust { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.2); } 100% { opacity:0.3; transform: scale(0.9); } }
@keyframes kw-sunray { 0% { opacity:0.3; transform: rotate(-10deg) scaleY(1); } 50% { opacity:0.6; transform: rotate(-15deg) scaleY(1.2); } 100% { opacity:0.2; transform: rotate(-5deg) scaleY(0.8); } }

.scn-road-coventry-pressed-good-householders { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 60%, #daa520 100%), radial-gradient(ellipse at 50% 100%, #f5deb3 0%, transparent 80%); }

.scn-road-coventry-pressed-good-householders .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 60%, #f0e68c 100%); animation: rcp-sky 25s ease-in-out infinite alternate; }
.scn-road-coventry-pressed-good-householders .field { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #7cb342 0%, #558b2f 50%, #33691e 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,40,0,.3); }
.scn-road-coventry-pressed-good-householders .path { position:absolute; bottom:22%; left:10%; right:10%; height:8%; background: linear-gradient(90deg, #c8a96e 0%, #d4b87a 30%, #bfa060 70%, #c8a96e 100%); border-radius: 20%; box-shadow: 0 4px 8px rgba(0,0,0,.15); animation: rcp-path 8s ease-in-out infinite; }
.scn-road-coventry-pressed-good-householders .constable { position:absolute; bottom:24%; left:48%; width:24px; height:50px; background: linear-gradient(180deg, #5d4037 0%, #3e2723 40%, #795548 70%, #5d4037 100%); border-radius: 45% 45% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: 2px 0 6px rgba(0,0,0,.3); animation: rcp-walk 2.5s ease-in-out infinite; }
.scn-road-coventry-pressed-good-householders .yeoman { position:absolute; bottom:24%; width:20px; height:44px; background: linear-gradient(180deg, #8d6e63 0%, #6d4c41 40%, #a1887f 70%, #6d4c41 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: 1px 0 4px rgba(0,0,0,.2); }
.scn-road-coventry-pressed-good-householders .yeoman-1 { left:30%; animation: rcp-walk 3s ease-in-out infinite 0.2s; }
.scn-road-coventry-pressed-good-householders .yeoman-2 { left:36%; animation: rcp-walk 3.2s ease-in-out infinite 0.6s; }
.scn-road-coventry-pressed-good-householders .yeoman-3 { left:42%; animation: rcp-walk 2.8s ease-in-out infinite 0.4s; }
.scn-road-coventry-pressed-good-householders .hedge { position:absolute; bottom:28%; left:0; right:0; height:14%; background: linear-gradient(180deg, #4caf50 0%, #388e3c 50%, #2e7d32 100%); border-radius: 40% 60% 0 0 / 100% 100% 0 0; opacity:.7; box-shadow: inset 0 -6px 12px rgba(0,20,0,.4); }
.scn-road-coventry-pressed-good-householders .badge { position:absolute; bottom:45%; left:50%; width:10px; height:10px; background: radial-gradient(circle, #ffd54f 0%, #ffb300 60%, #f57f17 100%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(255,179,0,.5); animation: rcp-badge 2s ease-in-out infinite alternate; }
@keyframes rcp-sky { 0% { opacity:.85; background-position:0 0 } 50% { opacity:1; background-position:0 -10px } 100% { opacity:.9; background-position:0 0 } }
@keyframes rcp-path { 0%,100% { transform: translateY(0); opacity:.9 } 50% { transform: translateY(-2px); opacity:1 } }
@keyframes rcp-walk { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(1.5deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(1.5deg) } 100% { transform: translateX(16px) rotate(0deg) } }
@keyframes rcp-badge { 0% { transform: scale(1); box-shadow: 0 0 10px 2px rgba(255,179,0,.4) } 50% { transform: scale(1.2); box-shadow: 0 0 20px 6px rgba(255,179,0,.7) } 100% { transform: scale(.95); box-shadow: 0 0 14px 3px rgba(255,179,0,.5) } }

.scn-road-coventry-bought-out { background: linear-gradient(180deg, #3e2723 0%, #5d4037 40%, #8d6e63 80%, #a1887f 100%), radial-gradient(ellipse at 30% 50%, #8d6e63 0%, transparent 70%); }

.scn-road-coventry-bought-out .tavern-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #6d4c41 0%, #5d4037 50%, #4e342e 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 30px 60px rgba(0,0,0,.5); animation: rcb-wall 20s ease-in-out infinite; }
.scn-road-coventry-bought-out .tavern-bench { position:absolute; bottom:18%; left:10%; right:10%; height:6%; background: linear-gradient(180deg, #4e342e 0%, #3e2723 100%); border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,.4); }
.scn-road-coventry-bought-out .captain { position:absolute; bottom:22%; left:45%; width:28px; height:52px; background: linear-gradient(180deg, #1b5e20 0%, #2e7d32 40%, #388e3c 70%, #1b5e20 100%); border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%; transform-origin: bottom center; box-shadow: 2px 0 8px rgba(0,0,0,.4); animation: rcb-captain 3s ease-in-out infinite; }
.scn-road-coventry-bought-out .toast { position:absolute; bottom:24%; width:16px; height:30px; background: linear-gradient(180deg, #d7ccc8 0%, #bcaaa4 40%, #a1887f 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; }
.scn-road-coventry-bought-out .toast-1 { left:28%; animation: rcb-toast 3.5s ease-in-out infinite 0.1s; }
.scn-road-coventry-bought-out .toast-2 { left:34%; animation: rcb-toast 3.2s ease-in-out infinite 0.5s; }
.scn-road-coventry-bought-out .purse { position:absolute; bottom:30%; left:38%; width:12px; height:16px; background: linear-gradient(180deg, #fdd835 0%, #f9a825 50%, #f57f17 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 0 10px 2px rgba(253,216,53,.5); animation: rcb-purse 2.5s ease-in-out infinite alternate; }
.scn-road-coventry-bought-out .mug { position:absolute; bottom:22%; left:58%; width:14px; height:20px; background: linear-gradient(180deg, #8d6e63 0%, #6d4c41 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,.3); animation: rcb-mug 4s ease-in-out infinite; }
.scn-road-coventry-bought-out .candle { position:absolute; bottom:32%; left:52%; width:4px; height:12px; background: linear-gradient(180deg, #fff9c4 0%, #ffecb3 40%, #ffe082 100%); border-radius: 2px; box-shadow: 0 0 20px 6px rgba(255,224,130,.6); animation: rcb-candle 1.5s ease-in-out infinite alternate; }
@keyframes rcb-wall { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes rcb-captain { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(8px) rotate(2deg) } 50% { transform: translateX(16px) rotate(0deg) } 75% { transform: translateX(8px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes rcb-toast { 0% { transform: translateX(0) rotate(-1deg) } 30% { transform: translateX(6px) rotate(2deg) } 60% { transform: translateX(12px) rotate(-1deg) } 100% { transform: translateX(18px) rotate(1deg) } }
@keyframes rcb-purse { 0% { transform: translateY(0) scale(1) rotate(-2deg); opacity:.9 } 50% { transform: translateY(-2px) scale(1.1) rotate(2deg); opacity:1 } 100% { transform: translateY(0) scale(1) rotate(-2deg); opacity:.95 } }
@keyframes rcb-mug { 0%,100% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-3px) } }
@keyframes rcb-candle { 0% { opacity:.6; box-shadow: 0 0 12px 3px rgba(255,224,130,.3) } 50% { opacity:1; box-shadow: 0 0 28px 8px rgba(255,224,130,.7) } 100% { opacity:.7; box-shadow: 0 0 16px 4px rgba(255,224,130,.4) } }

.scn-road-coventry-scarecrows { background: linear-gradient(180deg, #b0bec5 0%, #cfd8dc 30%, #eceff1 60%, #bcaaa4 100%), radial-gradient(ellipse at 40% 80%, #bcaaa4 0%, transparent 70%); }

.scn-road-coventry-scarecrows .moor-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #90a4ae 0%, #b0bec5 50%, #cfd8dc 100%); animation: rcs-sky 30s ease-in-out infinite alternate; }
.scn-road-coventry-scarecrows .moor-ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #8d6e63 0%, #6d4c41 40%, #5d4037 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.3); }
.scn-road-coventry-scarecrows .scarecrow { position:absolute; bottom:20%; width:20px; height:56px; background: linear-gradient(180deg, #5d4037 0%, #3e2723 40%, #4e342e 70%, #3e2723 100%); border-radius: 45% 45% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; }
.scn-road-coventry-scarecrows .sc-1 { left:25%; animation: rcs-scarecrow 4s ease-in-out infinite; }
.scn-road-coventry-scarecrows .sc-2 { left:40%; animation: rcs-scarecrow 4.5s ease-in-out infinite 0.5s; }
.scn-road-coventry-scarecrows .sc-3 { left:55%; animation: rcs-scarecrow 3.8s ease-in-out infinite 1s; }
.scn-road-coventry-scarecrows .rag { position:absolute; width:8px; height:20px; background: linear-gradient(180deg, #a1887f 0%, #8d6e63 40%, #6d4c41 100%); }
.scn-road-coventry-scarecrows .rag-1 { bottom:30%; left:30%; transform-origin: top center; animation: rcs-rag 3s ease-in-out infinite 0.2s; }
.scn-road-coventry-scarecrows .rag-2 { bottom:28%; left:48%; transform-origin: top center; animation: rcs-rag 3.6s ease-in-out infinite 0.8s; }
.scn-road-coventry-scarecrows .gibbet-post { position:absolute; bottom:10%; left:50%; width:4px; height:60%; background: linear-gradient(180deg, #4e342e 0%, #3e2723 100%); border-radius: 2px; transform-origin: bottom center; animation: rcs-gibbet 20s ease-in-out infinite; }
@keyframes rcs-sky { 0% { opacity:.75; background-position:0 0 } 50% { opacity:.9; background-position:0 -15px } 100% { opacity:.8; background-position:0 0 } }
@keyframes rcs-scarecrow { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(3deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(2deg) } 100% { transform: translateX(16px) rotate(-2deg) } }
@keyframes rcs-rag { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(15deg) translateY(-4px) } 50% { transform: rotate(-10deg) translateY(2px) } 75% { transform: rotate(20deg) translateY(-6px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes rcs-gibbet { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } }

.scn-road-coventry-shirt-half { background: linear-gradient(180deg, #d7ccc8 0%, #bcaaa4 40%, #a1887f 80%, #8d6e63 100%), radial-gradient(ellipse at 50% 60%, #a1887f 0%, transparent 80%); }

.scn-road-coventry-shirt-half .inn-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #a1887f 0%, #8d6e63 50%, #795548 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 20px 40px rgba(0,0,0,.4); }
.scn-road-coventry-shirt-half .floor { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(180deg, #6d4c41 0%, #5d4037 50%, #4e342e 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-road-coventry-shirt-half .ragged-man { position:absolute; bottom:22%; left:48%; width:22px; height:54px; background: linear-gradient(180deg, #3e2723 0%, #2d1a11 40%, #4e342e 70%, #3e2723 100%); border-radius: 45% 45% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: 2px 0 6px rgba(0,0,0,.3); animation: rch-man 3s ease-in-out infinite; }
.scn-road-coventry-shirt-half .shirt-half { position:absolute; bottom:42%; left:47%; width:16px; height:18px; background: linear-gradient(180deg, #f5f5f5 0%, #e0e0e0 40%, #bdbdbd 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.2); transform-origin: top center; animation: rch-shirt 2.5s ease-in-out infinite alternate; }
.scn-road-coventry-shirt-half .napkin { position:absolute; width:10px; height:14px; background: linear-gradient(180deg, #eeeeee 0%, #e0e0e0 50%, #bdbdbd 100%); border-radius: 10%; }
.scn-road-coventry-shirt-half .napkin-1 { bottom:40%; left:44%; transform-origin: top left; animation: rch-napkin 3.5s ease-in-out infinite 0.1s; }
.scn-road-coventry-shirt-half .napkin-2 { bottom:38%; left:52%; transform-origin: top right; animation: rch-napkin 4s ease-in-out infinite 0.3s; }
.scn-road-coventry-shirt-half .herald-coat { position:absolute; bottom:40%; left:42%; width:20px; height:24px; background: linear-gradient(180deg, #e53935 0%, #c62828 40%, #b71c1c 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 8px 2px rgba(229,57,53,.2); transform-origin: top center; animation: rch-coat 4s ease-in-out infinite; }
.scn-road-coventry-shirt-half .sign { position:absolute; bottom:38%; left:38%; width:8px; height:6px; background: radial-gradient(circle, #ef5350 0%, #c62828 70%); border-radius: 20%; box-shadow: 0 0 6px 2px rgba(239,83,80,.3); animation: rch-sign 2s ease-in-out infinite alternate; }
@keyframes rch-man { 0% { transform: translateX(0) rotate(-1deg) } 30% { transform: translateX(4px) rotate(1deg) } 60% { transform: translateX(8px) rotate(-1deg) } 100% { transform: translateX(12px) rotate(0deg) } }
@keyframes rch-shirt { 0% { transform: rotate(0deg) translateY(0); opacity:.9 } 50% { transform: rotate(-5deg) translateY(-3px); opacity:1 } 100% { transform: rotate(0deg) translateY(0); opacity:.95 } }
@keyframes rch-napkin { 0% { transform: rotate(0deg) translateY(0) } 30% { transform: rotate(12deg) translateY(-3px) } 60% { transform: rotate(-8deg) translateY(2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes rch-coat { 0%,100% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(3deg) scale(1.05) } }
@keyframes rch-sign { 0% { transform: scale(1); opacity:.8 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(.9); opacity:.85 } }

/* rebel-camp-night-welcome-blunt - warm overcast */
.scn-rebel-camp-night-welcome-blunt {
  background: linear-gradient(180deg, #2a2a3a 0%, #3a2a1a 30%, #4a3a2a 60%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 80%, #5a3a1a 0%, transparent 70%);
}
.scn-rebel-camp-night-welcome-blunt .sky-dark {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%);
  animation: rw-sky 15s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-welcome-blunt .ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 60% 40% 0 0 / 20% 10% 0 0;
}
.scn-rebel-camp-night-welcome-blunt .tent {
  position:absolute; bottom:30%; left:15%; width:90px; height:80px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(0% 100%, 30% 0%, 70% 0%, 100% 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: rw-tent 6s ease-in-out infinite;
}
.scn-rebel-camp-night-welcome-blunt .fire {
  position:absolute; bottom:25%; left:50%; width:40px; height:50px;
  background: radial-gradient(ellipse at 50% 100%, #ff8020 0%, #cc4400 40%, #662200 80%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px #ff6611, 0 0 60px 20px rgba(255,102,17,0.3);
  animation: rw-fire 1.5s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-welcome-blunt .figure-welcome {
  position:absolute; bottom:28%; left:30%; width:20px; height:40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rw-figure 4s ease-in-out infinite;
}
.scn-rebel-camp-night-welcome-blunt .lantern-welcome {
  position:absolute; bottom:35%; left:20%; width:8px; height:12px;
  background: radial-gradient(circle, #ffbb66 0%, #cc8800 100%);
  border-radius: 30%;
  box-shadow: 0 0 20px 6px #ffbb66;
  animation: rw-lantern 3s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-welcome-blunt .smoke-welcome {
  position:absolute; bottom:45%; left:48%; width:30px; height:40px;
  background: radial-gradient(circle, rgba(200,180,160,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: rw-smoke 8s ease-in-out infinite;
}
.scn-rebel-camp-night-welcome-blunt .spark-welcome {
  position:absolute; bottom:50%; left:55%; width:4px; height:4px;
  background: #ffee88;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #ffcc44;
  animation: rw-spark 2.5s ease-in-out infinite;
}
@keyframes rw-sky    { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rw-tent   { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) } }
@keyframes rw-fire   { 0% { transform: scaleY(1) translateY(0); opacity:0.9 } 50% { transform: scaleY(1.2) translateY(-3px); opacity:1 } 100% { transform: scaleY(0.9) translateY(2px); opacity:0.8 } }
@keyframes rw-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8px) rotate(2deg) } 50% { transform: translateX(16px) rotate(-1deg) } 75% { transform: translateX(8px) rotate(1deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes rw-lantern{ 0% { box-shadow: 0 0 15px 4px #ffbb66 } 50% { box-shadow: 0 0 25px 8px #ffcc88 } 100% { box-shadow: 0 0 18px 5px #ffbb66 } }
@keyframes rw-smoke  { 0% { transform: translateY(0) scale(0.8); opacity:0.3 } 50% { transform: translateY(-20px) scale(1.2); opacity:0.5 } 100% { transform: translateY(-40px) scale(1.5); opacity:0 } }
@keyframes rw-spark  { 0% { transform: translate(0,0) scale(1); opacity:1 } 50% { transform: translate(-10px,-15px) scale(0.5); opacity:0.6 } 100% { transform: translate(-20px,-30px) scale(0); opacity:0 } }

/* rebel-camp-night-blunt-god-defend - tense overcast */
.scn-rebel-camp-night-blunt-god-defend {
  background: linear-gradient(135deg, #1a1a2e 0%, #2a2a40 50%, #1a1a2e 100%),
              radial-gradient(ellipse at 20% 80%, #3a3a5a 0%, transparent 70%);
}
.scn-rebel-camp-night-blunt-god-defend .sky-dark {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 100%);
  animation: rt-sky 20s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-blunt-god-defend .ground {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 70% 0 0 / 15% 40% 0 0;
}
.scn-rebel-camp-night-blunt-god-defend .tent-b {
  position:absolute; bottom:25%; left:20%; width:100px; height:70px;
  background: linear-gradient(160deg, #4a4a5a 0%, #2a2a3a 100%);
  clip-path: polygon(0% 100%, 25% 0%, 75% 0%, 100% 100%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: rt-tent 8s ease-in-out infinite;
}
.scn-rebel-camp-night-blunt-god-defend .figure-left {
  position:absolute; bottom:28%; left:15%; width:22px; height:44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rt-fig-left 5s ease-in-out infinite;
}
.scn-rebel-camp-night-blunt-god-defend .figure-right {
  position:absolute; bottom:28%; right:20%; width:22px; height:44px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rt-fig-right 5s ease-in-out infinite reverse;
}
.scn-rebel-camp-night-blunt-god-defend .banner {
  position:absolute; bottom:35%; left:40%; width:8px; height:50px;
  background: #3a3a4a;
  animation: rt-banner 6s ease-in-out infinite;
}
.scn-rebel-camp-night-blunt-god-defend .torch {
  position:absolute; bottom:30%; left:60%; width:6px; height:20px;
  background: radial-gradient(circle at 50% 0%, #ffaa44 0%, #cc6600 50%, transparent 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 20px 8px #ff6622;
  animation: rt-torch 2s ease-in-out infinite alternate;
}
@keyframes rt-sky      { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes rt-tent     { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes rt-fig-left { 0% { transform: translateX(0) rotate(-3deg) } 30% { transform: translateX(-5px) rotate(2deg) } 60% { transform: translateX(5px) rotate(-1deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes rt-fig-right{ 0% { transform: translateX(0) rotate(3deg) } 30% { transform: translateX(5px) rotate(-2deg) } 60% { transform: translateX(-5px) rotate(1deg) } 100% { transform: translateX(0) rotate(3deg) } }
@keyframes rt-banner   { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.1) } 100% { transform: scaleY(0.9) } }
@keyframes rt-torch    { 0% { opacity:0.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.3) } 100% { opacity:0.7; transform: scaleY(0.9) } }

/* rebel-camp-night-hotspur-recounts - tense overcast */
.scn-rebel-camp-night-hotspur-recounts {
  background: linear-gradient(90deg, #1e1e2e 0%, #2a2a3e 50%, #1e1e2e 100%),
              radial-gradient(ellipse at 30% 60%, #3a3a50 0%, transparent 60%);
}
.scn-rebel-camp-night-hotspur-recounts .sky-dark {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #12121a 0%, #1a1a2a 100%);
  animation: rr-sky 18s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-hotspur-recounts .ground-r {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-rebel-camp-night-hotspur-recounts .figure-hotspur {
  position:absolute; bottom:25%; left:40%; width:24px; height:48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rr-figure 5s ease-in-out infinite;
}
.scn-rebel-camp-night-hotspur-recounts .shield {
  position:absolute; bottom:30%; left:35%; width:18px; height:22px;
  background: linear-gradient(135deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: rr-shield 4s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-hotspur-recounts .map {
  position:absolute; bottom:28%; right:30%; width:30px; height:20px;
  background: linear-gradient(45deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 5%;
  transform: rotate(15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: rr-map 7s ease-in-out infinite;
}
.scn-rebel-camp-night-hotspur-recounts .campfire-r {
  position:absolute; bottom:22%; left:60%; width:35px; height:45px;
  background: radial-gradient(ellipse at 50% 100%, #ff8822 0%, #cc5500 40%, #662200 80%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 25px 8px #ff6611;
  animation: rr-fire 1.8s ease-in-out infinite alternate;
}
@keyframes rr-sky   { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rr-figure{ 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(10px) rotate(1deg) translateY(-2px) } 60% { transform: translateX(-5px) rotate(-1deg) translateY(1px) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes rr-shield{ 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.05) translateY(-3px) } 100% { transform: scale(0.95) translateY(2px) } }
@keyframes rr-map   { 0% { transform: rotate(15deg) scale(1) } 50% { transform: rotate(10deg) scale(1.02) } 100% { transform: rotate(20deg) scale(0.98) } }
@keyframes rr-fire  { 0% { transform: scaleY(1) translateY(0); opacity:0.9 } 50% { transform: scaleY(1.15) translateY(-4px); opacity:1 } 100% { transform: scaleY(0.85) translateY(3px); opacity:0.8 } }

/* rebel-camp-night-hotspur-king-ingratitude - dark overcast */
.scn-rebel-camp-night-hotspur-king-ingratitude {
  background: linear-gradient(45deg, #0a0a15 0%, #1a1a2a 50%, #0a0a15 100%),
              radial-gradient(ellipse at 80% 20%, #2a2a3a 0%, transparent 60%);
}
.scn-rebel-camp-night-hotspur-king-ingratitude .sky-deep {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #05050e 0%, #0a0a15 100%);
  animation: rk-sky 25s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-hotspur-king-ingratitude .ground-dark {
  position:absolute; bottom:0; left:0; right:0; height:60%;
  background: linear-gradient(180deg, #12121a 0%, #05050e 100%);
  border-radius: 70% 30% 0 0 / 40% 10% 0 0;
}
.scn-rebel-camp-night-hotspur-king-ingratitude .figure-hotspur-dark {
  position:absolute; bottom:30%; left:45%; width:22px; height:46px;
  background: linear-gradient(180deg, #0e0e1a 0%, #05050e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rk-figure 6s ease-in-out infinite;
}
.scn-rebel-camp-night-hotspur-king-ingratitude .crown {
  position:absolute; bottom:55%; left:48%; width:20px; height:12px;
  background: linear-gradient(135deg, #5a4a3a 0%, #2a1a0a 100%);
  clip-path: polygon(0% 100%, 20% 0%, 50% 40%, 80% 0%, 100% 100%);
  animation: rk-crown 4s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-hotspur-king-ingratitude .scepter {
  position:absolute; bottom:25%; left:55%; width:4px; height:40px;
  background: #1a1a2a;
  border-radius: 10%;
  transform: rotate(10deg);
  box-shadow: 0 0 2px rgba(255,255,255,0.1);
  animation: rk-scepter 5s ease-in-out infinite;
}
.scn-rebel-camp-night-hotspur-king-ingratitude .glimmer {
  position:absolute; bottom:40%; left:52%; width:6px; height:6px;
  background: radial-gradient(circle, #ffddaa 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(255,221,170,0.3);
  animation: rk-glimmer 3s ease-in-out infinite alternate;
}
@keyframes rk-sky     { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes rk-figure  { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-5px) rotate(2deg) } 60% { transform: translateX(5px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes rk-crown   { 0% { transform: rotate(0) scale(1) } 50% { transform: rotate(-5deg) scale(1.02) } 100% { transform: rotate(5deg) scale(0.98) } }
@keyframes rk-scepter { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-2px) } 100% { transform: rotate(8deg) translateY(2px) } }
@keyframes rk-glimmer { 0% { opacity:0.2; transform: scale(1) } 50% { opacity:0.6; transform: scale(1.5) } 100% { opacity:0.3; transform: scale(0.8) } }

.scn-highway-gadshill-eight-yards {
  background: 
    linear-gradient(180deg, #0f0c29 0%, #302b63 30%, #24243e 70%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 0%, #2a2a5a 0%, transparent 60%);
}
.scn-highway-gadshill-eight-yards .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #151430 0%, transparent 100%);
  animation: gw1-sky 20s ease-in-out infinite alternate;
}
.scn-highway-gadshill-eight-yards .moon {
  position:absolute; top:8%; left:70%; width:30px; height:30px;
  background: radial-gradient(circle, #f0e6a0 0%, #c8b878 50%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 40px 10px rgba(200,184,120,0.4);
  animation: gw1-moon 10s ease-in-out infinite alternate;
}
.scn-highway-gadshill-eight-yards .hills {
  position:absolute; bottom:30%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
  animation: gw1-hills 15s ease-in-out infinite;
}
.scn-highway-gadshill-eight-yards .road {
  position:absolute; bottom:20%; left:10%; right:10%; height:12%;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 20%, #5a4a3a 40%, #4a3a2a 60%, #3a2a1a 100%);
  border-radius: 0 0 20% 20%;
  animation: gw1-road 8s ease-in-out infinite alternate;
}
.scn-highway-gadshill-eight-yards .figure {
  position:absolute; bottom:24%; left:45%; width:16px; height:40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gw1-figure 4s ease-in-out infinite;
}
.scn-highway-gadshill-eight-yards .stick {
  position:absolute; bottom:26%; left:52%; width:4px; height:30px;
  background: #4a3a2a;
  border-radius: 2px;
  transform-origin: bottom center;
  animation: gw1-stick 4s ease-in-out infinite;
}
.scn-highway-gadshill-eight-yards .shadow {
  position:absolute; bottom:22%; left:44%; width:30px; height:6px;
  background: rgba(0,0,0,0.4);
  border-radius:50%;
  filter: blur(3px);
  animation: gw1-shadow 4s ease-in-out infinite;
}
.scn-highway-gadshill-eight-yards .star {
  position:absolute; width:3px; height:3px;
  background: #fff;
  border-radius:50%;
  animation: gw1-twinkle 3s ease-in-out infinite alternate;
}
.scn-highway-gadshill-eight-yards .star.small { top:12%; left:20%; width:2px; height:2px; animation-delay:0.5s; }
.scn-highway-gadshill-eight-yards .star.medium { top:18%; left:50%; animation-delay:1.2s; }

@keyframes gw1-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes gw1-moon { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.05) } 100% { transform: translateY(2px) scale(0.95) } }
@keyframes gw1-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes gw1-road { 0% { transform: skewX(-2deg) } 50% { transform: skewX(2deg) } 100% { transform: skewX(-1deg) } }
@keyframes gw1-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(6px) rotate(3deg) } 50% { transform: translateX(12px) rotate(-4deg) } 75% { transform: translateX(18px) rotate(2deg) } 100% { transform: translateX(24px) rotate(0deg) } }
@keyframes gw1-stick { 0%,100% { transform: rotate(8deg) } 50% { transform: rotate(-5deg) } }
@keyframes gw1-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.3) } }
@keyframes gw1-twinkle { 0% { opacity:0.3 } 50% { opacity:1 } 100% { opacity:0.5 } }

.scn-highway-gadshill-whistle {
  background: 
    linear-gradient(180deg, #0f0c29 0%, #2a1f4a 40%, #1a1a2e 100%),
    radial-gradient(ellipse at 30% 0%, #3a2a5a 0%, transparent 70%);
}
.scn-highway-gadshill-whistle .sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #151430 0%, transparent 100%);
  animation: gw2-sky 18s ease-in-out infinite alternate;
}
.scn-highway-gadshill-whistle .moon {
  position:absolute; top:10%; left:75%; width:28px; height:28px;
  background: radial-gradient(circle, #e8dca0 0%, #b8a870 50%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 30px 8px rgba(200,184,120,0.3);
  animation: gw2-moon 12s ease-in-out infinite alternate;
}
.scn-highway-gadshill-whistle .tree {
  position:absolute; bottom:25%; left:15%; width:10px; height:80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 5px;
  transform-origin: bottom;
  animation: gw2-tree 20s ease-in-out infinite alternate;
}
.scn-highway-gadshill-whistle .horse {
  position:absolute; bottom:28%; left:55%; width:50px; height:30px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 20% 20% 40% / 60% 30% 30% 60%;
  animation: gw2-horse 6s ease-in-out infinite;
}
.scn-highway-gadshill-whistle .figure {
  position:absolute; bottom:26%; left:48%; width:14px; height:36px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gw2-figure 5s ease-in-out infinite;
}
.scn-highway-gadshill-whistle .whistle-note {
  position:absolute; bottom:38%; left:52%; width:8px; height:8px;
  background: radial-gradient(circle, #ffe0a0 0%, transparent 70%);
  border-radius:50%;
  animation: gw2-note 3s ease-out infinite;
}
.scn-highway-gadshill-whistle .mist {
  position:absolute; bottom:20%; left:0; right:0; height:30%;
  background: linear-gradient(90deg, rgba(200,180,160,0.1) 0%, rgba(200,180,160,0.2) 20%, transparent 50%);
  filter: blur(10px);
  animation: gw2-mist 15s linear infinite;
}

@keyframes gw2-sky { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes gw2-moon { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(-5px) } }
@keyframes gw2-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-1deg) } }
@keyframes gw2-horse { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-4px) rotate(1deg) } 60% { transform: translateY(2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes gw2-figure { 0%,100% { transform: translateY(0) } 25% { transform: translateY(-3px) } 50% { transform: translateY(0) } 75% { transform: translateY(-2px) } }
@keyframes gw2-note { 0% { transform: translateY(0) scale(1); opacity:0.8 } 50% { transform: translateY(-20px) scale(0.5); opacity:0.4 } 100% { transform: translateY(-40px) scale(0.2); opacity:0 } }
@keyframes gw2-mist { 0% { transform: translateX(0) } 100% { transform: translateX(-60px) } }

.scn-highway-gadshill-levers {
  background: 
    linear-gradient(180deg, #0a0a0a 0%, #1a1a2a 30%, #2a2a3a 60%, #1a1a1a 100%),
    radial-gradient(ellipse at 50% 30%, #2a2a1a 0%, transparent 60%);
}
.scn-highway-gadshill-levers .ground {
  position:absolute; inset: 60% 0 0 0;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  animation: gw3-ground 10s ease-in-out infinite alternate;
}
.scn-highway-gadshill-levers .figure {
  position:absolute; bottom:12%; left:40%; width:18px; height:30px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 50% 50% / 30% 30% 60% 60%;
  transform-origin: bottom center;
  animation: gw3-figure 3s ease-in-out infinite;
}
.scn-highway-gadshill-levers .lever {
  position:absolute; bottom:20%; left:55%; width:4px; height:50px;
  background: #5a4a3a;
  border-radius: 2px;
  transform-origin: bottom center;
  animation: gw3-lever 3s ease-in-out infinite;
}
.scn-highway-gadshill-levers .bag {
  position:absolute; bottom:15%; left:30%; width:20px; height:16px;
  background: #4a3a2a;
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  transform: rotate(10deg);
  animation: gw3-bag 5s ease-in-out infinite;
}
.scn-highway-gadshill-levers .hat {
  position:absolute; bottom:25%; left:52%; width:14px; height:6px;
  background: #3a2a1a;
  border-radius: 50%;
  transform: rotate(-20deg);
  animation: gw3-hat 4s ease-in-out infinite;
}
.scn-highway-gadshill-levers .spark {
  position:absolute; bottom:30%; left:50%; width:3px; height:3px;
  background: radial-gradient(circle, #ffd080 0%, transparent 80%);
  border-radius:50%;
  box-shadow: 0 0 6px 2px #ffd080;
  animation: gw3-spark 2s ease-out infinite;
}
.scn-highway-gadshill-levers .shadow {
  position:absolute; bottom:8%; left:35%; width:40px; height:8px;
  background: rgba(0,0,0,0.5);
  border-radius:50%;
  filter: blur(4px);
  animation: gw3-shadow 3s ease-in-out infinite;
}

@keyframes gw3-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes gw3-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(5deg) } 50% { transform: translateX(10px) rotate(-5deg) } 75% { transform: translateX(15px) rotate(3deg) } 100% { transform: translateX(20px) rotate(0deg) } }
@keyframes gw3-lever { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(15deg) } }
@keyframes gw3-bag { 0%,100% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-3px) } }
@keyframes gw3-hat { 0%,100% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-30deg) translateX(4px) } }
@keyframes gw3-spark { 0% { transform: translateY(0) scale(1); opacity:1 } 50% { transform: translateY(-30px) scale(0.5); opacity:0.5 } 100% { transform: translateY(-60px) scale(0.1); opacity:0 } }
@keyframes gw3-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.4) } }

.scn-highway-gadshill-ostler-insult {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #1a1a2a 60%, #0a0a0a 100%),
    radial-gradient(ellipse at 50% 0%, #4a3a3a 0%, transparent 50%);
}
.scn-highway-gadshill-ostler-insult .wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(90deg, #3a2a2a 0%, #5a4a3a 20%, #4a3a2a 40%, #5a4a3a 60%, #3a2a2a 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: gw4-wall 15s ease-in-out infinite alternate;
}
.scn-highway-gadshill-ostler-insult .floor {
  position:absolute; inset:60% 0 0 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
  animation: gw4-floor 20s ease-in-out infinite;
}
.scn-highway-gadshill-ostler-insult .ostler {
  position:absolute; bottom:22%; left:45%; width:18px; height:44px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gw4-ostler 4s ease-in-out infinite;
}
.scn-highway-gadshill-ostler-insult .bucket {
  position:absolute; bottom:18%; left:35%; width:16px; height:14px;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 0 0 30% 30%;
  transform: rotate(-10deg);
  animation: gw4-bucket 6s ease-in-out infinite;
}
.scn-highway-gadshill-ostler-insult .pitchfork {
  position:absolute; bottom:30%; left:55%; width:3px; height:50px;
  background: #4a3a2a;
  border-radius: 2px;
  transform-origin: bottom center;
  animation: gw4-fork 5s ease-in-out infinite;
}
.scn-highway-gadshill-ostler-insult .lantern {
  position:absolute; top:25%; left:30%; width:12px; height:16px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 50%, transparent 80%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(255,208,128,0.4);
  animation: gw4-lantern 8s ease-in-out infinite alternate;
}
.scn-highway-gadshill-ostler-insult .rat {
  position:absolute; bottom:12%; left:20%; width:10px; height:5px;
  background: #3a2a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gw4-rat 3s ease-in-out infinite;
}
.scn-highway-gadshill-ostler-insult .hay {
  position:absolute; bottom:35%; left:60%; width:20px; height:8px;
  background: #5a4a2a;
  border-radius: 50%;
  filter: blur(2px);
  animation: gw4-hay 7s linear infinite;
}

@keyframes gw4-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes gw4-floor { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes gw4-ostler { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(3deg) } 50% { transform: translateX(8px) rotate(-2deg) } 75% { transform: translateX(12px) rotate(4deg) } 100% { transform: translateX(16px) rotate(0deg) } }
@keyframes gw4-bucket { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-2px) } }
@keyframes gw4-fork { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(8deg) } }
@keyframes gw4-lantern { 0% { opacity:0.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.8; transform: scale(0.95) } }
@keyframes gw4-rat { 0% { transform: translateX(0) } 25% { transform: translateX(10px) } 50% { transform: translateX(20px) } 75% { transform: translateX(10px) } 100% { transform: translateX(0) } }
@keyframes gw4-hay { 0% { transform: translateX(0) } 100% { transform: translateX(-60px) } }

.scn-prince-apartment-hal-glittering-foil {
  background:
    radial-gradient(ellipse at 30% 40%, #3a2a1a 0%, transparent 50%),
    radial-gradient(ellipse at 70% 60%, #2a1a0a 0%, transparent 40%),
    linear-gradient(180deg, #2a1a0a 0%, #1a0a00 60%, #0a0500 100%);
}
.scn-prince-apartment-hal-glittering-foil .wall {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 80%);
  animation: hap-wall 12s ease-in-out infinite alternate;
}
.scn-prince-apartment-hal-glittering-foil .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-prince-apartment-hal-glittering-foil .window {
  position: absolute;
  top: 12%; left: 50%;
  width: 120px; height: 160px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #6a5a4a 0%, #3a2a1a 70%);
  border: 6px solid #2a1a0a;
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 30px 10px rgba(90,70,50,.4);
  animation: hap-window 8s ease-in-out infinite alternate;
}
.scn-prince-apartment-hal-glittering-foil .casement {
  position: absolute;
  top: 12%; left: 50%;
  width: 120px; height: 160px;
  transform: translateX(-50%);
  background: repeating-linear-gradient(0deg, transparent 0px, transparent 8px, rgba(42,26,10,.3) 8px, rgba(42,26,10,.3) 10px),
              repeating-linear-gradient(90deg, transparent 0px, transparent 10px, rgba(42,26,10,.3) 10px, rgba(42,26,10,.3) 12px);
  border-radius: 4% 4% 8% 8%;
  pointer-events: none;
}
.scn-prince-apartment-hal-glittering-foil .mirror {
  position: absolute;
  top: 20%; right: 15%;
  width: 70px; height: 100px;
  background: linear-gradient(135deg, #6a5a4a 0%, #8a7a6a 30%, #5a4a3a 60%, #3a2a1a 100%);
  border: 4px solid #2a1a0a;
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 0 20px 5px rgba(100,80,60,.3), inset 0 0 15px 3px rgba(200,180,160,.15);
  animation: hap-mirror 15s ease-in-out infinite alternate;
}
.scn-prince-apartment-hal-glittering-foil .figure {
  position: absolute;
  bottom: 28%; left: 35%;
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hap-figure 6s ease-in-out infinite;
}
.scn-prince-apartment-hal-glittering-foil .candle {
  position: absolute;
  bottom: 35%; left: 55%;
  width: 6px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px 2px 1px 1px;
  animation: hap-candle 4s ease-in-out infinite;
}
.scn-prince-apartment-hal-glittering-foil .glow {
  position: absolute;
  bottom: 35%; left: 55%;
  width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 40px 15px rgba(255,208,128,.4);
  animation: hap-glow 3s ease-in-out infinite alternate;
}
@keyframes hap-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes hap-window { 0% { opacity: .7; transform: translateX(-50%) scale(1) } 50% { opacity: .9; transform: translateX(-50%) scale(1.02) } 100% { opacity: .75; transform: translateX(-50%) scale(.98) } }
@keyframes hap-mirror { 0% { opacity: .6; transform: scale(1) } 50% { opacity: .85; transform: scale(1.03) } 100% { opacity: .7; transform: scale(.97) } }
@keyframes hap-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hap-candle { 0%,100% { opacity: .8; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.05) } }
@keyframes hap-glow { 0% { opacity: .6; transform: translate(-50%, -50%) scale(1) } 50% { opacity: 1; transform: translate(-50%, -50%) scale(1.2) } 100% { opacity: .7; transform: translate(-50%, -50%) scale(.9) } }

.scn-london-palace-king-rebuke {
  background:
    radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 50%),
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%);
}
.scn-london-palace-king-rebuke .wall-left {
  position: absolute;
  left: 0; top: 0;
  width: 50%; height: 100%;
  background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 50%, transparent 100%);
  animation: lkr-wall 10s ease-in-out infinite alternate;
}
.scn-london-palace-king-rebuke .wall-right {
  position: absolute;
  right: 0; top: 0;
  width: 50%; height: 100%;
  background: linear-gradient(270deg, #2a1a0a 0%, #3a2a1a 50%, transparent 100%);
  animation: lkr-wall 10s ease-in-out infinite alternate-reverse;
}
.scn-london-palace-king-rebuke .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-london-palace-king-rebuke .throne {
  position: absolute;
  bottom: 25%; left: 45%;
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: lkr-throne 7s ease-in-out infinite;
}
.scn-london-palace-king-rebuke .king {
  position: absolute;
  bottom: 30%; left: 45%;
  width: 40px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lkr-king 4s ease-in-out infinite;
}
.scn-london-palace-king-rebuke .courtier-a {
  position: absolute;
  bottom: 28%; left: 25%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lkr-courtier 5s ease-in-out infinite;
}
.scn-london-palace-king-rebuke .courtier-b {
  position: absolute;
  bottom: 28%; left: 55%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lkr-courtier 5s ease-in-out infinite 2s;
}
.scn-london-palace-king-rebuke .shadow {
  position: absolute;
  bottom: 28%; left: 38%;
  width: 80px; height: 30px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: lkr-shadow 3s ease-in-out infinite alternate;
}
@keyframes lkr-wall { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes lkr-throne { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes lkr-king { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes lkr-courtier { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(2px) rotate(3deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes lkr-shadow { 0% { opacity: .4; transform: scaleX(1) } 50% { opacity: .7; transform: scaleX(1.2) } 100% { opacity: .5; transform: scaleX(.9) } }

.scn-london-palace-worcester-defense {
  background:
    radial-gradient(ellipse at 60% 40%, #4a3a2a 0%, transparent 50%),
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%);
}
.scn-london-palace-worcester-defense .wall-bg {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 80%);
  animation: lwd-wall 12s ease-in-out infinite alternate;
}
.scn-london-palace-worcester-defense .column {
  position: absolute;
  top: 0; left: 50%;
  width: 30px; height: 65%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  transform: translateX(-50%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 0 10px rgba(0,0,0,.3);
  animation: lwd-column 9s ease-in-out infinite;
}
.scn-london-palace-worcester-defense .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-london-palace-worcester-defense .king {
  position: absolute;
  bottom: 28%; left: 35%;
  width: 40px; height: 55px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lwd-king 5s ease-in-out infinite;
}
.scn-london-palace-worcester-defense .worcester {
  position: absolute;
  bottom: 28%; left: 55%;
  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: lwd-worcester 4s ease-in-out infinite;
}
.scn-london-palace-worcester-defense .hand {
  position: absolute;
  bottom: 35%; left: 55%;
  width: 14px; height: 10px;
  background: #3a2a1a;
  border-radius: 50% 50% 40% 40%;
  transform-origin: right center;
  animation: lwd-hand 3s ease-in-out infinite alternate;
}
.scn-london-palace-worcester-defense .halberd {
  position: absolute;
  bottom: 35%; left: 40%;
  width: 4px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 1px;
  transform-origin: bottom center;
  animation: lwd-halberd 6s ease-in-out infinite;
}
.scn-london-palace-worcester-defense .shadow {
  position: absolute;
  bottom: 25%; left: 48%;
  width: 60px; height: 25px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: lwd-shadow 4s ease-in-out infinite alternate;
}
@keyframes lwd-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes lwd-column { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } }
@keyframes lwd-king { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes lwd-worcester { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes lwd-hand { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(15deg) scale(1.1) } 100% { transform: rotate(-5deg) scale(.95) } }
@keyframes lwd-halberd { 0%,100% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } }
@keyframes lwd-shadow { 0% { opacity: .3; transform: scaleX(1) } 50% { opacity: .6; transform: scaleX(1.3) } 100% { opacity: .4; transform: scaleX(.8) } }

.scn-london-palace-king-orders-worcester {
  background:
    radial-gradient(ellipse at 40% 35%, #4a3a2a 0%, transparent 50%),
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%);
}
.scn-london-palace-king-orders-worcester .wall-bg {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 80%);
  animation: lkw-wall 10s ease-in-out infinite alternate;
}
.scn-london-palace-king-orders-worcester .arch {
  position: absolute;
  top: 0; left: 50%;
  width: 100px; height: 60%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 0%, transparent 55%, #2a1a0a 55%, #2a1a0a 58%, transparent 58%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: lkw-arch 12s ease-in-out infinite alternate;
}
.scn-london-palace-king-orders-worcester .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-london-palace-king-orders-worcester .throne {
  position: absolute;
  bottom: 25%; left: 35%;
  width: 50px; height: 75px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: lkw-throne 8s ease-in-out infinite;
}
.scn-london-palace-king-orders-worcester .king {
  position: absolute;
  bottom: 30%; left: 35%;
  width: 40px; height: 52px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lkw-king 4s ease-in-out infinite;
}
.scn-london-palace-king-orders-worcester .worcester {
  position: absolute;
  bottom: 28%; left: 55%;
  width: 22px; height: 45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lkw-worcester 5s ease-in-out infinite;
}
.scn-london-palace-king-orders-worcester .hand-extended {
  position: absolute;
  bottom: 35%; left: 48%;
  width: 18px; height: 8px;
  background: #3a2a1a;
  border-radius: 50% 50% 20% 20%;
  transform-origin: left center;
  animation: lkw-hand 3s ease-in-out infinite alternate;
}
.scn-london-palace-king-orders-worcester .guard {
  position: absolute;
  bottom: 28%; left: 62%;
  width: 30px; 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: lkw-guard 6s ease-in-out infinite;
}
@keyframes lkw-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes lkw-arch { 0% { opacity: .7; transform: translateX(-50%) scaleY(1) } 50% { opacity: .9; transform: translateX(-50%) scaleY(1.03) } 100% { opacity: .75; transform: translateX(-50%) scaleY(.98) } }
@keyframes lkw-throne { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes lkw-king { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes lkw-worcester { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes lkw-hand { 0% { transform: rotate(-10deg) scale(1) } 50% { transform: rotate(20deg) scale(1.15) } 100% { transform: rotate(-5deg) scale(.9) } }
@keyframes lkw-guard { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }

/* london-palace-king-scourge */
.scn-london-palace-king-scourge {
  background: 
    linear-gradient(180deg, #2e2a3e 0%, #4a3a4a 30%, #6a4a4a 60%, #3a2a2a 100%),
    radial-gradient(ellipse at 50% 30%, #8a6a5a 0%, transparent 60%);
}
.scn-london-palace-king-scourge .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.5);
}
.scn-london-palace-king-scourge .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-top: 3px solid #8a7a5a;
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.4);
}
.scn-london-palace-king-scourge .column {
  position: absolute; bottom: 30%; width: 28px; height: 55%;
  background: linear-gradient(90deg, #8a7a5a 0%, #a09070 30%, #b0a080 50%, #a09070 70%, #8a7a5a 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px rgba(0,0,0,0.3);
}
.scn-london-palace-king-scourge .col-left { left: 10%; }
.scn-london-palace-king-scourge .col-right { right: 10%; }
.scn-london-palace-king-scourge .throne {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 60px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-london-palace-king-scourge .king-figure {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 34px; height: 48px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1010 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: ks1-figure 6s ease-in-out infinite alternate;
}
.scn-london-palace-king-scourge .shadow-stripe {
  position: absolute; top: 30%; left: 20%; right: 20%; height: 8px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.3) 30%, transparent 70%);
  filter: blur(3px);
  animation: ks1-stripe 8s ease-in-out infinite alternate;
}
.scn-london-palace-king-scourge .light-beam {
  position: absolute; top: 8%; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(255,220,180,0.15) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: ks1-beam 4s ease-in-out infinite alternate;
}
.scn-london-palace-king-scourge .dust-motes {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: radial-gradient(circle at 30% 40%, rgba(255,200,150,0.03) 0%, transparent 70%);
  filter: blur(6px);
  animation: ks1-dust 12s ease-in-out infinite;
}
@keyframes ks1-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes ks1-stripe {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.1); }
  100% { opacity: 0.3; transform: scaleX(1); }
}
@keyframes ks1-beam {
  0% { opacity: 0.4; transform: translateY(0) scaleY(1); }
  50% { opacity: 0.8; transform: translateY(2px) scaleY(1.05); }
  100% { opacity: 0.4; transform: translateY(0) scaleY(1); }
}
@keyframes ks1-dust {
  0% { opacity: 0.3; transform: scale(0.95); }
  50% { opacity: 0.6; transform: scale(1.05); }
  100% { opacity: 0.3; transform: scale(0.95); }
}

/* london-palace-king-rebukes-hal */
.scn-london-palace-king-rebukes-hal {
  background:
    linear-gradient(180deg, #3a2a2a 0%, #5a3a3a 30%, #7a5a4a 60%, #4a3a2a 100%),
    radial-gradient(ellipse at 50% 50%, #6a4a3a 0%, transparent 60%);
}
.scn-london-palace-king-rebukes-hal .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
}
.scn-london-palace-king-rebukes-hal .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-top: 2px solid #8a6a4a;
}
.scn-london-palace-king-rebukes-hal .window-warm {
  position: absolute; top: 8%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(200,160,100,0.3), 0 0 20px rgba(200,160,100,0.2);
  animation: kr2-window 6s ease-in-out infinite alternate;
}
.scn-london-palace-king-rebukes-hal .table {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 8px;
  background: linear-gradient(90deg, #6a4a3a 0%, #8a6a4a 50%, #6a4a3a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
}
.scn-london-palace-king-rebukes-hal .king-figure {
  position: absolute; bottom: 25%; left: 42%; width: 30px; height: 42px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1010 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: kr2-king 5s ease-in-out infinite alternate;
}
.scn-london-palace-king-rebukes-hal .prince-silhouette {
  position: absolute; bottom: 22%; left: 58%; width: 22px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kr2-prince 4s ease-in-out infinite;
}
.scn-london-palace-king-rebukes-hal .candle {
  position: absolute; bottom: 28%; left: 50%; width: 4px; height: 14px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 2px;
  transform: translateX(-50%);
}
.scn-london-palace-king-rebukes-hal .candle-glow {
  position: absolute; bottom: 26%; left: 50%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,200,100,0.3) 40%, transparent 100%);
  border-radius: 50%;
  transform: translate(-50%, 50%);
  animation: kr2-candle 3s ease-in-out infinite alternate;
}
.scn-london-palace-king-rebukes-hal .shadow-arch {
  position: absolute; top: 0; left: 20%; right: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, transparent 0%, rgba(0,0,0,0.2) 60%);
  filter: blur(4px);
  animation: kr2-arch 8s ease-in-out infinite alternate;
}
@keyframes kr2-window {
  0% { opacity: 0.7; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.05); }
  100% { opacity: 0.7; transform: scaleX(1); }
}
@keyframes kr2-king {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes kr2-prince {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(3px) translateY(-1px) rotate(0deg); }
  50% { transform: translateX(0) translateY(0) rotate(2deg); }
  75% { transform: translateX(-3px) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes kr2-candle {
  0% { opacity: 0.6; transform: translate(-50%, 50%) scale(0.8); }
  50% { opacity: 1; transform: translate(-50%, 50%) scale(1.1); }
  100% { opacity: 0.6; transform: translate(-50%, 50%) scale(0.8); }
}
@keyframes kr2-arch {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.1); }
  100% { opacity: 0.3; transform: scaleY(1); }
}

/* london-palace-hal-submission */
.scn-london-palace-hal-submission {
  background:
    linear-gradient(180deg, #3a3a4a 0%, #5a4a3a 40%, #7a6a5a 80%, #4a3a2a 100%),
    radial-gradient(ellipse at 50% 30%, #8a7a6a 0%, transparent 70%);
}
.scn-london-palace-hal-submission .bg-wall {
  position: absolute; inset:0 0 28% 0;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
}
.scn-london-palace-hal-submission .floor {
  position: absolute; bottom:0; left:0; right:0; height:28%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-top: 2px solid #6a5a4a;
}
.scn-london-palace-hal-submission .arch-left {
  position: absolute; bottom:28%; left:8%; width:20%; height:72%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 0 0 0 / 80% 0 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
}
.scn-london-palace-hal-submission .arch-right {
  position: absolute; bottom:28%; right:8%; width:20%; height:72%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 0 50% 0 0 / 0 80% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
}
.scn-london-palace-hal-submission .prince-kneeling {
  position: absolute; bottom:24%; left:40%; width:20px; height:32px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 20% / 60% 60% 20% 20%;
  transform: scaleY(0.7) translateY(5px); /* kneeling posture */
  animation: hs3-prince 5s ease-in-out infinite alternate;
}
.scn-london-palace-hal-submission .king-throne {
  position: absolute; bottom:24%; left:55%; width:40px; height:44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1010 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: hs3-king 8s ease-in-out infinite;
}
.scn-london-palace-hal-submission .tapestry {
  position: absolute; top:8%; left:20%; right:20%; height:50%;
  background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 100%);
  border-radius: 4px;
  opacity:0.6;
  animation: hs3-tapestry 12s ease-in-out infinite alternate;
}
.scn-london-palace-hal-submission .light-wash {
  position: absolute; top:0; left:30%; right:30%; height:70%;
  background: linear-gradient(180deg, rgba(220,200,180,0.1) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: hs3-light 6s ease-in-out infinite alternate;
}
@keyframes hs3-prince {
  0% { transform: scaleY(0.7) translateY(5px) rotate(0deg); }
  50% { transform: scaleY(0.72) translateY(4px) rotate(1deg); }
  100% { transform: scaleY(0.7) translateY(5px) rotate(0deg); }
}
@keyframes hs3-king {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes hs3-tapestry {
  0% { opacity:0.6; filter: brightness(1); }
  50% { opacity:0.8; filter: brightness(1.1); }
  100% { opacity:0.6; filter: brightness(1); }
}
@keyframes hs3-light {
  0% { opacity:0.5; transform: translateX(0); }
  50% { opacity:0.8; transform: translateX(5px); }
  100% { opacity:0.5; transform: translateX(0); }
}

/* london-palace-king-wonder */
.scn-london-palace-king-wonder {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #4a3a4a 30%, #6a4a4a 60%, #3a2a2a 100%),
    radial-gradient(ellipse at 40% 40%, #8a5a5a 0%, transparent 70%);
}
.scn-london-palace-king-wonder .bg-wall {
  position: absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
}
.scn-london-palace-king-wonder .floor {
  position: absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-top: 2px solid #7a6a4a;
}
.scn-london-palace-king-wonder .window-tall {
  position: absolute; top:5%; left:30%; width:40%; height:45%;
  background: linear-gradient(180deg, #b09878 0%, #8a7050 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(200,180,140,0.2);
  animation: kw4-window 7s ease-in-out infinite alternate;
}
.scn-london-palace-king-wonder .curtain-curve {
  position: absolute; top:5%; left:25%; width:50%; height:50%;
  background: radial-gradient(ellipse at 50% 0%, transparent 30%, rgba(80,50,30,0.4) 60%);
  filter: blur(6px);
  animation: kw4-curtain 10s ease-in-out infinite alternate;
}
.scn-london-palace-king-wonder .king-figure {
  position: absolute; bottom:22%; left:38%; width:30px; height:46px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1010 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: kw4-king 5s ease-in-out infinite alternate;
}
.scn-london-palace-king-wonder .prince-figure {
  position: absolute; bottom:22%; left:55%; width:22px; height:40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kw4-prince 6s ease-in-out infinite;
}
.scn-london-palace-king-wonder .orb {
  position: absolute; bottom:25%; left:46%; width:14px; height:14px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 4px rgba(200,160,80,0.4);
  animation: kw4-orb 4s ease-in-out infinite alternate;
}
.scn-london-palace-king-wonder .shadow-lattice {
  position: absolute; top:0; left:0; right:0; bottom:25%;
  background: repeating-linear-gradient(
    0deg,
    transparent 0px,
    transparent 30px,
    rgba(0,0,0,0.05) 30px,
    rgba(0,0,0,0.05) 32px
  ),
  repeating-linear-gradient(
    90deg,
    transparent 0px,
    transparent 40px,
    rgba(0,0,0,0.05) 40px,
    rgba(0,0,0,0.05) 42px
  );
  animation: kw4-lattice 15s linear infinite;
}
@keyframes kw4-window {
  0% { opacity:0.7; transform: scaleY(1); }
  50% { opacity:1; transform: scaleY(1.03); }
  100% { opacity:0.7; transform: scaleY(1); }
}
@keyframes kw4-curtain {
  0% { opacity:0.4; transform: scaleX(1); }
  50% { opacity:0.6; transform: scaleX(1.05); }
  100% { opacity:0.4; transform: scaleX(1); }
}
@keyframes kw4-king {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes kw4-prince {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  33% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  66% { transform: translateX(0) translateY(0) rotate(-1deg); }
  100% { transform: translateX(-2px) translateY(-1px) rotate(0deg); }
}
@keyframes kw4-orb {
  0% { opacity:0.6; transform: scale(0.9); }
  50% { opacity:1; transform: scale(1.1); }
  100% { opacity:0.6; transform: scale(0.9); }
}
@keyframes kw4-lattice {
  0% { transform: translate(0,0); }
  100% { transform: translate(4px,4px); }
}

.scn-field-hal-finds-falstaff-dead {
  background: linear-gradient(180deg, #87CEEB 0%, #f0d89c 40%, #d4a76a 100%),
              radial-gradient(ellipse at 50% 0%, #fff4d0 0%, transparent 60%);
  animation: fhf-bg 20s ease-in-out infinite alternate;
}
.scn-field-hal-finds-falstaff-dead .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0d4f0 0%, transparent 100%);
  opacity: 0.8;
}
.scn-field-hal-finds-falstaff-dead .sun-halo {
  position: absolute; top: 8%; left: 65%;
  width: 120px; height: 120px;
  background: radial-gradient(circle, #ffe680 0%, #ffcc60 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(255,204,96,0.3);
  animation: fhf-sun 6s ease-in-out infinite alternate;
}
.scn-field-hal-finds-falstaff-dead .hill-bg {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6b8e23 0%, #4a6a1a 100%);
  border-radius: 60% 40% 0 0 / 70% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: fhf-hill 15s ease-in-out infinite alternate;
}
.scn-field-hal-finds-falstaff-dead .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7c9c3a 0%, #4a6a1a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
}
.scn-field-hal-finds-falstaff-dead .falstaff-body {
  position: absolute; bottom: 8%; left: 30%;
  width: 100px; height: 50px;
  background: radial-gradient(ellipse at 50% 40%, #8b6b4a 0%, #5a3a2a 100%);
  border-radius: 60% 60% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
  animation: fhf-body 8s ease-in-out infinite;
}
.scn-field-hal-finds-falstaff-dead .hal-figure {
  position: absolute; bottom: 12%; left: 55%;
  width: 24px; height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fhf-hal 4s ease-in-out infinite alternate;
  box-shadow: -10px 0 15px rgba(0,0,0,0.3);
}
.scn-field-hal-finds-falstaff-dead .grass-tuft {
  position: absolute; bottom: 5%; left: 50%;
  width: 8px; height: 20px;
  background: #5a7a2a;
  border-radius: 50% 50% 0 0;
  filter: blur(1px);
  animation: fhf-grass 3s ease-in-out infinite;
}

@keyframes fhf-bg { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes fhf-sun { 0% { transform: scale(1) translateY(0); opacity: 0.9 } 50% { transform: scale(1.05) translateY(-3px); opacity: 1 } 100% { transform: scale(1) translateY(0); opacity: 0.9 } }
@keyframes fhf-hill { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fhf-body { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) translateY(1px) } }
@keyframes fhf-hal { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fhf-grass { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } }

.scn-field-falstaff-rises {
  background: linear-gradient(180deg, #a0d0f0 0%, #f5e6b0 40%, #c8a060 100%),
              radial-gradient(ellipse at 50% 0%, #fff7d0 0%, transparent 60%);
}
.scn-field-falstaff-rises .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c0e0ff 0%, transparent 100%);
  opacity: 0.85;
}
.scn-field-falstaff-rises .sun-rises {
  position: absolute; top: 12%; left: 70%;
  width: 90px; height: 90px;
  background: radial-gradient(circle, #ffe680 0%, #ffcc60 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,204,96,0.4);
  animation: fr-sun 8s ease-in-out infinite alternate;
}
.scn-field-falstaff-rises .hill-bg {
  position: absolute; bottom: 30%; left: -5%; right: -5%; height: 28%;
  background: linear-gradient(180deg, #7a9e3a 0%, #4a6a1a 100%);
  border-radius: 50% 50% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: fr-hill 14s ease-in-out infinite alternate;
}
.scn-field-falstaff-rises .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8aaa4a 0%, #5a7a2a 100%);
  border-radius: 20% 80% 0 0 / 30% 50% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.3);
}
.scn-field-falstaff-rises .falstaff-rising {
  position: absolute; bottom: 5%; left: 40%;
  width: 110px; height: 70px;
  background: radial-gradient(ellipse at 50% 30%, #9b7b5a 0%, #6b4a2a 100%);
  border-radius: 60% 60% 30% 30% / 80% 80% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: fr-rise 3s ease-in-out infinite alternate;
}
.scn-field-falstaff-rises .shadow {
  position: absolute; bottom: 0; left: 38%;
  width: 120px; height: 12px;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(4px);
  animation: fr-shadow 3s ease-in-out infinite alternate;
}
.scn-field-falstaff-rises .dust {
  position: absolute; bottom: 10%; left: 45%;
  width: 20px; height: 20px;
  background: rgba(200,180,120,0.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: fr-dust 2s ease-in-out infinite;
}

@keyframes fr-sun { 0% { transform: scale(1); opacity: 0.8 } 50% { transform: scale(1.08) translateY(-4px); opacity: 1 } 100% { transform: scale(1); opacity: 0.9 } }
@keyframes fr-hill { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes fr-rise { 0% { transform: translateY(0) scale(1) rotate(0deg) } 50% { transform: translateY(-12px) scale(1.03) rotate(2deg) } 100% { transform: translateY(0) scale(1) rotate(0deg) } }
@keyframes fr-shadow { 0% { transform: scaleX(1); opacity: 0.8 } 50% { transform: scaleX(0.8); opacity: 0.6 } 100% { transform: scaleX(1); opacity: 0.8 } }
@keyframes fr-dust { 0%,100% { transform: translateY(0) scale(1); opacity: 0.3 } 50% { transform: translateY(-15px) scale(1.5); opacity: 0 } }

.scn-field-falstaff-stabs-hotspur {
  background: linear-gradient(180deg, #8fb8d6 0%, #e8d8a8 40%, #b89050 100%),
              radial-gradient(ellipse at 50% 10%, #fff4c0 0%, transparent 50%);
}
.scn-field-falstaff-stabs-hotspur .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0d0e8 0%, transparent 100%);
  opacity: 0.75;
}
.scn-field-falstaff-stabs-hotspur .sun {
  position: absolute; top: 10%; left: 60%;
  width: 100px; height: 100px;
  background: radial-gradient(circle, #ffec80 0%, #ffd060 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 70px 30px rgba(255,208,96,0.3);
  animation: fsh-sun 7s ease-in-out infinite alternate;
}
.scn-field-falstaff-stabs-hotspur .hill-bg {
  position: absolute; bottom: 30%; left: -10%; right: -10%; height: 32%;
  background: linear-gradient(180deg, #6a8c2a 0%, #3a5a1a 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.25);
  animation: fsh-hill 16s ease-in-out infinite alternate;
}
.scn-field-falstaff-stabs-hotspur .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7a9c3a 0%, #4a6a1a 100%);
  border-radius: 10% 90% 0 0 / 20% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-field-falstaff-stabs-hotspur .hotspur-body {
  position: absolute; bottom: 8%; left: 35%;
  width: 80px; height: 45px;
  background: radial-gradient(ellipse at 50% 40%, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform: rotate(10deg);
  animation: fsh-body 6s ease-in-out infinite;
}
.scn-field-falstaff-stabs-hotspur .falstaff-stab {
  position: absolute; bottom: 10%; left: 48%;
  width: 100px; height: 80px;
  background: radial-gradient(ellipse at 50% 30%, #9b7b5a 0%, #6b4a2a 100%);
  border-radius: 60% 60% 30% 30% / 80% 80% 20% 20%;
  transform-origin: bottom right;
  animation: fsh-stab 2s ease-in-out infinite alternate;
}
.scn-field-falstaff-stabs-hotspur .sword {
  position: absolute; bottom: 22%; left: 55%;
  width: 4px; height: 50px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  transform-origin: bottom left;
  box-shadow: 0 0 4px rgba(255,255,255,0.3);
  animation: fsh-sword 2s ease-in-out infinite alternate;
}
.scn-field-falstaff-stabs-hotspur .blood-spot {
  position: absolute; bottom: 8%; left: 40%;
  width: 12px; height: 8px;
  background: #8a3a2a; /* terracotta dark */
  border-radius: 50%;
  filter: blur(1px);
  animation: fsh-blood 2s ease-in-out infinite;
}

@keyframes fsh-sun { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes fsh-hill { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fsh-body { 0%,100% { transform: rotate(10deg) } 50% { transform: rotate(8deg) translateY(1px) } }
@keyframes fsh-stab { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(5deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes fsh-sword { 0% { transform: rotate(20deg) } 50% { transform: rotate(30deg) } 100% { transform: rotate(20deg) } }
@keyframes fsh-blood { 0%,100% { transform: scale(1); opacity: 0.6 } 50% { transform: scale(1.3); opacity: 0.4 } }

.scn-field-hal-amazed {
  background: linear-gradient(180deg, #9ac8e0 0%, #f0e0b0 40%, #c8a060 100%),
              radial-gradient(ellipse at 50% 0%, #fff8d0 0%, transparent 60%);
}
.scn-field-hal-amazed .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c0dff0 0%, transparent 100%);
  opacity: 0.8;
}
.scn-field-hal-amazed .sun-burst {
  position: absolute; top: 10%; left: 55%;
  width: 140px; height: 140px;
  background: radial-gradient(circle, #ffe680 0%, #ffcc60 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 100px 40px rgba(255,204,96,0.3);
  animation: fha-sun 6s ease-in-out infinite alternate;
}
.scn-field-hal-amazed .hill-bg {
  position: absolute; bottom: 30%; left: -5%; right: -5%; height: 30%;
  background: linear-gradient(180deg, #7a9e3a 0%, #4a6a1a 100%);
  border-radius: 50% 50% 0 0 / 70% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: fha-hill 13s ease-in-out infinite alternate;
}
.scn-field-hal-amazed .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8aaa4a 0%, #5a7a2a 100%);
  border-radius: 30% 70% 0 0 / 25% 45% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.3);
}
.scn-field-hal-amazed .hal-surprise {
  position: absolute; bottom: 15%; left: 42%;
  width: 28px; height: 90px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fha-hal 2.5s ease-in-out infinite alternate;
  box-shadow: -5px 0 10px rgba(0,0,0,0.3);
}
.scn-field-hal-amazed .falstaff-stand {
  position: absolute; bottom: 12%; left: 55%;
  width: 100px; height: 75px;
  background: radial-gradient(ellipse at 50% 30%, #9b7b5a 0%, #6b4a2a 100%);
  border-radius: 60% 60% 30% 30% / 80% 80% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: fha-falstaff 4s ease-in-out infinite alternate;
}
.scn-field-hal-amazed .grass-blade {
  position: absolute; bottom: 6%; left: 48%;
  width: 6px; height: 16px;
  background: #5a7a2a;
  border-radius: 50% 50% 0 0;
  filter: blur(1px);
  animation: fha-grass 2s ease-in-out infinite;
}

@keyframes fha-sun { 0% { transform: scale(1); opacity: 0.85 } 50% { transform: scale(1.1) translateY(-5px); opacity: 1 } 100% { transform: scale(1); opacity: 0.9 } }
@keyframes fha-hill { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes fha-hal { 0% { transform: translateY(0) rotate(-5deg) scale(1) } 50% { transform: translateY(-6px) rotate(5deg) scale(1.02) } 100% { transform: translateY(0) rotate(-5deg) scale(1) } }
@keyframes fha-falstaff { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fha-grass { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(8deg) } }

/* Scene 1: King dismisses Northumberland */
.scn-london-palace-king-dismisses {
  background: 
    linear-gradient(180deg, #f5eedc 0%, #e3d5b8 40%, #c9b088 100%),
    radial-gradient(ellipse at 30% 50%, #fdf6e3 0%, transparent 60%);
}
.scn-london-palace-king-dismisses .throne-back {
  position: absolute; bottom: 32%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #8b6f3f 0%, #5a4426 100%);
  border-radius: 12% 12% 4% 4%; box-shadow: 4px 0 10px rgba(0,0,0,0.3);
  animation: l1-thronepulse 6s ease-in-out infinite;
}
.scn-london-palace-king-dismisses .throne-seat {
  position: absolute; bottom: 32%; left: 28%; width: 50px; height: 18px;
  background: #a07d50; border-radius: 6px;
}
.scn-london-palace-king-dismisses .king-torso {
  position: absolute; bottom: 32%; left: 33%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 30% 30% 20% 20%; transform-origin: bottom;
  animation: l1-breathe 4s ease-in-out infinite;
}
.scn-london-palace-king-dismisses .king-head {
  position: absolute; bottom: 64%; left: 34%; width: 18px; height: 22px;
  background: linear-gradient(180deg, #ffe5c4 0%, #eac89a 100%);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 -2px 6px rgba(139,111,63,0.5);
}
.scn-london-palace-king-dismisses .king-crown {
  position: absolute; bottom: 78%; left: 32%; width: 22px; height: 10px;
  background: linear-gradient(180deg, #e8c34a 0%, #b8932a 100%);
  border-radius: 50% 50% 0 0; clip-path: polygon(0% 100%, 15% 0%, 50% 30%, 85% 0%, 100% 100%);
  animation: l1-crown 8s ease-in-out infinite;
}
.scn-london-palace-king-dismisses .northumberland-figure {
  position: absolute; bottom: 28%; right: 20%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a3a5a 0%, #1e1e3a 100%);
  border-radius: 40% 40% 20% 20%; transform-origin: bottom;
  animation: l1-bow 5s ease-in-out infinite;
}
.scn-london-palace-king-dismisses .guard-left {
  position: absolute; bottom: 26%; left: 10%; width: 16px; height: 56px;
  background: linear-gradient(180deg, #5e3a1a 0%, #3a2210 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: -2px 0 6px rgba(0,0,0,0.3);
  animation: l1-guard 12s ease-in-out infinite;
}
.scn-london-palace-king-dismisses .guard-right {
  position: absolute; bottom: 26%; right: 10%; width: 16px; height: 56px;
  background: linear-gradient(180deg, #5e3a1a 0%, #3a2210 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 2px 0 6px rgba(0,0,0,0.3);
  animation: l1-guard 12s ease-in-out infinite 6s;
}
.scn-london-palace-king-dismisses .floor-shadow {
  position: absolute; bottom: 22%; left: 10%; width: 80%; height: 8%;
  background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%);
  border-radius: 50%;
}
@keyframes l1-thronepulse {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
}
@keyframes l1-breathe {
  0%, 100% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-1px); }
}
@keyframes l1-crown {
  0%, 100% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-1px); }
}
@keyframes l1-bow {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(10deg) translateY(-3px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(-5deg) translateY(-2px); }
}
@keyframes l1-guard {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}

/* Scene 2: Worcester returns */
.scn-london-palace-worcester-returns {
  background: 
    linear-gradient(90deg, #f7e8d0 0%, #e6c9a0 50%, #d4a87a 100%),
    radial-gradient(ellipse at 80% 30%, #fff5e6 0%, transparent 70%);
}
.scn-london-palace-worcester-returns .doorway {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 70%;
  background: linear-gradient(180deg, #5c3a1a 0%, #2e1d0d 100%);
  border-radius: 6% 6% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: l2-doorway 10s ease-in-out infinite;
}
.scn-london-palace-worcester-returns .worcester-body {
  position: absolute; bottom: 22%; left: 45%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #702243 0%, #4a1426 100%);
  border-radius: 40% 40% 20% 20%; transform-origin: bottom;
  animation: l2-storm 3s ease-in-out infinite;
}
.scn-london-palace-worcester-returns .worcester-head {
  position: absolute; bottom: 58%; left: 46%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #ffeadd 0%, #f7c9a0 100%);
  border-radius: 50% 50% 40% 40%;
  animation: l2-headshake 4s ease-in-out infinite;
}
.scn-london-palace-worcester-returns .worcester-sword {
  position: absolute; bottom: 30%; right: 42%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #d4d4d4 0%, #808080 100%);
  transform-origin: 50% 100%; border-radius: 2px;
  animation: l2-draw 5s ease-in-out infinite;
}
.scn-london-palace-worcester-returns .capetunic {
  position: absolute; bottom: 28%; left: 44%; width: 26px; height: 12px;
  background: linear-gradient(180deg, #a0461a 0%, #702243 100%);
  border-radius: 50% 50% 0 0; transform: rotate(5deg);
  animation: l2-cape 6s ease-in-out infinite;
}
.scn-london-palace-worcester-returns .boots {
  position: absolute; bottom: 20%; left: 46%; width: 14px; height: 10px;
  background: #1a1a1a; border-radius: 0 0 30% 30%;
  animation: l2-step 3s ease-in-out infinite;
}
.scn-london-palace-worcester-returns .floor-line {
  position: absolute; bottom: 18%; left: 0; width: 100%; height: 2px;
  background: linear-gradient(90deg, transparent, #a07d50, transparent);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.scn-london-palace-worcester-returns .wall-torch {
  position: absolute; top: 10%; right: 10%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #f5c842 0%, #d4882a 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 4px #f5c842;
  animation: l2-flame 2s ease-in-out infinite alternate;
}
@keyframes l2-doorway {
  0%, 100% { transform: scaleX(1); }
  50% { transform: scaleX(0.98); }
}
@keyframes l2-storm {
  0%, 100% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(4px) rotate(2deg); }
}
@keyframes l2-headshake {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(8deg); }
  75% { transform: rotate(-8deg); }
}
@keyframes l2-draw {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(30deg) translateY(-2px); }
}
@keyframes l2-cape {
  0%, 100% { transform: rotate(5deg) scaleX(1); }
  50% { transform: rotate(8deg) scaleX(1.1); }
}
@keyframes l2-step {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes l2-flame {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.15); opacity: 1; }
  100% { transform: scaleY(0.9); opacity: 0.9; }
}

/* Scene 3: Worcester observes */
.scn-london-palace-worcester-observes {
  background: 
    linear-gradient(135deg, #e6d4b3 0%, #c9b088 30%, #a8895e 100%),
    radial-gradient(ellipse at 20% 60%, #fdf6e3 0%, transparent 50%);
}
.scn-london-palace-worcester-observes .pillar-left {
  position: absolute; bottom: 0; left: 5%; width: 8%; height: 85%;
  background: linear-gradient(90deg, #8b7355 0%, #b8a080 40%, #8b7355 100%);
  border-radius: 4px; box-shadow: 2px 0 8px rgba(0,0,0,0.3);
  animation: l3-pillar 20s ease-in-out infinite alternate;
}
.scn-london-palace-worcester-observes .pillar-right {
  position: absolute; bottom: 0; right: 5%; width: 8%; height: 85%;
  background: linear-gradient(90deg, #8b7355 0%, #b8a080 40%, #8b7355 100%);
  border-radius: 4px; box-shadow: -2px 0 8px rgba(0,0,0,0.3);
  animation: l3-pillar 20s ease-in-out infinite alternate-reverse;
}
.scn-london-palace-worcester-observes .worcester-half {
  position: absolute; bottom: 20%; right: 25%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #702243 0%, #4a1426 100%);
  border-radius: 40% 40% 20% 20%; transform-origin: bottom left;
  animation: l3-peek 8s ease-in-out infinite;
}
.scn-london-palace-worcester-observes .worcester-eye {
  position: absolute; bottom: 45%; right: 27%; width: 6px; height: 6px;
  background: radial-gradient(circle, #f5f5f5 0%, #d4c4a0 80%);
  border-radius: 50%; box-shadow: 0 0 4px 1px rgba(255,255,255,0.5);
  animation: l3-blink 4s ease-in-out infinite;
}
.scn-london-palace-worcester-observes .king-silhouette {
  position: absolute; bottom: 24%; left: 40%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0702 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 4px 0 10px rgba(0,0,0,0.4);
  animation: l3-king 12s ease-in-out infinite;
}
.scn-london-palace-worcester-observes .letter-seal {
  position: absolute; bottom: 35%; left: 48%; width: 12px; height: 14px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 4px; transform: rotate(15deg);
  animation: l3-seal 6s ease-in-out infinite;
}
.scn-london-palace-worcester-observes .table-edge {
  position: absolute; bottom: 24%; left: 20%; width: 60%; height: 6px;
  background: linear-gradient(90deg, transparent, #6b4f2a 20%, #6b4f2a 80%, transparent);
  border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,0.2);
}
@keyframes l3-pillar {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.01) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes l3-peek {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(5deg); }
}
@keyframes l3-blink {
  0%, 90%, 100% { transform: scaleY(1); }
  95% { transform: scaleY(0.1); }
}
@keyframes l3-king {
  0%, 100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
}
@keyframes l3-seal {
  0%, 100% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(20deg) translateY(-2px); }
}

/* Scene 4: Northumberland justifies */
.scn-london-palace-northumberland-justifies {
  background: 
    linear-gradient(180deg, #f0e0c8 0%, #d4bd9a 40%, #b89870 100%),
    radial-gradient(ellipse at 70% 40%, #fff8f0 0%, transparent 50%);
}
.scn-london-palace-northumberland-justifies .north-body {
  position: absolute; bottom: 24%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a3a5a 0%, #1e1e3a 100%);
  border-radius: 40% 40% 20% 20%; transform-origin: bottom;
  animation: l4-gesture 5s ease-in-out infinite;
}
.scn-london-palace-northumberland-justifies .north-head {
  position: absolute; bottom: 62%; left: 36%; width: 18px; height: 22px;
  background: linear-gradient(180deg, #f7d4b0 0%, #e2b88a 100%);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 -2px 4px rgba(0,0,0,0.2);
  animation: l4-speak 3s ease-in-out infinite;
}
.scn-london-palace-northumberland-justifies .north-hand-raised {
  position: absolute; bottom: 40%; left: 55%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #f0d4b8 0%, #d4a87a 100%);
  border-radius: 40% 40% 20% 20%; transform-origin: 50% 100%;
  animation: l4-raise 4s ease-in-out infinite;
}
.scn-london-palace-northumberland-justifies .king-throne {
  position: absolute; bottom: 28%; right: 15%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #8b6f3f 0%, #5a4426 100%);
  border-radius: 10% 10% 4% 4%; box-shadow: -4px 0 10px rgba(0,0,0,0.5);
  animation: l4-throne 10s ease-in-out infinite;
}
.scn-london-palace-northumberland-justifies .throne-ornament {
  position: absolute; bottom: 82%; right: 17%; width: 20px; height: 8px;
  background: linear-gradient(180deg, #e8c34a 0%, #b8932a 100%);
  border-radius: 50% 50% 0 0; clip-path: polygon(0% 100%, 25% 0%, 50% 50%, 75% 0%, 100% 100%);
  animation: l4-glimmer 6s ease-in-out infinite;
}
.scn-london-palace-northumberland-justifies .candle-glow {
  position: absolute; bottom: 30%; right: 25%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffe680 0%, #f5c842 40%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 6px #f5c842;
  animation: l4-candle 3s ease-in-out infinite alternate;
}
.scn-london-palace-northumberland-justifies .background-panel {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(139,111,63,0.2) 100%);
}
@keyframes l4-gesture {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-5px) rotate(-3deg); }
  50% { transform: translateX(5px) rotate(3deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes l4-speak {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-1px); }
}
@keyframes l4-raise {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(30deg); }
}
@keyframes l4-throne {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(1.005); }
}
@keyframes l4-glimmer {
  0%, 100% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
}
@keyframes l4-candle {
  0% { transform: scaleY(1) translateY(0); opacity: 0.7; }
  50% { transform: scaleY(1.15) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.9) translateY(1px); opacity: 0.8; }
}

.scn-warkworth-castle-far-afoot { background: linear-gradient(180deg, #2a1f18 0%, #1c1410 50%, #0e0a08 100%), radial-gradient(ellipse at 40% 60%, #3a2a20 0%, transparent 70%); }
.scn-warkworth-castle-far-afoot .bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a20 0%, #1c1410 100%); opacity:.6; animation: wf-bg 12s ease-in-out infinite alternate; }
.scn-warkworth-castle-far-afoot .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #2a1f18 0%, #4a3a2a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: wf-floor 8s ease-in-out infinite alternate; }
.scn-warkworth-castle-far-afoot .wall { position:absolute; top:0; left:0; right:0; height:65%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f18 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; animation: wf-wall 10s ease-in-out infinite alternate; }
.scn-warkworth-castle-far-afoot .figure1 { position:absolute; bottom:20%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #2c1a0e 0%, #1a0f06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wf-fig1 4s ease-in-out infinite; }
.scn-warkworth-castle-far-afoot .figure2 { position:absolute; bottom:20%; left:55%; width:28px; height:58px; background: linear-gradient(180deg, #3a2a1a 0%, #1c0f08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wf-fig2 5s ease-in-out infinite; }
.scn-warkworth-castle-far-afoot .lantern { position:absolute; bottom:30%; left:20%; width:10px; height:14px; background: radial-gradient(circle, #e8c860 0%, #b08030 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 6px #b08030, 0 0 40px 12px rgba(176,128,48,.4); animation: wf-lantern 3s ease-in-out infinite alternate; }
.scn-warkworth-castle-far-afoot .dog { position:absolute; bottom:18%; left:42%; width:20px; height:14px; background: #4a3a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wf-dog 2.5s ease-in-out infinite; }
@keyframes wf-bg { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.55 } }
@keyframes wf-floor { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes wf-wall { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes wf-fig1 { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8px) rotate(2deg) } 50% { transform: translateX(16px) rotate(-2deg) } 75% { transform: translateX(24px) rotate(2deg) } 100% { transform: translateX(32px) rotate(-2deg) } }
@keyframes wf-fig2 { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-6px) rotate(-2deg) } 50% { transform: translateX(-12px) rotate(2deg) } 75% { transform: translateX(-18px) rotate(-2deg) } 100% { transform: translateX(-24px) rotate(2deg) } }
@keyframes wf-lantern { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(5deg) scale(1.1) } 100% { transform: rotate(-5deg) scale(1) } }
@keyframes wf-dog { 0% { transform: translateY(0) scaleX(1) } 25% { transform: translateY(-2px) scaleX(0.9) } 50% { transform: translateY(0) scaleX(1) } 75% { transform: translateY(-2px) scaleX(0.9) } 100% { transform: translateY(0) scaleX(1) } }

.scn-warkworth-castle-away-trifier { background: linear-gradient(180deg, #1a1410 0%, #0e0a08 50%, #080604 100%), radial-gradient(ellipse at 60% 50%, #2a1f18 0%, transparent 70%); }
.scn-warkworth-castle-away-trifier .bg { position:absolute; inset:0; background: linear-gradient(90deg, #0e0a08 0%, #1c1410 50%, #0e0a08 100%); animation: wt-bg 8s ease-in-out infinite alternate; }
.scn-warkworth-castle-away-trifier .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1c1410 0%, #2a1f18 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-warkworth-castle-away-trifier .table { position:absolute; bottom:20%; left:50%; width:80px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1f18 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: wt-table 6s ease-in-out infinite alternate; }
.scn-warkworth-castle-away-trifier .figure-turn { position:absolute; bottom:18%; left:45%; width:35px; height:70px; background: linear-gradient(180deg, #2c1a0e 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wt-turn 3s ease-in-out infinite; }
.scn-warkworth-castle-away-trifier .hand-gesture { position:absolute; bottom:35%; left:35%; width:12px; height:16px; background: #1c1410; border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom left; animation: wt-hand 2s ease-in-out infinite; }
.scn-warkworth-castle-away-trifier .goblet { position:absolute; bottom:22%; left:40%; width:16px; height:22px; background: linear-gradient(180deg, #c8a060 0%, #6a4a2a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: wt-goblet 4s ease-in-out infinite alternate; }
.scn-warkworth-castle-away-trifier .shadow { position:absolute; bottom:15%; left:20%; width:60%; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); animation: wt-shadow 5s ease-in-out infinite alternate; }
@keyframes wt-bg { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.45 } }
@keyframes wt-table { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(3deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes wt-turn { 0% { transform: translateX(0) rotate(0deg) scaleX(1) } 25% { transform: translateX(-6px) rotate(-20deg) scaleX(0.8) } 50% { transform: translateX(-12px) rotate(-40deg) scaleX(0.6) } 75% { transform: translateX(-6px) rotate(-20deg) scaleX(0.8) } 100% { transform: translateX(0) rotate(0deg) scaleX(1) } }
@keyframes wt-hand { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(-8px, -4px) rotate(-30deg) } 50% { transform: translate(-16px, -8px) rotate(-60deg) } 75% { transform: translate(-8px, -4px) rotate(-30deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes wt-goblet { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(4px, -2px) rotate(15deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes wt-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-warkworth-castle-love-question { background: linear-gradient(180deg, #1c1410 0%, #0e0a08 50%, #080604 100%), radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%); }
.scn-warkworth-castle-love-question .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1f18 0%, #0e0a08 100%); animation: wl-bg 10s ease-in-out infinite alternate; }
.scn-warkworth-castle-love-question .wall { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(0deg, #1c1410 0%, #2a1f18 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; animation: wl-wall 12s ease-in-out infinite alternate; }
.scn-warkworth-castle-love-question .profile-female { position:absolute; bottom:25%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1c1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); transform-origin: bottom center; animation: wl-prof-f 4s ease-in-out infinite alternate; }
.scn-warkworth-castle-love-question .profile-male { position:absolute; bottom:25%; left:55%; width:32px; height:62px; background: linear-gradient(180deg, #2c1a0e 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); transform-origin: bottom center; animation: wl-prof-m 4.5s ease-in-out infinite alternate; }
.scn-warkworth-castle-love-question .hand-reach { position:absolute; bottom:40%; left:45%; width:10px; height:14px; background: #2c1a0e; border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom left; animation: wl-hand 3s ease-in-out infinite; }
.scn-warkworth-castle-love-question .shadow-dark { position:absolute; bottom:15%; left:20%; width:60%; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 70%); animation: wl-shadow 6s ease-in-out infinite alternate; }
@keyframes wl-bg { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.55 } }
@keyframes wl-wall { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.65 } }
@keyframes wl-prof-f { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-4px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes wl-prof-m { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes wl-hand { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(8px, -2px) rotate(20deg) } 50% { transform: translate(16px, -4px) rotate(40deg) } 75% { transform: translate(8px, -2px) rotate(20deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes wl-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-warkworth-castle-horse-swear { background: linear-gradient(180deg, #2a1f18 0%, #1c1410 50%, #0e0a08 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%); }
.scn-warkworth-castle-horse-swear .bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1c1410 100%); opacity:.7; animation: wh-bg 8s ease-in-out infinite alternate; }
.scn-warkworth-castle-horse-swear .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #2a1f18 0%, #4a3a2a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-warkworth-castle-horse-swear .figure-ride { position:absolute; bottom:25%; left:40%; width:30px; height:60px; background: linear-gradient(180deg, #2c1a0e 0%, #1a0f06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wh-fig 2s ease-in-out infinite; }
.scn-warkworth-castle-horse-swear .hobby-horse { position:absolute; bottom:20%; left:35%; width:40px; height:20px; background: #6a4a2a; border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: wh-horse 2s ease-in-out infinite; }
.scn-warkworth-castle-horse-swear .hat-fly { position:absolute; bottom:45%; left:50%; width:18px; height:10px; background: #4a3a2a; border-radius: 50% 50% 10% 10%; box-shadow: 0 0 4px rgba(0,0,0,.4); animation: wh-hat 3s ease-in-out infinite; }
.scn-warkworth-castle-horse-swear .lantern-swing { position:absolute; bottom:35%; left:25%; width:8px; height:12px; background: radial-gradient(circle, #e8c860 0%, #b08030 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 12px 4px #b08030, 0 0 24px 8px rgba(176,128,48,.3); animation: wh-lantern 1.5s ease-in-out infinite alternate; }
@keyframes wh-bg { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.65 } }
@keyframes wh-fig { 0% { transform: translateY(0) rotate(-5deg) } 25% { transform: translateY(-8px) rotate(5deg) } 50% { transform: translateY(0) rotate(-5deg) } 75% { transform: translateY(-8px) rotate(5deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes wh-horse { 0% { transform: translateY(0) rotate(-10deg) } 25% { transform: translateY(-4px) rotate(10deg) } 50% { transform: translateY(0) rotate(-10deg) } 75% { transform: translateY(-4px) rotate(10deg) } 100% { transform: translateY(0) rotate(-10deg) } }
@keyframes wh-hat { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(12px, -10px) rotate(30deg) } 50% { transform: translate(24px, -20px) rotate(60deg) } 75% { transform: translate(36px, -30px) rotate(90deg) } 100% { transform: translate(48px, -40px) rotate(120deg) } }
@keyframes wh-lantern { 0% { transform: rotate(-10deg) scale(1) } 50% { transform: rotate(10deg) scale(1.1) } 100% { transform: rotate(-10deg) scale(1) } }

/* Scene 1: rebel-camp-shrewsbury-fathers-letters */
.scn-rebel-camp-shrewsbury-fathers-letters {
  background: linear-gradient(180deg, #b8a87a 0%, #9c8b62 50%, #7a6b48 100%),
              radial-gradient(ellipse at 60% 40%, #f0d8a8 0%, transparent 60%);
}
.scn-rebel-camp-shrewsbury-fathers-letters .tent-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #8a7b5e 0%, #6b5d45 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 -20px 40px rgba(0,0,0,.3);
  animation: rc1-pulse 8s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-fathers-letters .table {
  position: absolute; bottom: 8%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #6e4d2a 0%, #4a3320 100%);
  border-radius: 2% 2% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-rebel-camp-shrewsbury-fathers-letters .letter {
  position: absolute; bottom: 28%; left: 38%; width: 22%; height: 14%;
  background: linear-gradient(135deg, #faf0d0 0%, #dccca8 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: rc1-letter 5s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-fathers-letters .inkwell {
  position: absolute; bottom: 26%; left: 64%; width: 8%; height: 8%;
  background: radial-gradient(circle, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.6);
}
.scn-rebel-camp-shrewsbury-fathers-letters .lantern {
  position: absolute; top: 12%; left: 48%; width: 12%; height: 16%;
  background: radial-gradient(circle at 50% 30%, #ffd894 0%, #c89048 70%, #8a5a20 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 10px rgba(200,144,72,.6);
  animation: rc1-glow 3s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-fathers-letters .hand {
  position: absolute; bottom: 28%; left: 42%; width: 10%; height: 12%;
  background: linear-gradient(180deg, #c68b55 0%, #a06a3a 60%, #6a4020 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rc1-hand 6s ease-in-out infinite;
}
@keyframes rc1-pulse { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes rc1-letter { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes rc1-glow { 0% { box-shadow: 0 0 20px 6px rgba(200,144,72,.4); opacity: .8; } 50% { box-shadow: 0 0 40px 18px rgba(200,144,72,.7); opacity: 1; } 100% { box-shadow: 0 0 25px 8px rgba(200,144,72,.5); opacity: .9; } }
@keyframes rc1-hand { 0% { transform: translateX(0) translateY(0) rotate(5deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(0deg); } 50% { transform: translateX(8px) translateY(0) rotate(-5deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(16px) translateY(0) rotate(3deg); } }

/* Scene 2: rebel-camp-shrewsbury-bedridden */
.scn-rebel-camp-shrewsbury-bedridden {
  background: linear-gradient(180deg, #bab091 0%, #9f9170 50%, #7a6a4d 100%),
              radial-gradient(ellipse at 40% 50%, #f5e5c0 0%, transparent 60%);
}
.scn-rebel-camp-shrewsbury-bedridden .tent-fabric {
  position: absolute; inset: 0; background: linear-gradient(45deg, #7a6b50 0%, #5a4a30 100%);
  border-radius: 6% 6% 0 0;
  animation: rc2-fabric 12s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-bedridden .bed-base {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 35%;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2a10 100%);
  border-radius: 3% 3% 1% 1%; box-shadow: 0 4px 10px rgba(0,0,0,.4);
}
.scn-rebel-camp-shrewsbury-bedridden .figure-sick {
  position: absolute; bottom: 15%; left: 25%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #946b4a 0%, #5a3a20 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rc2-sick 8s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-bedridden .blanket {
  position: absolute; bottom: 12%; left: 22%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #8a6030 0%, #6a4020 100%);
  border-radius: 10% 10% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: rc2-blanket 6s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-bedridden .pillow {
  position: absolute; bottom: 30%; left: 24%; width: 15%; height: 8%;
  background: linear-gradient(135deg, #dfc8a0 0%, #b89a70 100%);
  border-radius: 40%; box-shadow: 0 2px 4px rgba(0,0,0,.2);
}
.scn-rebel-camp-shrewsbury-bedridden .chair {
  position: absolute; bottom: 18%; right: 12%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #7a5020 0%, #4a3010 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: -2px 0 6px rgba(0,0,0,.3);
}
.scn-rebel-camp-shrewsbury-bedridden .lamp-bed {
  position: absolute; top: 8%; right: 10%; width: 10%; height: 14%;
  background: radial-gradient(circle at 50% 40%, #ffd080 0%, #c89040 70%, #7a4a10 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 12px rgba(200,144,64,.5);
  animation: rc2-lamp 3s ease-in-out infinite alternate;
}
@keyframes rc2-fabric { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .78; } }
@keyframes rc2-sick { 0%, 100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(3deg); } }
@keyframes rc2-blanket { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-2px) scale(1.02); } }
@keyframes rc2-lamp { 0% { box-shadow: 0 0 20px 6px rgba(200,144,64,.4); opacity: .8; } 50% { box-shadow: 0 0 40px 16px rgba(200,144,64,.7); opacity: 1; } 100% { box-shadow: 0 0 25px 8px rgba(200,144,64,.5); opacity: .85; } }

/* Scene 3: rebel-camp-shrewsbury-sickness-infects (dark mood, bright interior) */
.scn-rebel-camp-shrewsbury-sickness-infects {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 50%, #1a0e05 100%),
              radial-gradient(ellipse at 50% 40%, #7a5a30 0%, transparent 70%);
}
.scn-rebel-camp-shrewsbury-sickness-infects .tent-dark {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2a1a 0%, #1a1008 100%);
  box-shadow: inset 0 0 40px 10px rgba(0,0,0,.5);
  animation: rc3-darkpulse 15s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-sickness-infects .sick-figure {
  position: absolute; bottom: 10%; left: 30%; width: 25%; height: 30%;
  background: linear-gradient(180deg, #6a5030 0%, #3a2a18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,.6);
  animation: rc3-sickroll 7s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-sickness-infects .vapor {
  position: absolute; top: 20%; left: 40%; width: 30%; height: 20%;
  background: radial-gradient(ellipse, rgba(90,60,30,.4) 0%, transparent 70%);
  filter: blur(12px);
  animation: rc3-vapor 12s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-sickness-infects .table-map {
  position: absolute; bottom: 8%; left: 10%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%);
  border-radius: 2%; box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-rebel-camp-shrewsbury-sickness-infects .candle {
  position: absolute; bottom: 22%; left: 15%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #f0d8a0 0%, #d0b070 40%, #8a5a20 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 0 20px 8px rgba(200,120,40,.5);
  animation: rc3-candle 2s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-sickness-infects .drops {
  position: absolute; bottom: 14%; left: 48%; width: 6%; height: 8%;
  background: radial-gradient(circle, #5e1a1d 0%, #3a0e10 100%);
  border-radius: 50% 50% 30% 30%;
  animation: rc3-drops 4s ease-in-out infinite;
  opacity: .8;
}
@keyframes rc3-darkpulse { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes rc3-sickroll { 0%, 100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(5deg); } }
@keyframes rc3-vapor { 0% { transform: scale(1) translateY(0); opacity: .6; } 100% { transform: scale(1.3) translateY(-10px); opacity: .9; } }
@keyframes rc3-candle { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes rc3-drops { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(6px) scale(1.2); } 100% { transform: translateY(0) scale(1); } }

/* Scene 4: rebel-camp-shrewsbury-bold-advertisement */
.scn-rebel-camp-shrewsbury-bold-advertisement {
  background: linear-gradient(180deg, #c2b090 0%, #a89472 50%, #887850 100%),
              radial-gradient(ellipse at 50% 30%, #f5e0b0 0%, transparent 60%);
}
.scn-rebel-camp-shrewsbury-bold-advertisement .tent-bright {
  position: absolute; inset: 0; background: linear-gradient(45deg, #9a8a68 0%, #7a6a4a 100%);
  border-radius: 4% 4% 0 0;
  animation: rc4-bright 8s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-bold-advertisement .figure-bold {
  position: absolute; bottom: 12%; left: 40%; width: 20%; height: 38%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a18 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  box-shadow: 0 0 20px 10px rgba(0,0,0,.3);
  transform-origin: bottom center;
  animation: rc4-boldstand 6s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-bold-advertisement .map-scroll {
  position: absolute; bottom: 20%; left: 20%; width: 18%; height: 12%;
  background: linear-gradient(135deg, #dccca0 0%, #b8a880 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.2);
  transform: rotate(-5deg);
  animation: rc4-scroll 10s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-bold-advertisement .sword {
  position: absolute; bottom: 25%; right: 22%; width: 4%; height: 32%;
  background: linear-gradient(180deg, #a0a0a0 0%, #808080 50%, #606060 100%);
  border-radius: 10% 10% 5% 5%;
  transform-origin: bottom center;
  animation: rc4-sword 4s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-bold-advertisement .lantern-bright {
  position: absolute; top: 10%; left: 50%; width: 10%; height: 14%;
  background: radial-gradient(circle at 50% 30%, #ffe8a0 0%, #d0a050 70%, #906020 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 40px 20px rgba(200,144,64,.6);
  animation: rc4-lantern 3s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-bold-advertisement .banner {
  position: absolute; top: 5%; right: 10%; width: 15%; height: 10%;
  background: linear-gradient(180deg, #a0461a 0%, #702d12 100%);
  border-radius: 0 0 20% 20%; box-shadow: 0 2px 8px rgba(0,0,0,.4);
  animation: rc4-banner 9s ease-in-out infinite alternate;
}
@keyframes rc4-bright { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes rc4-boldstand { 0%, 100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(4deg); } }
@keyframes rc4-scroll { 0% { transform: rotate(-5deg) translateX(0); } 100% { transform: rotate(-2deg) translateX(-5px); } }
@keyframes rc4-sword { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes rc4-lantern { 0% { box-shadow: 0 0 25px 10px rgba(200,144,64,.4); opacity: .8; } 50% { box-shadow: 0 0 50px 30px rgba(200,144,64,.8); opacity: 1; } 100% { box-shadow: 0 0 30px 12px rgba(200,144,64,.5); opacity: .9; } }
@keyframes rc4-banner { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.05) translateY(-2px); } 100% { transform: scaleX(1) translateY(0); } }

.scn-boars-head-tavern-own-knee { background: linear-gradient(180deg, #2b1e16 0%, #3a241c 50%, #1f1410 100%), radial-gradient(ellipse at 50% 30%, #4a2e22 0%, transparent 70%); }
.scn-boars-head-tavern-own-knee .wall { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent, transparent 40px, rgba(0,0,0,.05) 40px, rgba(0,0,0,.05) 42px); opacity:.3; }
.scn-boars-head-tavern-own-knee .candle-glow { position:absolute; top:10%; left:20%; width:30px; height:30px; background: radial-gradient(circle, #f5c27b 0%, #c47a3a 30%, transparent 70%); border-radius:50%; animation: bht-o-glow 4s ease-in-out infinite alternate; }
.scn-boars-head-tavern-own-knee .belly { position:absolute; bottom:20%; left:40%; width:100px; height:120px; background: radial-gradient(ellipse at 40% 20%, #7a5a3a 0%, #4a3020 100%); border-radius:50% 50% 45% 45% / 60% 60% 40% 40%; box-shadow: inset -8px -8px 20px rgba(0,0,0,.5), inset 8px 8px 20px rgba(255,200,150,.2); animation: bht-o-belly 5s ease-in-out infinite; }
.scn-boars-head-tavern-own-knee .knee { position:absolute; bottom:14%; left:55%; width:30px; height:25px; background: radial-gradient(circle, #9a7a5a 0%, #6a4a2a 100%); border-radius:50%; box-shadow: 0 4px 6px rgba(0,0,0,.4); animation: bht-o-knee 3s ease-in-out infinite; }
.scn-boars-head-tavern-own-knee .ring { position:absolute; bottom:18%; left:35%; width:20px; height:20px; border:4px solid #c09858; border-radius:50%; background: transparent; box-shadow: 0 0 8px rgba(192,152,88,.3); animation: bht-o-ring 6s ease-in-out infinite; }
.scn-boars-head-tavern-own-knee .bladder { position:absolute; bottom:25%; right:20%; width:40px; height:40px; background: radial-gradient(circle, rgba(245,220,180,.4) 0%, rgba(245,220,180,.1) 100%); border-radius:50%; filter:blur(2px); animation: bht-o-bladder 7s ease-in-out infinite; }
@keyframes bht-o-glow   { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.7; transform: scale(1) } }
@keyframes bht-o-belly  { 0% { transform: scaleY(1) translateY(0) } 25% { transform: scaleY(1.02) translateY(-2px) } 50% { transform: scaleY(1) translateY(0) } 75% { transform: scaleY(1.01) translateY(-1px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes bht-o-knee   { 0% { transform: rotate(0deg) translateX(0) } 33% { transform: rotate(5deg) translateX(2px) } 66% { transform: rotate(-5deg) translateX(-2px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes bht-o-ring   { 0% { transform: rotate(0deg) scale(1) } 33% { transform: rotate(10deg) scale(1.05) } 66% { transform: rotate(-10deg) scale(0.95) } 100% { transform: rotate(0deg) scale(1) } }
@keyframes bht-o-bladder{ 0% { transform: scale(1); opacity:.3 } 50% { transform: scale(1.3); opacity:.6 } 100% { transform: scale(1); opacity:.3 } }

.scn-boars-head-tavern-mad-fellow-percy { background: linear-gradient(180deg, #2b1e16 0%, #3a241c 50%, #1f1410 100%), radial-gradient(ellipse at 60% 20%, #4a2e22 0%, transparent 70%); }
.scn-boars-head-tavern-mad-fellow-percy .wall { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent, transparent 40px, rgba(0,0,0,.05) 40px, rgba(0,0,0,.05) 42px); opacity:.3; }
.scn-boars-head-tavern-mad-fellow-percy .candle-glow { position:absolute; top:10%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #f5c27b 0%, #c47a3a 30%, transparent 70%); border-radius:50%; animation: bht-m-glow 4s ease-in-out infinite alternate; }
.scn-boars-head-tavern-mad-fellow-percy .figure-percy { position:absolute; bottom:15%; left:30%; width:50px; height:90px; background: linear-gradient(180deg, #4a3525 0%, #2a1a10 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: bht-m-percy 3s ease-in-out infinite; }
.scn-boars-head-tavern-mad-fellow-percy .hook { position:absolute; bottom:30%; left:38%; width:60px; height:10px; background: linear-gradient(90deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:0 50% 50% 0; transform-origin: left center; animation: bht-m-hook 2.5s ease-in-out infinite; }
.scn-boars-head-tavern-mad-fellow-percy .devil { position:absolute; bottom:25%; right:15%; width:25px; height:40px; background: #2a1a10; border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: inset 0 -8px 0 #1a0a00; animation: bht-m-devil 6s ease-in-out infinite; }
.scn-boars-head-tavern-mad-fellow-percy .cross { position:absolute; bottom:35%; left:10%; width:20px; height:30px; background: #6a5a4a; border-radius:2px; transform:rotate(30deg); animation: bht-m-cross 8s ease-in-out infinite; }
@keyframes bht-m-glow  { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.15) } 100% { opacity:.7; transform: scale(1) } }
@keyframes bht-m-percy { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes bht-m-hook  { 0% { transform: rotate(0deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(0deg) } }
@keyframes bht-m-devil { 0% { transform: scaleY(1) } 33% { transform: scaleY(1.1) translateY(-2px) } 66% { transform: scaleY(0.9) translateY(2px) } 100% { transform: scaleY(1) } }
@keyframes bht-m-cross { 0% { transform: rotate(30deg) } 50% { transform: rotate(40deg) } 100% { transform: rotate(30deg) } }

.scn-boars-head-tavern-kills-sparrow { background: linear-gradient(180deg, #2b1e16 0%, #3a241c 50%, #1f1410 100%), radial-gradient(ellipse at 50% 70%, #4a2e22 0%, transparent 70%); }
.scn-boars-head-tavern-kills-sparrow .wall { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent, transparent 40px, rgba(0,0,0,.05) 40px, rgba(0,0,0,.05) 42px); opacity:.3; }
.scn-boars-head-tavern-kills-sparrow .candle-glow { position:absolute; top:10%; left:50%; width:30px; height:30px; background: radial-gradient(circle, #f5c27b 0%, #c47a3a 30%, transparent 70%); border-radius:50%; animation: bht-k-glow 4s ease-in-out infinite alternate; }
.scn-boars-head-tavern-kills-sparrow .horse { position:absolute; bottom:18%; left:20%; width:100px; height:60px; background: linear-gradient(180deg, #6a5040 0%, #3a2820 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bht-k-horse 2s ease-in-out infinite; }
.scn-boars-head-tavern-kills-sparrow .rider { position:absolute; bottom:35%; left:30%; width:30px; height:40px; background: #4a3525; border-radius:40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: bottom center; animation: bht-k-rider 2s ease-in-out infinite; }
.scn-boars-head-tavern-kills-sparrow .pistol { position:absolute; bottom:40%; left:36%; width:30px; height:6px; background: #5a4a3a; border-radius:0 50% 50% 0; transform-origin: left center; animation: bht-k-pistol 1.6s ease-in-out infinite; }
.scn-boars-head-tavern-kills-sparrow .sparrow { position:absolute; bottom:30%; right:30%; width:15px; height:12px; background: radial-gradient(circle, #6a5a4a 0%, #3a2a1a 100%); border-radius:50%; animation: bht-k-sparrow 3s ease-in-out infinite; }
.scn-boars-head-tavern-kills-sparrow .ground { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:40% 40% 0 0; }
@keyframes bht-k-glow    { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(1) } }
@keyframes bht-k-horse   { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-5px) rotate(2deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes bht-k-rider   { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-4px) rotate(3deg) } 50% { transform: translateY(0) rotate(-3deg) } 75% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes bht-k-pistol  { 0% { transform: rotate(0deg) } 25% { transform: rotate(40deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(30deg) } 100% { transform: rotate(0deg) } }
@keyframes bht-k-sparrow { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-20px) scale(0.5) } 100% { transform: translateY(100px) scale(0.1); opacity:0 } }

.scn-boars-head-tavern-upon-instinct { background: linear-gradient(180deg, #2b1e16 0%, #3a241c 50%, #1f1410 100%), radial-gradient(ellipse at 30% 40%, #4a2e22 0%, transparent 70%); }
.scn-boars-head-tavern-upon-instinct .wall { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent, transparent 40px, rgba(0,0,0,.05) 40px, rgba(0,0,0,.05) 42px); opacity:.3; }
.scn-boars-head-tavern-upon-instinct .candle-glow { position:absolute; top:10%; left:20%; width:30px; height:30px; background: radial-gradient(circle, #f5c27b 0%, #c47a3a 30%, transparent 70%); border-radius:50%; animation: bht-u-glow 4s ease-in-out infinite alternate; }
.scn-boars-head-tavern-upon-instinct .figure-beard { position:absolute; bottom:15%; left:35%; width:60px; height:100px; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; animation: bht-u-figure 5s ease-in-out infinite; }
.scn-boars-head-tavern-upon-instinct .blue-cap { position:absolute; bottom:85%; left:38%; width:30px; height:15px; background: #3a5a7a; border-radius:50% 50% 0 0; transform-origin: bottom center; animation: bht-u-cap 4s ease-in-out infinite; }
.scn-boars-head-tavern-upon-instinct .scroll { position:absolute; bottom:20%; right:25%; width:10px; height:30px; background: linear-gradient(180deg, #c0a070 0%, #8a6a4a 100%); border-radius:2px; transform-origin: top center; animation: bht-u-scroll 8s ease-in-out infinite; }
.scn-boars-head-tavern-upon-instinct .mackerel { position:absolute; bottom:25%; left:15%; width:40px; height:12px; background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%); border-radius:50%; transform-origin: center; animation: bht-u-fish 6s ease-in-out infinite; }
.scn-boars-head-tavern-upon-instinct .ground { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:30% 30% 0 0; }
@keyframes bht-u-glow   { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.7; transform: scale(1) } }
@keyframes bht-u-figure { 0% { transform: translateY(0) rotate(-1deg) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes bht-u-cap   { 0% { transform: rotate(0deg) } 25% { transform: rotate(10deg) } 50% { transform: rotate(-5deg) } 75% { transform: rotate(8deg) } 100% { transform: rotate(0deg) } }
@keyframes bht-u-scroll { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.8) } 100% { transform: scaleY(1) } }
@keyframes bht-u-fish  { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(15deg) } 50% { transform: translateX(-5px) rotate(-15deg) } 75% { transform: translateX(3px) rotate(10deg) } 100% { transform: translateX(0) rotate(0deg) } }

.scn-york-archbishop-fear-needful {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 40%, #5a4a3a 60%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 100%, #5a3a1a 0%, transparent 70%);
}
.scn-york-archbishop-fear-needful .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #4a3a2a, #6a5a4a, #4a3a2a);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.5);
}
.scn-york-archbishop-fear-needful .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
  border-radius: 20% 20% 0 0;
}
.scn-york-archbishop-fear-needful .table {
  position: absolute; bottom: 14%; left: 35%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #5a3a2a, #3a1a0a);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: york-table 8s ease-in-out infinite;
}
@keyframes york-table {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
.scn-york-archbishop-fear-needful .candle {
  position: absolute; bottom: 25%; left: 48%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ffd080, #c08040);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: york-candle 3s ease-in-out infinite;
}
@keyframes york-candle {
  0% { transform: scaleY(1) skewX(0deg); }
  25% { transform: scaleY(1.05) skewX(2deg); }
  50% { transform: scaleY(1) skewX(-1deg); }
  75% { transform: scaleY(1.03) skewX(1deg); }
  100% { transform: scaleY(1) skewX(0deg); }
}
.scn-york-archbishop-fear-needful .figure {
  position: absolute; bottom: 14%; left: 25%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a, #1a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: york-figure 6s ease-in-out infinite;
}
@keyframes york-figure {
  0%, 100% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
}
.scn-york-archbishop-fear-needful .document {
  position: absolute; bottom: 24%; left: 42%; width: 30px; height: 6px;
  background: #c8b898;
  border-radius: 1px;
  box-shadow: 0 0 6px rgba(200,184,152,0.5);
  animation: york-doc 12s ease-in-out infinite;
}
@keyframes york-doc {
  0%, 100% { opacity: 0.8; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px); }
}
.scn-york-archbishop-fear-needful .window-glow {
  position: absolute; top: 20%; right: 10%; width: 40px; height: 50px;
  background: radial-gradient(circle at center, #ffe080, #c09050, transparent);
  border-radius: 4px;
  box-shadow: 0 0 40px 20px #ffe080, 0 0 80px 40px rgba(255,224,128,0.3);
  animation: york-window 5s ease-in-out infinite alternate;
}
@keyframes york-window {
  0% { opacity: 0.7; box-shadow: 0 0 30px 15px #ffe080; }
  100% { opacity: 1; box-shadow: 0 0 60px 30px #ffe080; }
}
.scn-york-archbishop-fear-needful .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: york-shadow 10s ease-in-out infinite alternate;
}
@keyframes york-shadow {
  0% { opacity: 0.8; }
  100% { opacity: 1; }
}

.scn-kings-camp-sunrise-bloody {
  background:
    linear-gradient(180deg, #4a2a1a 0%, #6a3a2a 30%, #8a5a3a 50%, #6a3a2a 70%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 10%, #c07040 0%, transparent 60%);
}
.scn-kings-camp-sunrise-bloody .sky-dawn {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a3a2a 0%, #c08050 40%, #e0a060 60%, #c08050 80%, #6a3a2a 100%);
  animation: ksbl-sky 15s ease-in-out infinite alternate;
}
@keyframes ksbl-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.9; }
}
.scn-kings-camp-sunrise-bloody .hill {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a3a2a, #3a1a0a);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
}
.scn-kings-camp-sunrise-bloody .sun-bloody {
  position: absolute; top: 25%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, #d08040 0%, #b05030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px #d08040, 0 0 120px 60px rgba(208,128,64,0.3);
  transform: translateX(-50%);
  animation: ksbl-sun 8s ease-in-out infinite alternate;
}
@keyframes ksbl-sun {
  0% { transform: translateX(-50%) scale(0.9); opacity: 0.7; }
  50% { transform: translateX(-50%) scale(1); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.8; }
}
.scn-kings-camp-sunrise-bloody .tent-king {
  position: absolute; bottom: 38%; left: 30%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(0% 100%, 25% 10%, 75% 10%, 100% 100%);
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: ksbl-tent 12s ease-in-out infinite;
}
@keyframes ksbl-tent {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
.scn-kings-camp-sunrise-bloody .flag {
  position: absolute; bottom: 62%; left: 48%; width: 4px; height: 30px;
  background: #5a3a2a;
  transform-origin: bottom center;
  animation: ksbl-flag 3s ease-in-out infinite;
}
.scn-kings-camp-sunrise-bloody .flag::before {
  content: '';
  position: absolute; top: 0; left: 2px; width: 20px; height: 12px;
  background: #a0461a;
  border-radius: 0 4px 4px 0;
}
@keyframes ksbl-flag {
  0%, 100% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
}
.scn-kings-camp-sunrise-bloody .figure-king {
  position: absolute; bottom: 36%; left: 36%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a, #1a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ksbl-figure 7s ease-in-out infinite;
}
@keyframes ksbl-figure {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
}
.scn-kings-camp-sunrise-bloody .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a2a1a, #2a1a0a);
  border-radius: 10% 10% 0 0;
}
.scn-kings-camp-sunrise-bloody .mist {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(200,128,80,0.4), transparent);
  filter: blur(10px);
  animation: ksbl-mist 20s ease-in-out infinite alternate;
}
@keyframes ksbl-mist {
  0% { opacity: 0.5; transform: translateX(-10px); }
  100% { opacity: 0.8; transform: translateX(10px); }
}

.scn-kings-camp-let-sympathize {
  background:
    linear-gradient(180deg, #3a1a0a 0%, #5a2a1a 30%, #8a4a2a 50%, #5a2a1a 70%, #3a1a0a 100%),
    radial-gradient(ellipse at 30% 20%, #a06040 0%, transparent 70%);
}
.scn-kings-camp-let-sympathize .sky-dawn {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a2a1a, #8a4a2a 30%, #c07040 50%, #8a4a2a 70%, #5a2a1a);
  animation: ksls-sky 18s ease-in-out infinite alternate;
}
@keyframes ksls-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.9; }
}
.scn-kings-camp-let-sympathize .horizon {
  position: absolute; top: 50%; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, transparent, #a06040, transparent);
}
.scn-kings-camp-let-sympathize .tent-left {
  position: absolute; bottom: 44%; left: 15%; width: 80px; height: 70px;
  background: linear-gradient(180deg, #5a3a2a, #3a1a0a);
  clip-path: polygon(0% 100%, 20% 5%, 80% 5%, 100% 100%);
  box-shadow: 0 0 15px rgba(0,0,0,0.4);
  animation: ksls-tent-l 10s ease-in-out infinite;
}
@keyframes ksls-tent-l {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
.scn-kings-camp-let-sympathize .tent-right {
  position: absolute; bottom: 44%; right: 15%; width: 80px; height: 70px;
  background: linear-gradient(180deg, #5a3a2a, #3a1a0a);
  clip-path: polygon(0% 100%, 20% 5%, 80% 5%, 100% 100%);
  box-shadow: 0 0 15px rgba(0,0,0,0.4);
  animation: ksls-tent-r 12s ease-in-out infinite 2s;
}
@keyframes ksls-tent-r {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
.scn-kings-camp-let-sympathize .figure-worcester {
  position: absolute; bottom: 40%; left: 35%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #1a1a1a, #0a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  transform-origin: bottom center;
  animation: ksls-walk 5s ease-in-out infinite;
}
@keyframes ksls-walk {
  0%, 100% { transform: translateX(0) rotate(5deg); }
  25% { transform: translateX(4px) rotate(3deg); }
  50% { transform: translateX(8px) rotate(0deg); }
  75% { transform: translateX(4px) rotate(3deg); }
}
.scn-kings-camp-let-sympathize .figure-vernon {
  position: absolute; bottom: 40%; left: 48%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #2a1a1a, #1a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  transform-origin: bottom center;
  animation: ksls-walk 6s ease-in-out infinite 0.5s;
}
.scn-kings-camp-let-sympathize .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a2a1a, #2a1a0a);
  border-radius: 8% 8% 0 0;
}
.scn-kings-camp-let-sympathize .dust-cloud {
  position: absolute; bottom: 44%; left: 38%; width: 30px; height: 10px;
  background: rgba(100,60,40,0.3);
  filter: blur(6px);
  border-radius: 50%;
  animation: ksls-dust 4s ease-in-out infinite;
}
@keyframes ksls-dust {
  0%, 100% { transform: scale(1) translateY(0); opacity: 0.3; }
  50% { transform: scale(1.2) translateY(-3px); opacity: 0.6; }
}

.scn-kings-camp-worcester-vernon-enter {
  background:
    linear-gradient(180deg, #3a1a0a 0%, #5a2a1a 30%, #8a4a2a 50%, #5a2a1a 70%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 30%, #a06040 0%, transparent 60%);
}
.scn-kings-camp-worcester-vernon-enter .sky-dawn {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5a2a1a, #8a4a2a 30%, #c07040 50%, #8a4a2a 70%, #5a2a1a);
  animation: kswv-sky 15s ease-in-out infinite alternate;
}
@keyframes kswv-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
.scn-kings-camp-worcester-vernon-enter .tent-entrance {
  position: absolute; bottom: 40%; left: 50%; width: 120px; height: 90px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(0% 100%, 10% 5%, 90% 5%, 100% 100%);
  transform: translateX(-50%);
  box-shadow: 0 0 25px rgba(0,0,0,0.5);
  animation: kswv-tent 9s ease-in-out infinite;
}
@keyframes kswv-tent {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-5px); }
}
.scn-kings-camp-worcester-vernon-enter .figure-left {
  position: absolute; bottom: 36%; left: 38%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #1a1a1a, #0a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  transform-origin: bottom center;
  animation: kswv-enter 5s ease-in-out infinite;
}
@keyframes kswv-enter {
  0%, 100% { transform: translateX(0) rotate(5deg); }
  50% { transform: translateX(10px) rotate(0deg); }
}
.scn-kings-camp-worcester-vernon-enter .figure-right {
  position: absolute; bottom: 36%; right: 38%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #2a1a1a, #1a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  transform-origin: bottom center;
  animation: kswv-enter 6s ease-in-out infinite 1s;
}
.scn-kings-camp-worcester-vernon-enter .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a2a1a, #2a1a0a);
  border-radius: 5% 5% 0 0;
}
.scn-kings-camp-worcester-vernon-enter .lantern {
  position: absolute; bottom: 48%; left: 48%; width: 8px; height: 18px;
  background: linear-gradient(180deg, ##c08040, #8a5020);
  border-radius: 4px;
  box-shadow: 0 0 20px 10px #c08040;
  animation: kswv-lantern 3s ease-in-out infinite alternate;
}
@keyframes kswv-lantern {
  0% { opacity: 0.7; box-shadow: 0 0 15px 8px #c08040; }
  100% { opacity: 1; box-shadow: 0 0 30px 15px #c08040; }
}
.scn-kings-camp-worcester-vernon-enter .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,0.6));
  animation: kswv-shadow 12s ease-in-out infinite alternate;
}
@keyframes kswv-shadow {
  0% { opacity: 0.6; }
  100% { opacity: 1; }
}

.scn-rochester-inn-yard-gadshill-arrival {
  background:
    linear-gradient(180deg, #0b0b1e 0%, #15152f 50%, #2a1f1a 100%),
    radial-gradient(ellipse at 60% 30%, #1f1f3a 0%, transparent 70%);
}
.scn-rochester-inn-yard-gadshill-arrival .bg-night { position:absolute; inset:0; background:linear-gradient(180deg, #0e0e24 0%, #1c1c3a 40%, #2a1f1a 100%); animation: r1-bg 20s ease-in-out infinite alternate; }
.scn-rochester-inn-yard-gadshill-arrival .moon-blur { position:absolute; top:8%; left:70%; width:40px; height:40px; background:radial-gradient(circle, rgba(200,210,255,.4) 0%, rgba(200,210,255,.05) 70%); border-radius:50%; filter:blur(8px); animation: r1-moon 30s linear infinite; }
.scn-rochester-inn-yard-gadshill-arrival .stable-wall { position:absolute; bottom:30%; left:10%; width:180px; height:60%; background:linear-gradient(180deg, #3a2a1a 0%, #1f140e 100%); border-radius:6% 6% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,.6); }
.scn-rochester-inn-yard-gadshill-arrival .stable-door { position:absolute; bottom:32%; left:30%; width:50px; height:55%; background:linear-gradient(180deg, #1e150f 0%, #0b0805 100%); border-radius:4% 4% 0 0; box-shadow:inset 0 4px 8px rgba(0,0,0,.5); animation: r1-door 12s ease-in-out infinite; }
.scn-rochester-inn-yard-gadshill-arrival .gadshill-figure { position:absolute; bottom:25%; left:55%; width:20px; height:42px; background:linear-gradient(180deg, #1a1a2e 0%, #0c0c18 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: r1-walk 5s ease-in-out infinite; }
.scn-rochester-inn-yard-gadshill-arrival .gadshill-lantern { position:absolute; bottom:30%; left:58%; width:8px; height:8px; background:radial-gradient(circle, #ffcc66 0%, #cc8833 70%); border-radius:50%; box-shadow:0 0 20px 6px #ffa833, 0 0 40px 12px rgba(255,168,51,.4); animation: r1-swing 3s ease-in-out infinite; }
.scn-rochester-inn-yard-gadshill-arrival .horse-silhouette { position:absolute; bottom:20%; left:20%; width:60px; height:36px; background:linear-gradient(180deg, #1c1c2a 0%, #0e0e16 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; transform:rotate(-5deg); animation: r1-horse 8s ease-in-out infinite alternate; }
.scn-rochester-inn-yard-gadshill-arrival .ground-dark { position:absolute; bottom:0; left:0; right:0; height:28%; background:linear-gradient(180deg, #1c1410 0%, #0a0705 100%); border-radius:30% 70% 0 0 / 20% 40% 0 0; }
@keyframes r1-bg { 0% {opacity:.8} 50%{opacity:1} 100%{opacity:.7} }
@keyframes r1-moon { 0%{transform:translateX(0) scale(1)} 50%{transform:translateX(20px) scale(1.1)} 100%{transform:translateX(0) scale(1)} }
@keyframes r1-door { 0%,100%{transform:rotate(0)} 50%{transform:rotate(-2deg)} }
@keyframes r1-walk { 0%{transform:translateX(0) translateY(0) rotate(-2deg)} 25%{transform:translateX(8px) translateY(-2px) rotate(1deg)} 50%{transform:translateX(16px) translateY(0) rotate(-1deg)} 75%{transform:translateX(24px) translateY(-2px) rotate(2deg)} 100%{transform:translateX(32px) translateY(0) rotate(0)} }
@keyframes r1-swing { 0%,100%{transform:translate(0,0) rotate(-5deg)} 50%{transform:translate(3px,-2px) rotate(5deg)} }
@keyframes r1-horse { 0%{transform:rotate(-5deg) scaleY(1)} 50%{transform:rotate(-2deg) scaleY(1.05)} 100%{transform:rotate(-5deg) scaleY(1)} }

.scn-rochester-inn-yard-time-london {
  background:
    linear-gradient(180deg, #0a0a20 0%, #18183a 50%, #1a1515 100%),
    radial-gradient(ellipse at 30% 20%, #2a2a48 0%, transparent 70%);
}
.scn-rochester-inn-yard-time-london .bg-night { position:absolute; inset:0; background:linear-gradient(180deg, #0e0e28 0%, #1c1c3e 40%, #1f1717 100%); animation: r2-bg 25s ease-in-out infinite alternate; }
.scn-rochester-inn-yard-time-london .inn-wall-left { position:absolute; bottom:30%; left:0; width:30%; height:65%; background:linear-gradient(180deg, #2e221a 0%, #1c1410 100%); border-radius:0 8% 0 0; box-shadow:inset 0 10px 30px rgba(0,0,0,.5); }
.scn-rochester-inn-yard-time-london .carrier-1 { position:absolute; bottom:24%; left:40%; width:18px; height:38px; background:linear-gradient(180deg, #1a1a2e 0%, #0c0c1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: r2-walk1 6s ease-in-out infinite; }
.scn-rochester-inn-yard-time-london .carrier-2 { position:absolute; bottom:24%; left:55%; width:18px; height:38px; background:linear-gradient(180deg, #22223a 0%, #101022 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: r2-walk2 6s ease-in-out infinite 0.5s; }
.scn-rochester-inn-yard-time-london .candle-glow { position:absolute; bottom:32%; left:48%; width:10px; height:14px; background:radial-gradient(ellipse at center, #ffdd75 0%, #cc9933 60%); border-radius:40% 40% 20% 20%; box-shadow:0 0 24px 8px #ffb833, 0 0 48px 16px rgba(255,184,51,.3); animation: r2-candle 2s ease-in-out infinite alternate; }
.scn-rochester-inn-yard-time-london .candle-flame { position:absolute; bottom:34%; left:48.5%; width:4px; height:6px; background:radial-gradient(circle, #ffeeaa 0%, #ffaa33 70%); border-radius:50%; filter:blur(1px); animation: r2-flame 1.6s ease-in-out infinite alternate; }
.scn-rochester-inn-yard-time-london .ground-dark { position:absolute; bottom:0; left:0; right:0; height:26%; background:linear-gradient(180deg, #1a1410 0%, #0a0705 100%); border-radius:20% 80% 0 0 / 30% 50% 0 0; }
@keyframes r2-bg { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.7} }
@keyframes r2-walk1 { 0%{transform:translateX(0) translateY(0) rotate(-2deg)} 25%{transform:translateX(6px) translateY(-1px) rotate(1deg)} 50%{transform:translateX(12px) translateY(0) rotate(-1deg)} 75%{transform:translateX(18px) translateY(-1px) rotate(2deg)} 100%{transform:translateX(24px) translateY(0) rotate(0)} }
@keyframes r2-walk2 { 0%{transform:translateX(0) translateY(0) rotate(-1deg)} 25%{transform:translateX(6px) translateY(-1px) rotate(2deg)} 50%{transform:translateX(12px) translateY(0) rotate(0)} 75%{transform:translateX(18px) translateY(-1px) rotate(1deg)} 100%{transform:translateX(24px) translateY(0) rotate(0)} }
@keyframes r2-candle { 0%{box-shadow:0 0 18px 4px #ffb833,0 0 36px 8px rgba(255,184,51,.3); opacity:.9} 50%{box-shadow:0 0 30px 10px #ffcc44,0 0 60px 18px rgba(255,204,68,.4); opacity:1} 100%{box-shadow:0 0 20px 6px #ffb833,0 0 40px 12px rgba(255,184,51,.3); opacity:.85} }
@keyframes r2-flame { 0%{transform:scaleY(1) translateY(0)} 50%{transform:scaleY(1.3) translateY(-2px)} 100%{transform:scaleY(0.9) translateY(0)} }

.scn-rochester-inn-yard-chamberlain-varies {
  background:
    linear-gradient(180deg, #0c0c22 0%, #1a1a3a 50%, #1a1215 100%),
    radial-gradient(ellipse at 70% 40%, #2a2a48 0%, transparent 70%);
}
.scn-rochester-inn-yard-chamberlain-varies .bg-night { position:absolute; inset:0; background:linear-gradient(180deg, #10102a 0%, #1e1e40 40%, #1a1417 100%); animation: r3-bg 22s ease-in-out infinite alternate; }
.scn-rochester-inn-yard-chamberlain-varies .inn-wall-right { position:absolute; bottom:30%; right:0; width:25%; height:65%; background:linear-gradient(180deg, #2e221a 0%, #1c1410 100%); border-radius:8% 0 0 0; box-shadow:inset 0 10px 30px rgba(0,0,0,.5); }
.scn-rochester-inn-yard-chamberlain-varies .chamberlain-body { position:absolute; bottom:24%; left:50%; transform:translateX(-50%); width:22px; height:44px; background:linear-gradient(180deg, #1a1a2e 0%, #0c0c1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: r3-body 4s ease-in-out infinite; }
.scn-rochester-inn-yard-chamberlain-varies .chamberlain-arm { position:absolute; bottom:28%; left:44%; width:18px; height:6px; background:linear-gradient(90deg, #1c1c30 0%, #0e0e1a 100%); border-radius:50%; transform-origin:right center; animation: r3-arm 3s ease-in-out infinite; }
.scn-rochester-inn-yard-chamberlain-varies .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:26%; background:linear-gradient(180deg, #1a1410 0%, #0a0705 100%); border-radius:60% 40% 0 0 / 40% 30% 0 0; opacity:0.6; }
@keyframes r3-bg { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.7} }
@keyframes r3-body { 0%,100%{transform:translateX(-50%) translateY(0) rotate(0)} 25%{transform:translateX(-50%) translateY(-2px) rotate(1deg)} 50%{transform:translateX(-50%) translateY(0) rotate(-1deg)} 75%{transform:translateX(-50%) translateY(-2px) rotate(1deg)} }
@keyframes r3-arm { 0%{transform:rotate(0) scaleX(1)} 30%{transform:rotate(40deg) scaleX(1.2)} 60%{transform:rotate(-30deg) scaleX(1)} 100%{transform:rotate(10deg) scaleX(1)} }

.scn-rochester-inn-yard-gadshill-info {
  background:
    linear-gradient(180deg, #0a0a1e 0%, #161636 50%, #1a1315 100%),
    radial-gradient(ellipse at 50% 60%, #2a1f1a 0%, transparent 70%);
}
.scn-rochester-inn-yard-gadshill-info .bg-night { position:absolute; inset:0; background:linear-gradient(180deg, #0e0e24 0%, #1c1c3a 40%, #1f1616 100%); animation: r4-bg 18s ease-in-out infinite alternate; }
.scn-rochester-inn-yard-gadshill-info .ground-dark { position:absolute; bottom:0; left:0; right:0; height:25%; background:linear-gradient(180deg, #1a1410 0%, #0a0705 100%); border-radius:30% 70% 0 0 / 20% 40% 0 0; }
.scn-rochester-inn-yard-gadshill-info .gadshill-fig { position:absolute; bottom:24%; left:35%; width:20px; height:42px; background:linear-gradient(180deg, #1c1c30 0%, #0e0e1c 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: r4-walk1 7s ease-in-out infinite; }
.scn-rochester-inn-yard-gadshill-info .chamberlain-fig { position:absolute; bottom:24%; left:55%; width:20px; height:42px; background:linear-gradient(180deg, #22223a 0%, #101022 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: r4-walk2 7s ease-in-out infinite 0.5s; }
.scn-rochester-inn-yard-gadshill-info .lantern-light { position:absolute; bottom:30%; left:45%; width:10px; height:10px; background:radial-gradient(circle, #ffd060 0%, #cc8833 70%); border-radius:50%; box-shadow:0 0 28px 8px #ffa833, 0 0 56px 16px rgba(255,168,51,.4); animation: r4-lantern 4s ease-in-out infinite alternate; }
.scn-rochester-inn-yard-gadshill-info .coin-sparkle { position:absolute; bottom:20%; left:50%; width:4px; height:4px; background:radial-gradient(circle, #ffcc66 0%, transparent 70%); border-radius:50%; box-shadow:0 0 6px 2px #ffbb44; animation: r4-sparkle 2s ease-in-out infinite; }
.scn-rochester-inn-yard-gadshill-info .coin-sparkle-2 { position:absolute; bottom:20%; left:54%; width:4px; height:4px; background:radial-gradient(circle, #ffcc66 0%, transparent 70%); border-radius:50%; box-shadow:0 0 6px 2px #ffbb44; animation: r4-sparkle 2s ease-in-out infinite 0.6s; }
@keyframes r4-bg { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.7} }
@keyframes r4-walk1 { 0%{transform:translateX(0) translateY(0) rotate(-2deg)} 25%{transform:translateX(5px) translateY(-1px) rotate(1deg)} 50%{transform:translateX(10px) translateY(0) rotate(-1deg)} 75%{transform:translateX(15px) translateY(-1px) rotate(2deg)} 100%{transform:translateX(20px) translateY(0) rotate(0)} }
@keyframes r4-walk2 { 0%{transform:translateX(0) translateY(0) rotate(-1deg)} 25%{transform:translateX(5px) translateY(-1px) rotate(2deg)} 50%{transform:translateX(10px) translateY(0) rotate(0)} 75%{transform:translateX(15px) translateY(-1px) rotate(1deg)} 100%{transform:translateX(20px) translateY(0) rotate(0)} }
@keyframes r4-lantern { 0%{box-shadow:0 0 20px 4px #ffa833,0 0 40px 8px rgba(255,168,51,.3); opacity:.85} 50%{box-shadow:0 0 32px 10px #ffcc44,0 0 60px 20px rgba(255,204,68,.4); opacity:1} 100%{box-shadow:0 0 24px 6px #ffa833,0 0 48px 14px rgba(255,168,51,.3); opacity:.9} }
@keyframes r4-sparkle { 0%,100%{opacity:0; transform:scale(0.5)} 50%{opacity:1; transform:scale(1.5)} }

.scn-bangor-archdeacon-house-if-melt {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #2c2a4a 40%, #3a3a5a 70%, #2a2a4a 100%),
    radial-gradient(ellipse at 50% 20%, #4a4a6a 0%, transparent 70%),
    radial-gradient(circle at 80% 80%, #5a5a7a 0%, transparent 40%);
}
.scn-bangor-archdeacon-house-if-melt .moon {
  position: absolute; top: 5%; right: 15%;
  width: 60px; height: 60px;
  background: radial-gradient(circle at 40% 40%, #d0d8e8 0%, #a0a8c8 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(160,168,200,0.3);
  animation: bahm-moon 12s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-if-melt .wall {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #3a3850 0%, #2a2840 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-bangor-archdeacon-house-if-melt .candle {
  position: absolute; bottom: 35%; left: 25%;
  width: 12px; height: 40px;
  background: linear-gradient(180deg, #e8d4a0 0%, #c8b080 60%, #8a7040 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 8px 2px rgba(200,176,128,0.4);
  animation: bahm-candle 6s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-if-melt .wax-drip {
  position: absolute; bottom: 35%; left: 24%;
  width: 4px; height: 20px;
  background: linear-gradient(180deg, #d0bea0 0%, #b0a080 100%);
  border-radius: 0 0 50% 50%;
  transform-origin: top center;
  animation: bahm-drip 4s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-if-melt .pool {
  position: absolute; bottom: 20%; left: 18%; right: 18%; height: 8%;
  background: radial-gradient(ellipse at 50% 100%, #7a88a0 0%, #4a5070 50%, transparent 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(2px);
  animation: bahm-pool 8s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-if-melt .shadow-figure {
  position: absolute; bottom: 30%; left: 55%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: bahm-figure 5s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-if-melt .melt-veil {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 0%, rgba(160,168,200,0.08) 0%, transparent 60%);
  pointer-events: none;
  animation: bahm-veil 10s ease-in-out infinite alternate;
}

@keyframes bahm-moon {
  0% { transform: translate(0, 0) scale(1); opacity: 0.9; }
  50% { transform: translate(5px, -3px) scale(1.02); opacity: 1; }
  100% { transform: translate(-2px, 2px) scale(0.98); opacity: 0.85; }
}
@keyframes bahm-candle {
  0%,100% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.05); opacity: 1; }
}
@keyframes bahm-drip {
  0% { transform: translateY(0) scaleY(1); opacity: 1; }
  50% { transform: translateY(10px) scaleY(0.8); opacity: 0.6; }
  100% { transform: translateY(0) scaleY(1); opacity: 1; }
}
@keyframes bahm-pool {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.1); opacity: 0.8; }
  100% { transform: scaleX(0.95); opacity: 0.5; }
}
@keyframes bahm-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(2deg); }
  100% { transform: translateX(2px) rotate(-1deg); }
}
@keyframes bahm-veil {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.2; }
}

/* --- scene 2: rushes-lap --- */
.scn-bangor-archdeacon-house-rushes-lap {
  background:
    linear-gradient(180deg, #1e2040 0%, #2a2c4e 30%, #383a5a 60%, #2e3050 100%),
    radial-gradient(ellipse at 50% 80%, #4a4c6a 0%, transparent 60%);
}
.scn-bangor-archdeacon-house-rushes-lap .floor-glow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, #3a3c58 60%, #2e304a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.4);
}
.scn-bangor-archdeacon-house-rushes-lap .rushes {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 25%;
  background:
    repeating-linear-gradient(90deg, transparent 0px, transparent 8px, #6a7a4a 8px, #5a6a3a 10px, transparent 10px, transparent 18px),
    linear-gradient(180deg, #7a8a5a 0%, #4a5a2a 100%);
  border-radius: 40% 40% 0 0;
  filter: blur(1px);
  opacity: 0.7;
  animation: barl-rushes 12s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-rushes-lap .figure-lap {
  position: absolute; bottom: 25%; left: 40%;
  width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a3850 0%, #2a2840 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: barl-lap 8s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-rushes-lap .head-rest {
  position: absolute; bottom: 35%; left: 35%;
  width: 24px; height: 20px;
  background: linear-gradient(180deg, #4a4860 0%, #3a3850 100%);
  border-radius: 50% 50% 40% 40%;
  transform: rotate(-10deg);
  animation: barl-head 6s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-rushes-lap .song-lines {
  position: absolute; top: 15%; left: 20%; right: 20%; height: 30%;
  background:
    linear-gradient(90deg, transparent 0%, rgba(180,200,220,0.15) 20%, transparent 40%, rgba(180,200,220,0.1) 60%, transparent 80%);
  border-radius: 50%;
  filter: blur(8px);
  animation: barl-song 14s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-rushes-lap .moonbeam {
  position: absolute; top: 0; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(200,210,230,0.1) 0%, transparent 100%);
  clip-path: polygon(40% 0%, 60% 0%, 55% 100%, 45% 100%);
  animation: barl-beam 10s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-rushes-lap .sleep-vapor {
  position: absolute; top: 20%; left: 45%;
  width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,210,230,0.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: barl-vapor 20s ease-in-out infinite alternate;
}

@keyframes barl-rushes {
  0% { transform: translateY(0); opacity: 0.6; }
  50% { transform: translateY(-2px); opacity: 0.8; }
  100% { transform: translateY(0); opacity: 0.7; }
}
@keyframes barl-lap {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes barl-head {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-12deg) translateY(0); }
}
@keyframes barl-song {
  0% { opacity: 0.3; transform: scaleX(0.9); }
  50% { opacity: 0.6; transform: scaleX(1.1); }
  100% { opacity: 0.4; transform: scaleX(0.95); }
}
@keyframes barl-beam {
  0% { opacity: 0.2; transform: scaleX(1); }
  50% { opacity: 0.4; transform: scaleX(1.05); }
  100% { opacity: 0.25; transform: scaleX(0.95); }
}
@keyframes barl-vapor {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  50% { transform: translate(-5px, -10px) scale(1.5); opacity: 0.4; }
  100% { transform: translate(5px, -5px) scale(0.8); opacity: 0; }
}

/* --- scene 3: sit-and-hear --- */
.scn-bangor-archdeacon-house-sit-and-hear {
  background:
    linear-gradient(180deg, #2a2840 0%, #3a3850 30%, #4a4860 60%, #3a3850 100%),
    radial-gradient(ellipse at 50% 0%, #5a5870 0%, transparent 60%);
}
.scn-bangor-archdeacon-house-sit-and-hear .room-bg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, transparent 0%, #2a2840 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
}
.scn-bangor-archdeacon-house-sit-and-hear .book {
  position: absolute; bottom: 20%; left: 20%;
  width: 30px; height: 40px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform: rotate(-15deg);
  animation: bash-book 10s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-sit-and-hear .listener {
  position: absolute; bottom: 15%; left: 15%;
  width: 35px; height: 55px;
  background: linear-gradient(180deg, #3a3850 0%, #2a2840 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: bash-listen 8s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-sit-and-hear .singer {
  position: absolute; bottom: 15%; left: 55%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a4860 0%, #3a3850 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  animation: bash-sing 6s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-sit-and-hear .music-spark {
  position: absolute; top: 25%; left: 40%;
  width: 8px; height: 8px;
  background: radial-gradient(circle, #d0c8a0 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(208,200,160,0.3);
  animation: bash-spark1 4s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-sit-and-hear .music-spark-2 {
  position: absolute; top: 30%; left: 55%;
  width: 6px; height: 6px;
  background: radial-gradient(circle, #c8b890 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(200,184,144,0.3);
  animation: bash-spark2 5s ease-in-out infinite alternate;
  animation-delay: 1s;
}
.scn-bangor-archdeacon-house-sit-and-hear .air-harp {
  position: absolute; top: 10%; left: 30%; right: 30%; height: 4px;
  background: linear-gradient(90deg, transparent 0%, rgba(200,210,230,0.3) 20%, transparent 40%, rgba(200,210,230,0.2) 60%, transparent 80%);
  filter: blur(2px);
  animation: bash-harp 15s ease-in-out infinite alternate;
}

@keyframes bash-book {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-2px); }
  100% { transform: rotate(-18deg) translateY(0); }
}
@keyframes bash-listen {
  0% { transform: rotate(5deg) scaleY(1); }
  50% { transform: rotate(3deg) scaleY(1.02); }
  100% { transform: rotate(6deg) scaleY(0.98); }
}
@keyframes bash-sing {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-3px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes bash-spark1 {
  0% { transform: translate(0, 0) scale(1); opacity: 0.3; }
  50% { transform: translate(10px, -15px) scale(1.5); opacity: 0.8; }
  100% { transform: translate(-5px, -8px) scale(0.8); opacity: 0.2; }
}
@keyframes bash-spark2 {
  0% { transform: translate(0, 0) scale(1); opacity: 0.2; }
  50% { transform: translate(-8px, -12px) scale(1.3); opacity: 0.7; }
  100% { transform: translate(6px, -5px) scale(0.9); opacity: 0.1; }
}
@keyframes bash-harp {
  0% { opacity: 0.1; transform: scaleY(1); }
  50% { opacity: 0.4; transform: scaleY(2); }
  100% { opacity: 0.15; transform: scaleY(0.8); }
}

/* --- scene 4: giddy-goose --- */
.scn-bangor-archdeacon-house-giddy-goose {
  background:
    linear-gradient(180deg, #2a2a4a 0%, #3a3a5a 40%, #4a4a6a 70%, #3a3a5a 100%),
    radial-gradient(ellipse at 50% 0%, #6a6a8a 0%, transparent 60%);
}
.scn-bangor-archdeacon-house-giddy-goose .floor-warm {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, transparent 0%, #2a2a44 60%, #1e2038 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
}
.scn-bangor-archdeacon-house-giddy-goose .goose-body {
  position: absolute; bottom: 20%; left: 35%;
  width: 50px; height: 35px;
  background: linear-gradient(180deg, #d0d0c0 0%, #b0b0a0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform-origin: 30% 80%;
  animation: bagg-goose 3s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-giddy-goose .goose-head {
  position: absolute; bottom: 38%; left: 30%;
  width: 14px; height: 18px;
  background: linear-gradient(180deg, #e0e0d0 0%, #c0c0b0 100%);
  border-radius: 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: bagg-head 2.5s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-giddy-goose .musician {
  position: absolute; bottom: 15%; left: 55%;
  width: 28px; height: 45px;
  background: linear-gradient(180deg, #3a3850 0%, #2a2840 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(8deg);
  animation: bagg-musician 4s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-giddy-goose .music-notes {
  position: absolute; top: 20%; left: 30%; right: 30%; height: 20%;
  background:
    radial-gradient(circle at 30% 40%, rgba(208,200,160,0.3) 0%, transparent 8px),
    radial-gradient(circle at 60% 60%, rgba(200,192,152,0.2) 0%, transparent 6px),
    radial-gradient(circle at 80% 30%, rgba(208,200,160,0.25) 0%, transparent 7px);
  filter: blur(2px);
  animation: bagg-notes 4s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-giddy-goose .note-float {
  position: absolute; top: 25%; left: 45%;
  width: 6px; height: 6px;
  background: radial-gradient(circle, #d8d0b0 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(216,208,176,0.3);
  animation: bagg-float 6s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-giddy-goose .laugh-motes {
  position: absolute; top: 10%; left: 20%; right: 20%; height: 10%;
  background:
    radial-gradient(circle at 20% 50%, rgba(200,210,230,0.15) 0%, transparent 10px),
    radial-gradient(circle at 70% 30%, rgba(200,210,230,0.1) 0%, transparent 8px);
  filter: blur(3px);
  animation: bagg-laugh 5s ease-in-out infinite alternate;
}

@keyframes bagg-goose {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-3px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes bagg-head {
  0% { transform: rotate(-15deg) translateX(0); }
  50% { transform: rotate(20deg) translateX(2px); }
  100% { transform: rotate(-10deg) translateX(-1px); }
}
@keyframes bagg-musician {
  0% { transform: rotate(8deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(1.03); }
  100% { transform: rotate(10deg) scaleY(0.97); }
}
@keyframes bagg-notes {
  0% { opacity: 0.3; transform: translateY(0); }
  50% { opacity: 0.7; transform: translateY(-5px); }
  100% { opacity: 0.2; transform: translateY(3px); }
}
@keyframes bagg-float {
  0% { transform: translate(0, 0) scale(1); opacity: 0.2; }
  50% { transform: translate(-8px, -15px) scale(1.8); opacity: 0.8; }
  100% { transform: translate(6px, -5px) scale(0.6); opacity: 0.1; }
}
@keyframes bagg-laugh {
  0% { opacity: 0.1; transform: scaleY(1); }
  50% { opacity: 0.4; transform: scaleY(1.5); }
  100% { opacity: 0.15; transform: scaleY(0.8); }
}

/* Scene 1: kings-camp-king-pays-infantry – tense + dawn */
.scn-kings-camp-king-pays-infantry {
  background:
    linear-gradient(180deg, #ffb56b 0%, #e8a05a 20%, #b8743c 60%, #5a3a1a 100%),
    radial-gradient(ellipse at 50% 0%, #ffd8a0 0%, transparent 70%);
}
.scn-kings-camp-king-pays-infantry .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #f5c896 0%, #e8a875 50%, #b8743c 100%);
  animation: kc1-sky 12s ease-in-out infinite alternate;
}
.scn-kings-camp-king-pays-infantry .sun {
  position: absolute; top: 8%; left: 60%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff7e0 0%, #ffc070 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 50px 20px #ffa040;
  animation: kc1-sun 20s linear infinite;
}
.scn-kings-camp-king-pays-infantry .tent {
  position: absolute; bottom: 30%; left: 20%; width: 120px; height: 80px;
  background: linear-gradient(135deg, #7a5a3a 0%, #5a3a1a 50%, #3a2210 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  box-shadow: 10px 10px 20px rgba(0,0,0,.5);
  animation: kc1-tent 8s ease-in-out infinite alternate;
}
.scn-kings-camp-king-pays-infantry .king {
  position: absolute; bottom: 28%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #c07a40 0%, #8a5020 60%, #4a2a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: kc1-king 4s ease-in-out infinite;
}
.scn-kings-camp-king-pays-infantry .soldiers {
  position: absolute; bottom: 30%; left: 48%; width: 80px; height: 40px;
  background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 6px, transparent 6px, transparent 10px);
  mask-image: linear-gradient(180deg, #000 0%, #000 70%, transparent 100%);
  animation: kc1-soldiers 2s ease-in-out infinite alternate;
}
.scn-kings-camp-king-pays-infantry .flag {
  position: absolute; bottom: 52%; left: 22%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #a8553d 0%, #7a3a1a 100%);
  border-radius: 0 20% 20% 0;
  animation: kc1-flag 3s ease-in-out infinite alternate;
}
.scn-kings-camp-king-pays-infantry .bonfire {
  position: absolute; bottom: 28%; left: 15%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd060 0%, #c08030 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 15px #c08030;
  animation: kc1-fire 1.5s ease-in-out infinite alternate;
}
.scn-kings-camp-king-pays-infantry .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.4);
}
@keyframes kc1-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes kc1-sun { 0% { transform: translate(0, 0) } 100% { transform: translate(10px, -5px) } }
@keyframes kc1-tent { 0% { transform: translateY(0) } 100% { transform: translateY(-3px) } }
@keyframes kc1-king { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) translateY(-1px) } 100% { transform: rotate(-2deg) } }
@keyframes kc1-soldiers { 0% { transform: scaleX(1) } 100% { transform: scaleX(1.1) } }
@keyframes kc1-flag { 0% { transform: rotate(-10deg) } 100% { transform: rotate(10deg) } }
@keyframes kc1-fire { 0% { transform: scale(1) } 100% { transform: scale(1.3) } }

/* Scene 2: kings-camp-hal-challenge – warm + dawn */
.scn-kings-camp-hal-challenge {
  background:
    linear-gradient(180deg, #ffd8a0 0%, #f0c87a 30%, #c09050 60%, #705020 100%),
    radial-gradient(ellipse at 60% 20%, #ffe8b0 0%, transparent 70%);
}
.scn-kings-camp-hal-challenge .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffe0b0 0%, #f0c080 50%, #c09050 100%);
  animation: kc2-sky 15s ease-in-out infinite alternate;
}
.scn-kings-camp-hal-challenge .sun {
  position: absolute; top: 10%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fffbe0 0%, #ffd080 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 60px 30px #ffc060;
  animation: kc2-sun 25s linear infinite;
}
.scn-kings-camp-hal-challenge .tent {
  position: absolute; bottom: 30%; left: 15%; width: 140px; height: 90px;
  background: linear-gradient(135deg, #9a7a4a 0%, #6a5020 50%, #4a3010 100%);
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  box-shadow: 8px 8px 15px rgba(0,0,0,.4);
  animation: kc2-tent 10s ease-in-out infinite alternate;
}
.scn-kings-camp-hal-challenge .prince {
  position: absolute; bottom: 28%; left: 38%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #d0a060 0%, #a07030 60%, #5a3a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: kc2-prince 5s ease-in-out infinite;
}
.scn-kings-camp-hal-challenge .horse {
  position: absolute; bottom: 28%; left: 50%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4020 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  animation: kc2-horse 6s ease-in-out infinite alternate;
}
.scn-kings-camp-hal-challenge .lance {
  position: absolute; bottom: 35%; left: 42%; width: 60px; height: 4px;
  background: linear-gradient(90deg, #c09050 0%, #9a7020 100%);
  border-radius: 2px; transform: rotate(-15deg);
  animation: kc2-lance 4s ease-in-out infinite;
}
.scn-kings-camp-hal-challenge .banner {
  position: absolute; bottom: 40%; left: 18%; width: 40px; height: 25px;
  background: linear-gradient(180deg, #b87878 0%, #8a5050 100%);
  border-radius: 0 30% 30% 0;
  animation: kc2-banner 8s ease-in-out infinite alternate;
}
.scn-kings-camp-hal-challenge .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #7a5a2a 0%, #4a3010 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,.3);
}
@keyframes kc2-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes kc2-sun { 0% { transform: translate(0, 0) } 50% { transform: translate(5px, -10px) } 100% { transform: translate(-5px, -5px) } }
@keyframes kc2-tent { 0% { transform: translateY(0) } 100% { transform: translateY(-2px) } }
@keyframes kc2-prince { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(-3deg) } }
@keyframes kc2-horse { 0% { transform: rotate(0) } 100% { transform: rotate(5deg) scaleX(1.05) } }
@keyframes kc2-lance { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-20deg) } }
@keyframes kc2-banner { 0% { transform: rotate(-5deg) } 100% { transform: rotate(15deg) } }

/* Scene 3: kings-camp-king-rejects – calm + dawn */
.scn-kings-camp-king-rejects {
  background:
    linear-gradient(180deg, #ffe8c0 0%, #f0d0a0 40%, #c0a080 70%, #806050 100%),
    radial-gradient(ellipse at 50% 30%, #fff0d0 0%, transparent 60%);
}
.scn-kings-camp-king-rejects .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fff0d0 0%, #f0d0a0 60%, #c0a080 100%);
  animation: kc3-sky 20s ease-in-out infinite alternate;
}
.scn-kings-camp-king-rejects .sun {
  position: absolute; top: 12%; left: 55%; width: 45px; height: 45px;
  background: radial-gradient(circle, #fff8e0 0%, #ffd090 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 70px 25px #ffc080;
  animation: kc3-sun 30s linear infinite;
}
.scn-kings-camp-king-rejects .tent {
  position: absolute; bottom: 35%; left: 30%; width: 160px; height: 100px;
  background: linear-gradient(135deg, #a08050 0%, #806030 50%, #604020 100%);
  clip-path: polygon(5% 100%, 25% 0%, 75% 0%, 95% 100%);
  box-shadow: 0 0 20px rgba(0,0,0,.3);
  animation: kc3-tent 14s ease-in-out infinite alternate;
}
.scn-kings-camp-king-rejects .throne {
  position: absolute; bottom: 35%; left: 40%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #b09060 0%, #806030 100%);
  border-radius: 20% 20% 5% 5%;
  transform-origin: bottom;
  animation: kc3-throne 9s ease-in-out infinite alternate;
}
.scn-kings-camp-king-rejects .king {
  position: absolute; bottom: 30%; left: 42%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #d0a070 0%, #a07040 60%, #604020 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: kc3-king 6s ease-in-out infinite;
}
.scn-kings-camp-king-rejects .courtiers {
  position: absolute; bottom: 30%; left: 52%; width: 40px; height: 45px;
  background: linear-gradient(180deg, #b09070 0%, #806040 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: kc3-courtiers 10s ease-in-out infinite alternate;
}
.scn-kings-camp-king-rejects .standards {
  position: absolute; bottom: 50%; left: 25%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #a07050 0%, #704020 100%);
  border-radius: 0 20% 20% 0;
  animation: kc3-standards 12s ease-in-out infinite alternate;
}
.scn-kings-camp-king-rejects .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #806050 0%, #504030 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.2);
}
@keyframes kc3-sky { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .95 } }
@keyframes kc3-sun { 0% { transform: translate(0, 0) } 100% { transform: translate(8px, -6px) } }
@keyframes kc3-tent { 0% { transform: translateY(0) } 100% { transform: translateY(-2px) } }
@keyframes kc3-throne { 0% { transform: scaleY(1) } 100% { transform: scaleY(1.05) } }
@keyframes kc3-king { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes kc3-courtiers { 0% { transform: translateX(0) } 100% { transform: translateX(8px) } }
@keyframes kc3-standards { 0% { transform: rotate(-5deg) } 100% { transform: rotate(5deg) } }

/* Scene 4: kings-camp-falstaff-requests-bestride – funny + dawn */
.scn-kings-camp-falstaff-requests-bestride {
  background:
    linear-gradient(180deg, #ffe8a0 0%, #f0c070 30%, #c09550 60%, #806030 100%),
    radial-gradient(ellipse at 30% 20%, #ffeea0 0%, transparent 70%);
}
.scn-kings-camp-falstaff-requests-bestride .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #ffe8b0 0%, #f0c880 50%, #c09040 100%);
  animation: kc4-sky 18s ease-in-out infinite alternate;
}
.scn-kings-camp-falstaff-requests-bestride .sun {
  position: absolute; top: 8%; left: 65%; width: 55px; height: 55px;
  background: radial-gradient(circle, #fffbe0 0%, #ffc060 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 80px 30px #ffa040;
  animation: kc4-sun 35s linear infinite;
}
.scn-kings-camp-falstaff-requests-bestride .falstaff {
  position: absolute; bottom: 22%; left: 25%; width: 60px; height: 70px;
  background: radial-gradient(ellipse at 50% 60%, #907050 0%, #604020 70%, #302010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kc4-falstaff 3s ease-in-out infinite;
}
.scn-kings-camp-falstaff-requests-bestride .prince {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #c09860 0%, #906030 60%, #503010 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: kc4-prince 2.5s ease-in-out infinite alternate;
}
.scn-kings-camp-falstaff-requests-bestride .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #7a5a2a 0%, #4a3010 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 5px 10px rgba(0,0,0,.3);
}
.scn-kings-camp-falstaff-requests-bestride .colossus-shadow {
  position: absolute; bottom: 10%; left: 10%; width: 120px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.25) 0%, transparent 100%);
  border-radius: 50%;
  animation: kc4-shadow 5s ease-in-out infinite alternate;
}
.scn-kings-camp-falstaff-requests-bestride .boulder {
  position: absolute; bottom: 20%; left: 70%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #806030 0%, #503020 100%);
  border-radius: 50% 40% 40% 30%;
  animation: kc4-boulder 8s ease-in-out infinite alternate;
}
.scn-kings-camp-falstaff-requests-bestride .cloud {
  position: absolute; top: 15%; right: 10%; width: 80px; height: 25px;
  background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,200,.2) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: kc4-cloud 45s linear infinite reverse;
}
@keyframes kc4-sky { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes kc4-sun { 0% { transform: translate(0, 0) } 100% { transform: translate(15px, -8px) } }
@keyframes kc4-falstaff { 0% { transform: rotate(-5deg) scale(1) } 25% { transform: rotate(8deg) scale(1.02) } 50% { transform: rotate(-4deg) scale(1) } 75% { transform: rotate(6deg) scale(1.05) } 100% { transform: rotate(-2deg) scale(1) } }
@keyframes kc4-prince { 0% { transform: translateX(0) rotate(0) } 100% { transform: translateX(-8px) rotate(5deg) } }
@keyframes kc4-shadow { 0% { transform: scaleX(1) } 100% { transform: scaleX(1.2) } }
@keyframes kc4-boulder { 0% { transform: translate(0, 0) rotate(0) } 100% { transform: translate(4px, -2px) rotate(10deg) } }
@keyframes kc4-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

.scn-highway-gadshill-comrades-arrive {
  background: linear-gradient(180deg, #0b0f1a 0%, #151e2e 40%, #1c2a40 70%, #24324a 100%),
              radial-gradient(ellipse at 50% 0%, #2a3e5a 0%, transparent 70%);
}
.scn-highway-gadshill-comrades-arrive .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #0a0e18 0%, #0f1624 50%, #141d2e 100%); animation: hga1-sky 12s ease-in-out infinite alternate; }
.scn-highway-gadshill-comrades-arrive .moon { position:absolute; top:8%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #c0cfe0 0%, #8a9bb0 80%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(138,155,176,.4), 0 0 60px 20px rgba(138,155,176,.2); animation: hga1-moon 16s ease-in-out infinite alternate; }
.scn-highway-gadshill-comrades-arrive .hills { position:absolute; bottom:40%; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a2a3a 0%, #0d1a2a 100%); border-radius: 50% 30% 0 0 / 60% 40% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.5); animation: hga1-hills 20s ease-in-out infinite; }
.scn-highway-gadshill-comrades-arrive .road { position:absolute; bottom:25%; left:25%; right:25%; height:8%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 20% 20% 0 0; transform: perspective(300px) rotateX(60deg); }
.scn-highway-gadshill-comrades-arrive .figure-a { position:absolute; bottom:30%; left:30%; width:16px; height:32px; background: linear-gradient(180deg, #2a3440 0%, #111822 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hga1-fig 4s ease-in-out infinite, hga1-walk 2s ease-in-out infinite alternate; }
.scn-highway-gadshill-comrades-arrive .figure-b { position:absolute; bottom:30%; left:45%; width:18px; height:34px; background: linear-gradient(180deg, #1e2a36 0%, #0c141e 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: hga1-fig 5s ease-in-out infinite reverse, hga1-walk 2.5s ease-in-out infinite alternate; }
.scn-highway-gadshill-comrades-arrive .figure-c { position:absolute; bottom:30%; left:58%; width:15px; height:30px; background: linear-gradient(180deg, #25303c 0%, #0f1620 100%); border-radius: 38% 38% 28% 28% / 48% 48% 28% 28%; transform-origin: bottom center; animation: hga1-fig 6s ease-in-out infinite, hga1-walk 1.8s ease-in-out infinite alternate; }
.scn-highway-gadshill-comrades-arrive .hedge { position:absolute; bottom:28%; left:10%; right:70%; height:20%; background: linear-gradient(180deg, #0f1a12 0%, #050a06 100%); border-radius: 50% 40% 0 0 / 80% 60% 0 0; filter: blur(2px); }
@keyframes hga1-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.75 } }
@keyframes hga1-moon { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(2px,-2px) scale(1.02); } 100% { transform: translate(0,0) scale(0.98); } }
@keyframes hga1-hills { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(1px) scaleY(0.99); } }
@keyframes hga1-fig { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes hga1-walk { 0% { transform: rotate(-2deg); } 100% { transform: rotate(2deg); } }

.scn-highway-gadshill-enough-for-all {
  background: linear-gradient(180deg, #0a0e18 0%, #141c2c 40%, #1a2436 70%, #203040 100%),
              radial-gradient(ellipse at 50% 0%, #1e2a3e 0%, transparent 60%);
}
.scn-highway-gadshill-enough-for-all .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #080c14 0%, #0e1420 50%, #141c2a 100%); }
.scn-highway-gadshill-enough-for-all .lane-bg { position:absolute; bottom:30%; left:20%; right:20%; height:40%; background: #1a2330; border-radius: 0; transform: perspective(500px) rotateX(30deg); }
.scn-highway-gadshill-enough-for-all .lane-left { position:absolute; bottom:30%; left:20%; width:8%; height:50%; background: linear-gradient(90deg, #0d141e 0%, #141c2a 100%); border-radius: 10% 0 0 10%; box-shadow: inset -4px 0 8px rgba(0,0,0,.6); }
.scn-highway-gadshill-enough-for-all .lane-right { position:absolute; bottom:30%; right:20%; width:8%; height:50%; background: linear-gradient(90deg, #141c2a 0%, #0d141e 100%); border-radius: 0 10% 10% 0; box-shadow: inset 4px 0 8px rgba(0,0,0,.6); }
.scn-highway-gadshill-enough-for-all .figure-1 { position:absolute; bottom:32%; left:28%; width:14px; height:28px; background: linear-gradient(180deg, #1e2a38 0%, #0c1420 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hga2-fig 3.5s ease-in-out infinite, hga2-bob 1.8s ease-in-out infinite alternate; }
.scn-highway-gadshill-enough-for-all .figure-2 { position:absolute; bottom:32%; left:38%; width:16px; height:30px; background: linear-gradient(180deg, #1a2634 0%, #0a121e 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; animation: hga2-fig 4s ease-in-out infinite reverse, hga2-bob 2s ease-in-out infinite alternate; }
.scn-highway-gadshill-enough-for-all .figure-3 { position:absolute; bottom:32%; left:52%; width:15px; height:26px; background: linear-gradient(180deg, #222e3c 0%, #101a26 100%); border-radius: 38% 38% 28% 28% / 48% 48% 28% 28%; animation: hga2-fig 3.8s ease-in-out infinite, hga2-bob 2.2s ease-in-out infinite alternate; }
.scn-highway-gadshill-enough-for-all .figure-4 { position:absolute; bottom:32%; left:62%; width:17px; height:32px; background: linear-gradient(180deg, #1c2836 0%, #0c1622 100%); border-radius: 42% 42% 32% 32% / 52% 52% 32% 32%; animation: hga2-fig 4.5s ease-in-out infinite reverse, hga2-bob 1.6s ease-in-out infinite alternate; }
.scn-highway-gadshill-enough-for-all .lantern { position:absolute; bottom:28%; left:45%; width:6px; height:8px; background: radial-gradient(circle, #f0c040 0%, #b08020 60%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 6px #b08020, 0 0 40px 12px rgba(176,128,32,.4); animation: hga2-lantern 4s ease-in-out infinite alternate; }
@keyframes hga2-fig { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hga2-bob { 0% { transform: rotate(-3deg); } 100% { transform: rotate(3deg); } }
@keyframes hga2-lantern { 0% { box-shadow: 0 0 15px 4px #b08020; opacity:0.8; } 50% { box-shadow: 0 0 25px 8px #e0b040; opacity:1; } 100% { box-shadow: 0 0 18px 5px #b08020; opacity:0.9; } }

.scn-highway-gadshill-not-gaunt {
  background: linear-gradient(180deg, #0b0e16 0%, #141a28 30%, #1a2232 60%, #1e2a3a 100%),
              radial-gradient(ellipse at 50% 0%, #1e2a3e 0%, transparent 60%);
}
.scn-highway-gadshill-not-gaunt .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #080c14 0%, #0e1422 50%, #141c2c 100%); animation: hga3-sky 10s ease-in-out infinite alternate; }
.scn-highway-gadshill-not-gaunt .hedge-back { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #0d1a10 0%, #040a05 100%); border-radius: 60% 40% 0 0 / 80% 50% 0 0; }
.scn-highway-gadshill-not-gaunt .hedge-front { position:absolute; bottom:25%; left:10%; right:50%; height:30%; background: linear-gradient(180deg, #0f1c12 0%, #050b06 100%); border-radius: 40% 60% 0 0 / 70% 60% 0 0; filter: blur(1px); }
.scn-highway-gadshill-not-gaunt .horse-body { position:absolute; bottom:28%; left:55%; width:40px; height:24px; background: linear-gradient(180deg, #1a222a 0%, #0a1016 100%); border-radius: 40% 20% 30% 30% / 60% 40% 40% 40%; transform: scaleX(-1); animation: hga3-horse 6s ease-in-out infinite; }
.scn-highway-gadshill-not-gaunt .horse-legs { position:absolute; bottom:18%; left:58%; width:4px; height:20px; background: #0a1016; border-radius: 10%; box-shadow: 8px 0 0 #0a1016, 16px 0 0 #0a1016, 24px 0 0 #0a1016; animation: hga3-legs 2s ease-in-out infinite alternate; }
.scn-highway-gadshill-not-gaunt .figure-falstaff { position:absolute; bottom:26%; left:38%; width:20px; height:36px; background: linear-gradient(180deg, #1e2834 0%, #0c1420 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: hga3-falstaff 4s ease-in-out infinite; }
.scn-highway-gadshill-not-gaunt .figure-hal { position:absolute; bottom:26%; left:24%; width:16px; height:32px; background: linear-gradient(180deg, #1a2432 0%, #0a121e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: scaleX(-1); animation: hga3-hal 5s ease-in-out infinite reverse; }
.scn-highway-gadshill-not-gaunt .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #101a12 0%, #060c08 100%); box-shadow: inset 0 4px 8px rgba(0,0,0,.6); }
@keyframes hga3-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.75 } }
@keyframes hga3-horse { 0% { transform: translateY(0) scaleX(-1); } 50% { transform: translateY(-2px) scaleX(-1); } 100% { transform: translateY(0) scaleX(-1); } }
@keyframes hga3-legs { 0% { transform: translateY(0); } 100% { transform: translateY(-3px); } }
@keyframes hga3-falstaff { 0% { transform: translateY(0) scaleX(-1); } 50% { transform: translateY(-2px) scaleX(-1) rotate(2deg); } 100% { transform: translateY(0) scaleX(-1); } }
@keyframes hga3-hal { 0% { transform: translateY(0) scaleX(-1); } 50% { transform: translateY(-1px) scaleX(-1) rotate(-1deg); } 100% { transform: translateY(0) scaleX(-1); } }

.scn-highway-gadshill-close {
  background: linear-gradient(180deg, #080b14 0%, #101624 30%, #161e30 60%, #1c263a 100%),
              radial-gradient(ellipse at 50% 0%, #1a2434 0%, transparent 70%);
}
.scn-highway-gadshill-close .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #060a12 0%, #0c121e 50%, #101a28 100%); }
.scn-highway-gadshill-close .bush-left { position:absolute; bottom:30%; left:5%; width:30%; height:40%; background: linear-gradient(180deg, #0d1a12 0%, #040a05 100%); border-radius: 40% 60% 30% 50% / 60% 80% 30% 40%; filter: blur(2px); animation: hga4-bush 15s ease-in-out infinite alternate; }
.scn-highway-gadshill-close .bush-right { position:absolute; bottom:30%; right:5%; width:30%; height:40%; background: linear-gradient(180deg, #0d1a12 0%, #040a05 100%); border-radius: 60% 40% 50% 30% / 80% 60% 40% 30%; filter: blur(2px); animation: hga4-bush 18s ease-in-out infinite alternate reverse; }
.scn-highway-gadshill-close .figure-hide1 { position:absolute; bottom:28%; left:18%; width:14px; height:28px; background: linear-gradient(180deg, #1a2432 0%, #0a121e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: hga4-hide 3s ease-in-out infinite, hga4-crouch 2s ease-in-out infinite alternate; }
.scn-highway-gadshill-close .figure-hide2 { position:absolute; bottom:28%; left:40%; width:16px; height:30px; background: linear-gradient(180deg, #1e2836 0%, #0c1420 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; animation: hga4-hide 3.5s ease-in-out infinite reverse, hga4-crouch 2.5s ease-in-out infinite alternate; }
.scn-highway-gadshill-close .figure-hide3 { position:absolute; bottom:28%; left:62%; width:15px; height:26px; background: linear-gradient(180deg, #222e3c 0%, #101a24 100%); border-radius: 38% 38% 28% 28% / 48% 48% 28% 28%; animation: hga4-hide 4s ease-in-out infinite, hga4-crouch 1.8s ease-in-out infinite alternate; }
.scn-highway-gadshill-close .traveler { position:absolute; bottom:25%; left:50%; width:18px; height:34px; background: linear-gradient(180deg, #2a3646 0%, #141e2e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: translateX(120%); animation: hga4-traveler 8s linear infinite; }
.scn-highway-gadshill-close .road-ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #101a14 0%, #060c08 100%); box-shadow: inset 0 6px 12px rgba(0,0,0,.7); }
@keyframes hga4-bush { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(0.98); } }
@keyframes hga4-hide { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hga4-crouch { 0% { transform: translateY(0) scaleY(1); } 100% { transform: translateY(2px) scaleY(0.9); } }
@keyframes hga4-traveler { 0% { transform: translateX(120%) translateY(0); } 50% { transform: translateX(60%) translateY(-1px); } 100% { transform: translateX(-20%) translateY(0); } }

/* london-palace-hotspur-berkley – tense, bright interior, castle hall */
.scn-london-palace-hotspur-berkley {
  background:
    linear-gradient(180deg, #c8a56b 0%, #8b6f44 30%, #5a4a2e 70%, #2d2416 100%),
    radial-gradient(ellipse at 30% 40%, #e0c080 0%, transparent 60%);
}
.scn-london-palace-hotspur-berkley .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.5);
}
.scn-london-palace-hotspur-berkley .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 35%;
  background: linear-gradient(135deg, #b8906a 0%, #a07850 50%, #705030 100%);
  border-bottom: 4px solid #3a2a1a;
}
.scn-london-palace-hotspur-berkley .window {
  position: absolute; top: 12%; left: 20%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 40%, #ffeaa0 0%, #d4b878 50%, transparent 80%);
  border: 6px solid #50382a;
  border-radius: 6px;
  box-shadow: inset 0 0 30px #ffe080, 0 0 40px 8px rgba(255,224,128,0.3);
  animation: lpb-window 6s ease-in-out infinite alternate;
}
.scn-london-palace-hotspur-berkley .figure {
  position: absolute; bottom: 22%; left: 48%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a2a1e 0%, #0e0e0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lpb-figure 4s ease-in-out infinite;
}
.scn-london-palace-hotspur-berkley .dog {
  position: absolute; bottom: 24%; left: 62%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: center bottom;
  animation: lpb-dog 3s ease-in-out infinite;
}
.scn-london-palace-hotspur-berkley .candle-glow {
  position: absolute; bottom: 40%; left: 30%; width: 12px; height: 16px;
  background: radial-gradient(circle, #fff0b0 0%, #e8c060 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px #e8b040, 0 0 60px 24px rgba(232,176,64,0.3);
  animation: lpb-candle 2s ease-in-out infinite alternate;
}
.scn-london-palace-hotspur-berkley .shadow {
  position: absolute; bottom: 20%; left: 44%; width: 50px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: lpb-shadow 4s ease-in-out infinite;
}
@keyframes lpb-window {
  0% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.02); }
  100% { opacity: 0.7; transform: scaleX(0.98); }
}
@keyframes lpb-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes lpb-dog {
  0% { transform: translateY(0) rotate(-3deg); }
  30% { transform: translateY(-2px) rotate(3deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(-1px) rotate(2deg); }
}
@keyframes lpb-candle {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.15); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.9; }
}
@keyframes lpb-shadow {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.2); }
  100% { transform: scaleX(0.9); }
}

/* london-palace-worcester-again – calm, bright interior, two figures at table */
.scn-london-palace-worcester-again {
  background:
    linear-gradient(180deg, #d4b888 0%, #b89868 40%, #7a5c3a 80%, #3a2a18 100%),
    radial-gradient(ellipse at 50% 30%, #f0d8a0 0%, transparent 60%);
}
.scn-london-palace-worcester-again .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a4a32 0%, #2a1e12 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-london-palace-worcester-again .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(135deg, #c8a878 0%, #a88858 50%, #786040 100%);
  border-bottom: 3px solid #4a3828;
}
.scn-london-palace-worcester-again .table {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #6a4e32 0%, #4a321e 100%);
  border-radius: 10px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-london-palace-worcester-again .figure-left {
  position: absolute; bottom: 22%; left: 34%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a2218 0%, #120e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: center bottom;
  animation: lpa-fig-l 6s ease-in-out infinite alternate;
}
.scn-london-palace-worcester-again .figure-right {
  position: absolute; bottom: 22%; right: 34%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a2218 0%, #120e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: center bottom;
  animation: lpa-fig-r 6s ease-in-out infinite alternate;
}
.scn-london-palace-worcester-again .light-shaft {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(180deg, rgba(255,235,180,0.3) 0%, transparent 70%);
  clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%);
  animation: lpa-shaft 8s ease-in-out infinite alternate;
}
@keyframes lpa-fig-l {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(-1px) rotate(0deg); }
}
@keyframes lpa-fig-r {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(-2deg); }
  100% { transform: translateX(1px) rotate(0deg); }
}
@keyframes lpa-shaft {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.5; transform: scaleY(1.05); }
  100% { opacity: 0.4; transform: scaleY(0.95); }
}

/* london-palace-worcester-plan-outline – tense, bright interior, plotting around map */
.scn-london-palace-worcester-plan-outline {
  background:
    linear-gradient(180deg, #a08a6a 0%, #7a6040 40%, #4a3420 80%, #1e140e 100%),
    radial-gradient(ellipse at 50% 50%, #d4b080 0%, transparent 50%);
}
.scn-london-palace-worcester-plan-outline .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #4a3a28 0%, #261a10 100%);
  border-radius: 10% 10% 0 0 / 5% 5% 0 0;
}
.scn-london-palace-worcester-plan-outline .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 28%;
  background: linear-gradient(135deg, #b89870 0%, #9a784e 50%, #685030 100%);
  border-bottom: 5px solid #3a281a;
}
.scn-london-palace-worcester-plan-outline .table {
  position: absolute; bottom: 22%; left: 20%; width: 60%; height: 6%;
  background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%);
  border-radius: 8px;
  box-shadow: 0 6px 14px rgba(0,0,0,0.5);
}
.scn-london-palace-worcester-plan-outline .map {
  position: absolute; bottom: 24%; left: 30%; width: 40%; height: 4%;
  background: linear-gradient(135deg, #d4c8a0 0%, #b8a880 50%, #8a7858 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: lpp-map 5s ease-in-out infinite alternate;
}
.scn-london-palace-worcester-plan-outline .figure-a {
  position: absolute; bottom: 20%; left: 24%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #1e1a14 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: center bottom;
  animation: lpp-fig-a 3.5s ease-in-out infinite;
}
.scn-london-palace-worcester-plan-outline .figure-b {
  position: absolute; bottom: 20%; right: 24%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #1e1a14 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: center bottom;
  animation: lpp-fig-b 3.5s ease-in-out infinite alternate;
}
.scn-london-palace-worcester-plan-outline .candle-group {
  position: absolute; bottom: 32%; left: 48%; width: 14px; height: 18px;
  background: radial-gradient(circle, #ffe080 0%, #d4a850 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #e0b050, 0 0 60px 20px rgba(224,176,80,0.4);
  animation: lpp-candle 2.5s ease-in-out infinite alternate;
}
.scn-london-palace-worcester-plan-outline .letter {
  position: absolute; bottom: 26%; left: 45%; width: 12px; height: 16px;
  background: linear-gradient(135deg, #e0d0b0 0%, #c0a880 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(-10deg);
  animation: lpp-letter 4s ease-in-out infinite;
}
@keyframes lpp-map {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.02) rotate(2deg); }
  100% { transform: scale(0.98) rotate(-1deg); }
}
@keyframes lpp-fig-a {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(3px) rotate(3deg); }
  60% { transform: translateX(-2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lpp-fig-b {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(-3deg); }
  100% { transform: translateX(2px) rotate(2deg); }
}
@keyframes lpp-candle {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.9; }
}
@keyframes lpp-letter {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-2px); }
  100% { transform: rotate(-12deg) translateY(1px); }
}

/* london-palace-worcester-york – tense, bright interior, figure with paper */
.scn-london-palace-worcester-york {
  background:
    linear-gradient(180deg, #b8906a 0%, #8a6a44 40%, #4a3420 80%, #1e140e 100%),
    radial-gradient(ellipse at 60% 20%, #e0c080 0%, transparent 50%);
}
.scn-london-palace-worcester-york .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: linear-gradient(180deg, #4a3a28 0%, #261a10 100%);
  border-radius: 15% 15% 0 0 / 8% 8% 0 0;
}
.scn-london-palace-worcester-york .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 32%;
  background: linear-gradient(135deg, #b89870 0%, #9a784e 50%, #685030 100%);
  border-bottom: 4px solid #3a281a;
}
.scn-london-palace-worcester-york .window {
  position: absolute; top: 10%; right: 15%; width: 25%; height: 35%;
  background: radial-gradient(ellipse at 50% 40%, #ffeaa0 0%, #d4b878 50%, transparent 70%);
  border: 5px solid #50382a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px #ffe080, 0 0 30px 6px rgba(255,224,128,0.3);
  animation: lpy-window 7s ease-in-out infinite alternate;
}
.scn-london-palace-worcester-york .figure {
  position: absolute; bottom: 20%; left: 50%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1e1a14 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: center bottom;
  animation: lpy-figure 4s ease-in-out infinite;
}
.scn-london-palace-worcester-york .paper {
  position: absolute; bottom: 30%; left: 42%; width: 14px; height: 18px;
  background: linear-gradient(135deg, #e0d0b0 0%, #c0a880 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: lpy-paper 5s ease-in-out infinite alternate;
}
.scn-london-palace-worcester-york .shadow-pool {
  position: absolute; bottom: 18%; left: 44%; width: 60px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: lpy-shadow 4s ease-in-out infinite;
}
.scn-london-palace-worcester-york .dust {
  position: absolute; top: 20%; left: 25%; width: 40px; height: 10px;
  background: rgba(255,255,255,0.08);
  border-radius: 50%;
  filter: blur(4px);
  animation: lpy-dust-a 20s linear infinite;
}
.scn-london-palace-worcester-york .dust-b {
  position: absolute; top: 35%; right: 20%; width: 30px; height: 8px;
  background: rgba(255,255,255,0.06);
  border-radius: 50%;
  filter: blur(3px);
  animation: lpy-dust-b 25s linear infinite reverse;
}
@keyframes lpy-window {
  0% { opacity: 0.7; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.01); }
  100% { opacity: 0.8; transform: scaleX(0.99); }
}
@keyframes lpy-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(-2px) rotate(-2deg); }
  75% { transform: translateX(5px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes lpy-paper {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-2px); }
  100% { transform: rotate(12deg) translateY(1px); }
}
@keyframes lpy-shadow {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.15); }
  100% { transform: scaleX(0.9); }
}
@keyframes lpy-dust-a {
  0% { transform: translateX(-20px); }
  100% { transform: translateX(100vw); }
}
@keyframes lpy-dust-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}

/* rebel-camp-vernon-praises-hal */
.scn-rebel-camp-vernon-praises-hal {
  background: linear-gradient(180deg, #6b7a7a 0%, #8b9b8b 30%, #7a8a7a 60%, #5a6a5a 100%), radial-gradient(ellipse at 50% 100%, #4a5a4a 0%, transparent 70%);
}
.scn-rebel-camp-vernon-praises-hal .sky-rcv {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #7a8a8a 0%, #9aa9a9 40%, #8a9999 70%, #6a7a7a 100%);
  animation: scv-sky 20s ease-in-out infinite alternate;
}
.scn-rebel-camp-vernon-praises-hal .ground-rcv {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  animation: scv-ground 15s ease-in-out infinite;
}
.scn-rebel-camp-vernon-praises-hal .tent-rcv {
  position: absolute; bottom: 28%; left: 15%; width: 30%; height: 45%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
}
.scn-rebel-camp-vernon-praises-hal .fire-rcv {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 50px;
  background: radial-gradient(circle at 50% 100%, #ffa050 0%, #ff7030 40%, #cc4000 70%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 20px rgba(255,160,80,0.5);
  animation: scv-fire 2s ease-in-out infinite alternate;
}
.scn-rebel-camp-vernon-praises-hal .figure-rcv {
  position: absolute; bottom: 22%; left: 42%; 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: scv-figure 3s ease-in-out infinite;
}
.scn-rebel-camp-vernon-praises-hal .banner-rcv {
  position: absolute; bottom: 22%; left: 60%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(138,106,58,0.5);
  animation: scv-banner 4s ease-in-out infinite;
}
@keyframes scv-sky {
  0% { opacity: 0.8; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.7; filter: brightness(0.9); }
}
@keyframes scv-ground {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0px); }
}
@keyframes scv-fire {
  0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 30px 15px rgba(255,160,80,0.4); }
  50% { transform: scale(1.1) rotate(3deg); box-shadow: 0 0 50px 25px rgba(255,160,80,0.7); }
  100% { transform: scale(1) rotate(-2deg); box-shadow: 0 0 35px 18px rgba(255,160,80,0.5); }
}
@keyframes scv-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(5px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(10px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(15px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(20px) translateY(0) rotate(0deg); }
}
@keyframes scv-banner {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(1.05); }
  100% { transform: rotate(-3deg) scaleY(1); }
}

/* rebel-camp-hotspur-dismisses */
.scn-rebel-camp-hotspur-dismisses {
  background: linear-gradient(180deg, #5a5a4a 0%, #7a7a6a 30%, #6a6a5a 60%, #4a4a3a 100%), radial-gradient(ellipse at 30% 80%, #3a3a2a 0%, transparent 70%);
}
.scn-rebel-camp-hotspur-dismisses .sky-rcd {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6a6a5a 0%, #8a8a7a 50%, #7a7a6a 100%);
  animation: scd-sky 25s ease-in-out infinite alternate;
}
.scn-rebel-camp-hotspur-dismisses .ground-rcd {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 30% 70% 0 0 / 20% 50% 0 0;
  animation: scd-ground 12s ease-in-out infinite alternate;
}
.scn-rebel-camp-hotspur-dismisses .tent-rcd {
  position: absolute; bottom: 25%; right: 10%; width: 35%; height: 50%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  box-shadow: -4px 0 12px rgba(0,0,0,0.3);
}
.scn-rebel-camp-hotspur-dismisses .hotspur-rcd {
  position: absolute; bottom: 22%; left: 35%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scd-hotspur 1.6s ease-in-out infinite alternate;
}
.scn-rebel-camp-hotspur-dismisses .soldier-rcd {
  position: absolute; bottom: 22%; left: 50%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scd-soldier 2.4s ease-in-out infinite alternate;
}
.scn-rebel-camp-hotspur-dismisses .sword-rcd {
  position: absolute; bottom: 35%; left: 32%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #9a9a8a 0%, #6a6a5a 100%);
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(154,154,138,0.5);
  transform: rotate(20deg);
  animation: scd-sword 1.8s ease-in-out infinite alternate;
}
@keyframes scd-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes scd-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes scd-hotspur { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes scd-soldier { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes scd-sword { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(30deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }

/* rebel-camp-messenger-letters */
.scn-rebel-camp-messenger-letters {
  background: linear-gradient(180deg, #4a4a3a 0%, #6a6a5a 30%, #5a5a4a 60%, #3a3a2a 100%), radial-gradient(ellipse at 70% 60%, #2a2a1a 0%, transparent 70%);
}
.scn-rebel-camp-messenger-letters .sky-rcm {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5a5a4a 0%, #7a7a6a 50%, #6a6a5a 100%);
  animation: scm-sky 30s ease-in-out infinite alternate;
}
.scn-rebel-camp-messenger-letters .ground-rcm {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  animation: scm-ground 18s ease-in-out infinite;
}
.scn-rebel-camp-messenger-letters .tent-rcm {
  position: absolute; bottom: 20%; left: 50%; width: 40%; height: 55%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  transform: translateX(-50%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-rebel-camp-messenger-letters .messenger-rcm {
  position: absolute; bottom: 25%; left: 20%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scm-messenger 4s ease-in-out infinite;
}
.scn-rebel-camp-messenger-letters .letters-rcm {
  position: absolute; bottom: 28%; left: 30%; width: 16px; height: 10px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: scm-letters 2s ease-in-out infinite alternate;
}
.scn-rebel-camp-messenger-letters .torch-rcm {
  position: absolute; bottom: 30%; left: 15%; width: 8px; height: 16px;
  background: radial-gradient(circle at 50% 0%, #ffa050 0%, #ff7030 40%, #cc4000 80%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 10px rgba(255,160,80,0.4);
  animation: scm-torch 1.5s ease-in-out infinite alternate;
}
@keyframes scm-sky { 0% { opacity:0.7; filter: brightness(0.9); } 50% { opacity:1; filter: brightness(1.1); } 100% { opacity:0.8; filter: brightness(1); } }
@keyframes scm-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes scm-messenger { 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(30px) translateY(0) rotate(0deg); } }
@keyframes scm-letters { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(5deg) scale(1.1); } 100% { transform: rotate(-3deg) scale(1); } }
@keyframes scm-torch { 0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 15px 8px rgba(255,160,80,0.3); } 50% { transform: scale(1.1) rotate(3deg); box-shadow: 0 0 30px 15px rgba(255,160,80,0.6); } 100% { transform: scale(1) rotate(-2deg); box-shadow: 0 0 20px 10px rgba(255,160,80,0.4); } }

/* rebel-camp-hotspur-life-short */
.scn-rebel-camp-hotspur-life-short {
  background: linear-gradient(180deg, #5a6a5a 0%, #7a8a7a 30%, #6a7a6a 60%, #4a5a4a 100%), radial-gradient(ellipse at 50% 100%, #3a4a3a 0%, transparent 70%);
}
.scn-rebel-camp-hotspur-life-short .sky-rcl {
  position: absolute; inset: 0 0 48% 0;
  background: linear-gradient(180deg, #7a8a7a 0%, #9aaa9a 40%, #8a9a8a 70%, #6a7a6a 100%);
  animation: scl-sky 22s ease-in-out infinite alternate;
}
.scn-rebel-camp-hotspur-life-short .ground-rcl {
  position: absolute; bottom: 0; left: 0; right: 0; height: 48%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  animation: scl-ground 14s ease-in-out infinite;
}
.scn-rebel-camp-hotspur-life-short .tent-rcl {
  position: absolute; bottom: 22%; left: 10%; width: 40%; height: 55%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
}
.scn-rebel-camp-hotspur-life-short .figure1-rcl {
  position: absolute; bottom: 20%; left: 35%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scl-figure1 3s ease-in-out infinite;
}
.scn-rebel-camp-hotspur-life-short .figure2-rcl {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scl-figure2 3.5s ease-in-out infinite alternate;
}
.scn-rebel-camp-hotspur-life-short .figure3-rcl {
  position: absolute; bottom: 20%; left: 62%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scl-figure3 4s ease-in-out infinite;
}
.scn-rebel-camp-hotspur-life-short .banner-rcl {
  position: absolute; bottom: 28%; left: 72%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(138,106,58,0.5);
  animation: scl-banner 5s ease-in-out infinite alternate;
}
@keyframes scl-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes scl-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes scl-figure1 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes scl-figure2 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes scl-figure3 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes scl-banner { 0% { transform: rotate(-3deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.1); } 100% { transform: rotate(-2deg) scaleY(1); } }

/* Scene 1: prince-apartment-falstaff-moon-men */
.scn-prince-apartment-falstaff-moon-men {
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 40%, #0e0e0e 100%), radial-gradient(ellipse at 80% 20%, #3a3a4a 0%, transparent 60%);
}
.scn-prince-apartment-falstaff-moon-men .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a3028 0%, #2a221a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
  animation: pafm-wall 20s ease-in-out infinite;
}
.scn-prince-apartment-falstaff-moon-men .window-frame {
  position: absolute; top: 12%; left: 60%; width: 120px; height: 160px;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 100%);
  border: 6px solid #2a1a0a;
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(0,0,0,0.8);
}
.scn-prince-apartment-falstaff-moon-men .moon {
  position: absolute; top: 14%; left: 62%; width: 36px; height: 36px;
  background: radial-gradient(circle at 40% 40%, #f0e8c8 0%, #d0c8a0 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(240,232,200,0.4);
  animation: pafm-moon 8s ease-in-out infinite alternate;
}
.scn-prince-apartment-falstaff-moon-men .star {
  position: absolute; width: 4px; height: 4px;
  background: #f0e8c8;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(240,232,200,0.3);
}
.scn-prince-apartment-falstaff-moon-men .star-1 { top: 16%; left: 66%; animation: pafm-twinkle 3s ease-in-out infinite; }
.scn-prince-apartment-falstaff-moon-men .star-2 { top: 22%; left: 72%; animation: pafm-twinkle 4.5s ease-in-out infinite 1s; }
.scn-prince-apartment-falstaff-moon-men .star-3 { top: 18%; left: 58%; animation: pafm-twinkle 2.5s ease-in-out infinite 0.5s; }
.scn-prince-apartment-falstaff-moon-men .figure {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 50%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pafm-figure 6s ease-in-out infinite;
}
.scn-prince-apartment-falstaff-moon-men .table {
  position: absolute; bottom: 25%; left: 22%; width: 80px; height: 10px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.8);
  animation: pafm-table 10s ease-in-out infinite alternate;
}
.scn-prince-apartment-falstaff-moon-men .tankard {
  position: absolute; bottom: 26%; left: 28%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 0 0 4px 4px;
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  box-shadow: 0 0 8px rgba(0,0,0,0.6);
  animation: pafm-tankard 4s ease-in-out infinite;
}
@keyframes pafm-wall { 0%,100% { opacity:0.9 } 50% { opacity:0.7 } }
@keyframes pafm-moon { 0% { transform: scale(1) translate(0,0) } 50% { transform: scale(1.05) translate(2px,-2px) } 100% { transform: scale(0.95) translate(-2px,2px) } }
@keyframes pafm-twinkle { 0%,100% { opacity:0.3; transform: scale(0.8) } 50% { opacity:1; transform: scale(1.2) } }
@keyframes pafm-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pafm-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pafm-tankard { 0%,100% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(2px,-1px) rotate(3deg) } }

/* Scene 2: prince-apartment-roundly */
.scn-prince-apartment-roundly {
  background: linear-gradient(90deg, #1e1e2a 0%, #2a2a3a 50%, #1e1e2a 100%), radial-gradient(ellipse at 50% 0%, #3a3a50 0%, transparent 70%);
}
.scn-prince-apartment-roundly .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  animation: paro-wall 15s ease-in-out infinite alternate;
}
.scn-prince-apartment-roundly .doorway {
  position: absolute; bottom: 20%; left: 35%; width: 100px; height: 180px;
  background: linear-gradient(90deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
}
.scn-prince-apartment-roundly .figure {
  position: absolute; bottom: 28%; left: 36%; width: 36px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: paro-figure 5s ease-in-out infinite;
}
.scn-prince-apartment-roundly .cloak {
  position: absolute; bottom: 28%; left: 32%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 0 80% 0 80% / 0 100% 0 100%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: paro-cloak 6s ease-in-out infinite alternate;
}
.scn-prince-apartment-roundly .lantern {
  position: absolute; bottom: 36%; left: 40%; width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #f0d090 0%, #b08040 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px #b08040;
  animation: paro-lantern 3s ease-in-out infinite alternate;
}
.scn-prince-apartment-roundly .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #000 0%, transparent 70%);
  filter: blur(4px);
  animation: paro-shadow 5s ease-in-out infinite;
}
.scn-prince-apartment-roundly .moonbeam {
  position: absolute; top: 5%; left: 38%; width: 60px; height: 20px;
  background: linear-gradient(180deg, rgba(200,200,200,0.15) 0%, transparent 100%);
  transform: rotate(30deg);
  filter: blur(8px);
  animation: paro-beam 12s ease-in-out infinite;
}
@keyframes paro-wall { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes paro-figure { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(5px) rotate(3deg) } 60% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes paro-cloak { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(5deg) scaleX(0.9) } 100% { transform: rotate(-3deg) scaleX(1.05) } }
@keyframes paro-lantern { 0% { box-shadow: 0 0 20px 6px #b08040; opacity:0.8 } 50% { box-shadow: 0 0 40px 15px #f0c060; opacity:1 } 100% { box-shadow: 0 0 25px 8px #b08040; opacity:0.9 } }
@keyframes paro-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } }
@keyframes paro-beam { 0% { opacity:0.3; transform: rotate(25deg) translateX(0) } 50% { opacity:0.6; transform: rotate(35deg) translateX(10px) } 100% { opacity:0.3; transform: rotate(25deg) translateX(0) } }

/* Scene 3: prince-apartment-ebb-flow */
.scn-prince-apartment-ebb-flow {
  background: linear-gradient(0deg, #1a2a3a 0%, #2a3a4a 50%, #1a2a3a 100%), radial-gradient(ellipse at 50% 100%, #3a4a5a 0%, transparent 60%);
}
.scn-prince-apartment-ebb-flow .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-prince-apartment-ebb-flow .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.4);
  animation: paef-wall 18s ease-in-out infinite alternate;
}
.scn-prince-apartment-ebb-flow .curtain {
  position: absolute; top: 0; width: 80px; height: 100%;
  background: linear-gradient(180deg, #5a4a4a 0%, #3a2a2a 100%);
  border-radius: 0 0 20% 20%;
  filter: blur(2px);
}
.scn-prince-apartment-ebb-flow .curtain-left {
  left: 10%; animation: paef-curtain-l 12s ease-in-out infinite;
}
.scn-prince-apartment-ebb-flow .curtain-right {
  right: 10%; animation: paef-curtain-r 12s ease-in-out infinite;
}
.scn-prince-apartment-ebb-flow .figure {
  position: absolute; bottom: 28%; left: 40%; width: 40px; height: 55px;
  background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 50%, #1a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: paef-figure 7s ease-in-out infinite;
}
.scn-prince-apartment-ebb-flow .pendulum {
  position: absolute; bottom: 40%; left: 50%; width: 6px; height: 100px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 2px;
  transform-origin: top center;
  animation: paef-pendulum 4s ease-in-out infinite;
}
.scn-prince-apartment-ebb-flow .wave-floor {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #3a5a5a 0%, transparent 70%);
  filter: blur(6px);
  animation: paef-wave 6s ease-in-out infinite alternate;
}
@keyframes paef-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes paef-curtain-l { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-8px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes paef-curtain-r { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(8px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes paef-figure { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(6px) translateY(-3px) rotate(1deg) } 50% { transform: translateX(0) translateY(-1px) rotate(0deg) } 75% { transform: translateX(-6px) translateY(-3px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) } }
@keyframes paef-pendulum { 0% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-10deg) } }
@keyframes paef-wave { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-5px) scaleY(1.3) } 100% { transform: translateY(0) scaleY(1) } }

/* Scene 4: prince-apartment-tavern-wench */
.scn-prince-apartment-tavern-wench {
  background: linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 40%, #1a0e0e 100%), radial-gradient(ellipse at 50% 10%, #4a3a3a 0%, transparent 50%);
}
.scn-prince-apartment-tavern-wench .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #3a2a2a 0%, #4a3a3a 30%, #3a2a2a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
  animation: patw-wall 10s ease-in-out infinite alternate;
}
.scn-prince-apartment-tavern-wench .barrel {
  position: absolute; bottom: 15%; left: 20%; width: 60px; height: 80px;
  background: linear-gradient(90deg, #6a4a3a 0%, #8a5a4a 50%, #6a4a3a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px rgba(0,0,0,0.8);
  animation: patw-barrel 8s ease-in-out infinite;
}
.scn-prince-apartment-tavern-wench .table {
  position: absolute; bottom: 20%; left: 40%; width: 100px; height: 12px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.9);
  animation: patw-table 12s ease-in-out infinite alternate;
}
.scn-prince-apartment-tavern-wench .tankard {
  position: absolute; bottom: 24%; left: 45%; width: 24px; height: 30px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 0 0 6px 6px;
  clip-path: polygon(15% 0%, 85% 0%, 100% 100%, 0% 100%);
  box-shadow: 0 0 8px rgba(0,0,0,0.6);
  animation: patw-tankard 4s ease-in-out infinite;
}
.scn-prince-apartment-tavern-wench .wench {
  position: absolute; bottom: 24%; left: 58%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: patw-wench 5s ease-in-out infinite;
}
.scn-prince-apartment-tavern-wench .apron {
  position: absolute; bottom: 24%; left: 56%; width: 30px; height: 35px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  clip-path: polygon(10% 0%, 90% 0%, 85% 100%, 15% 100%);
  animation: patw-apron 6s ease-in-out infinite;
}
.scn-prince-apartment-tavern-wench .candle {
  position: absolute; bottom: 30%; left: 48%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #f0e0c0 0%, #e0c0a0 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(240,224,192,0.3);
}
.scn-prince-apartment-tavern-wench .flame {
  position: absolute; bottom: 56%; left: 49%; width: 8px; height: 12px;
  background: radial-gradient(circle at 50% 80%, #ffd080 0%, #ffa050 60%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  filter: blur(2px);
  animation: patw-flame 1.5s ease-in-out infinite alternate;
}
@keyframes patw-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes patw-barrel { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes patw-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes patw-tankard { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(4px,-2px) rotate(5deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes patw-wench { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(3px) rotate(2deg) } 70% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes patw-apron { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes patw-flame { 0% { transform: scaleY(1) translateY(0); opacity:0.9 } 50% { transform: scaleY(1.3) translateY(-3px); opacity:1 } 100% { transform: scaleY(0.9) translateY(1px); opacity:0.8 } }

/* Scene 1: london-palace-hotspur-smells-plot */
.scn-london-palace-hotspur-smells-plot {
  background: linear-gradient(180deg, #fce9c8 0%, #e8d4a8 50%, #d4b886 100%),
              radial-gradient(ellipse at 20% 80%, #f0d8a0 0%, transparent 60%);
}
.scn-london-palace-hotspur-smells-plot .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #a07850 0%, #7a5c3a 100%); border-radius: 10% 10% 0 0; }
.scn-london-palace-hotspur-smells-plot .wall-left { position:absolute; top:0; left:0; width:45%; height:75%; background: linear-gradient(90deg, #d4b07a 0%, #c8a06a 100%); border-right: 4px solid #b89060; }
.scn-london-palace-hotspur-smells-plot .wall-right { position:absolute; top:0; right:0; width:45%; height:75%; background: linear-gradient(270deg, #d4b07a 0%, #c8a06a 100%); border-left: 4px solid #b89060; }
.scn-london-palace-hotspur-smells-plot .window { position:absolute; top:12%; left:35%; width:30%; height:40%; background: linear-gradient(180deg, #fff8e0 0%, #ffecc0 100%); border: 6px solid #b89060; border-radius: 4px; box-shadow: inset 0 0 40px rgba(255,235,200,0.6); }
.scn-london-palace-hotspur-smells-plot .table { position:absolute; bottom:20%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #8a6a3a 0%, #6a4e2a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.2); }
.scn-london-palace-hotspur-smells-plot .scroll { position:absolute; bottom:24%; left:40%; width:18%; height:4%; background: #f0e0c0; border-radius: 2px; box-shadow: 1px 1px 4px rgba(0,0,0,0.2); }
.scn-london-palace-hotspur-smells-plot .goblet { position:absolute; bottom:22%; left:55%; width:6%; height:10%; background: linear-gradient(180deg, #c8a050 0%, #a07030 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
.scn-london-palace-hotspur-smells-plot .candle { position:absolute; bottom:22%; left:30%; width:2%; height:14%; background: linear-gradient(180deg, #f0e8c0 0%, #d0b880 100%); border-radius: 4px; box-shadow: 0 0 8px rgba(255,200,100,0.3); }
.scn-london-palace-hotspur-smells-plot .flame { position:absolute; bottom:35%; left:30%; width:3%; height:6%; background: radial-gradient(circle, #ffe080 0%, #ffa030 60%, transparent 80%); border-radius: 50%; filter: blur(2px); animation: hps-flame 1.6s ease-in-out infinite alternate; }
@keyframes hps-flame {
  0% { transform: scale(1, 1) translateY(0); opacity: 1; }
  50% { transform: scale(1.1, 1.3) translateY(-2px); opacity: 0.9; }
  100% { transform: scale(0.9, 0.95) translateY(1px); opacity: 0.95; }
}

/* Scene 2: london-palace-worcester-speed-reason */
.scn-london-palace-worcester-speed-reason {
  background: linear-gradient(180deg, #f0e0c8 0%, #d4c4a8 50%, #b8a488 100%),
              radial-gradient(ellipse at 50% 60%, rgba(255,220,170,0.4) 0%, transparent 70%);
}
.scn-london-palace-worcester-speed-reason .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:30%; background: repeating-conic-gradient(#b09070 0% 25%, transparent 0% 50%) 0 0 / 30px 30px; opacity: 0.6; }
.scn-london-palace-worcester-speed-reason .column { position:absolute; top:10%; left:15%; width:6%; height:70%; background: linear-gradient(90deg, #c8b090 0%, #e0d0b8 30%, #c8b090 100%); border-radius: 8px; box-shadow: 4px 0 12px rgba(0,0,0,0.2); }
.scn-london-palace-worcester-speed-reason .window-slit { position:absolute; top:8%; right:20%; width:18%; height:50%; background: linear-gradient(180deg, #fff8e0 0%, #ffe0a0 100%); border: 4px solid #88705a; box-shadow: inset 0 0 30px rgba(255,200,100,0.4); }
.scn-london-palace-worcester-speed-reason .figure-worcester { position:absolute; bottom:20%; left:40%; width:12%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wsp-figure 2.5s ease-in-out infinite alternate; }
.scn-london-palace-worcester-speed-reason .table-map { position:absolute; bottom:18%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #8a6a40 0%, #6a4e2a 100%); border-radius: 6px; box-shadow: 0 6px 10px rgba(0,0,0,0.3); }
.scn-london-palace-worcester-speed-reason .candle-quick { position:absolute; bottom:25%; left:35%; width:2%; height:12%; background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 100%); border-radius: 2px; animation: wsp-candle 1.5s ease-in-out infinite alternate; }
.scn-london-palace-worcester-speed-reason .shadow-sharp { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%); pointer-events: none; animation: wsp-shadow 3s ease-in-out infinite alternate; }
@keyframes wsp-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(2deg); }
  100% { transform: translateX(-4px) rotate(-1deg); }
}
@keyframes wsp-candle {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.2); opacity: 1; }
  100% { transform: scaleY(0.8); opacity: 0.8; }
}
@keyframes wsp-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.4; }
}

/* Scene 3: london-palace-hotspur-revenged */
.scn-london-palace-hotspur-revenged {
  background: linear-gradient(180deg, #2a1e14 0%, #1f150e 50%, #140c06 100%),
              radial-gradient(ellipse at 30% 70%, #4a3525 0%, transparent 60%);
}
.scn-london-palace-hotspur-revenged .floor-dark { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 8% 8% 0 0; }
.scn-london-palace-hotspur-revenged .wall-dark { position:absolute; top:0; left:0; right:0; height:80%; background: linear-gradient(180deg, #362415 0%, #1f1208 100%); }
.scn-london-palace-hotspur-revenged .window-bright { position:absolute; top:10%; right:15%; width:25%; height:40%; background: linear-gradient(180deg, #fff8e0 0%, #ffe0a0 100%); border: 6px solid #3a2818; box-shadow: 0 0 50px rgba(255,220,100,0.5); animation: hrv-window 6s ease-in-out infinite alternate; }
.scn-london-palace-hotspur-revenged .figure-silhouette { position:absolute; bottom:15%; left:20%; width:15%; height:40%; background: #0a0602; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hrv-figure 5s ease-in-out infinite alternate; }
.scn-london-palace-hotspur-revenged .table-low { position:absolute; bottom:12%; left:35%; width:30%; height:6%; background: linear-gradient(180deg, #3a2210 0%, #241208 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-london-palace-hotspur-revenged .candle-dim { position:absolute; bottom:15%; left:45%; width:2%; height:10%; background: linear-gradient(180deg, #4a3820 0%, #2a1a0a 100%); border-radius: 2px; }
.scn-london-palace-hotspur-revenged .scroll-rolled { position:absolute; bottom:14%; left:40%; width:12%; height:3%; background: #4a3820; border-radius: 2px; box-shadow: 1px 1px 3px rgba(0,0,0,0.4); }
.scn-london-palace-hotspur-revenged .shadow-heavy { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%); pointer-events: none; animation: hrv-shadow 8s ease-in-out infinite alternate; }
@keyframes hrv-window {
  0% { opacity: 0.8; box-shadow: 0 0 30px rgba(255,220,100,0.3); }
  50% { opacity: 1; box-shadow: 0 0 60px rgba(255,220,100,0.7); }
  100% { opacity: 0.7; box-shadow: 0 0 20px rgba(255,220,100,0.2); }
}
@keyframes hrv-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(10px) rotate(3deg); }
  100% { transform: translateX(-5px) rotate(-2deg); }
}
@keyframes hrv-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.5; }
}

/* Scene 4: london-palace-northumberland-thrive */
.scn-london-palace-northumberland-thrive {
  background: linear-gradient(180deg, #2a1e12 0%, #3a2818 50%, #4a3420 100%),
              radial-gradient(ellipse at 50% 80%, #8a5a30 0%, transparent 60%);
}
.scn-london-palace-northumberland-thrive .floor-stable { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius: 6% 6% 0 0; }
.scn-london-palace-northumberland-thrive .wall-rough { position:absolute; top:0; left:0; right:0; height:80%; background: linear-gradient(180deg, #6a4828 0%, #4a3018 100%); }
.scn-london-palace-northumberland-thrive .fireplace { position:absolute; bottom:15%; left:30%; width:30%; height:30%; background: linear-gradient(180deg, #3a2210 0%, #1a0e06 100%); border-radius: 20% 20% 0 0; border: 4px solid #2a1608; }
.scn-london-palace-northumberland-thrive .fire { position:absolute; bottom:20%; left:38%; width:14%; height:12%; background: radial-gradient(ellipse at 50% 100%, #ffa030 0%, #ff6010 50%, transparent 80%); filter: blur(3px); animation: nth-fire 2.4s ease-in-out infinite alternate; }
.scn-london-palace-northumberland-thrive .lantern-hanging { position:absolute; top:20%; right:20%; width:6%; height:8%; background: radial-gradient(circle, #ffe080 0%, #c08030 80%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 30px 10px rgba(255,200,100,0.6); animation: nth-lantern 3s ease-in-out infinite alternate; }
.scn-london-palace-northumberland-thrive .figure-carrier { position:absolute; bottom:12%; left:45%; width:10%; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #0e0804 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nth-figure 4s ease-in-out infinite; }
.scn-london-palace-northumberland-thrive .stool { position:absolute; bottom:10%; left:55%; width:8%; height:6%; background: linear-gradient(180deg, #6a4828 0%, #4a3018 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); }
@keyframes nth-fire {
  0% { transform: scale(1) translateY(0); opacity: 0.8; }
  50% { transform: scale(1.15, 1.2) translateY(-3px); opacity: 1; }
  100% { transform: scale(0.9) translateY(1px); opacity: 0.7; }
}
@keyframes nth-lantern {
  0% { transform: rotate(-5deg); opacity: 0.9; box-shadow: 0 0 20px 8px rgba(255,200,100,0.5); }
  50% { transform: rotate(5deg); opacity: 1; box-shadow: 0 0 40px 15px rgba(255,200,100,0.7); }
  100% { transform: rotate(-3deg); opacity: 0.95; box-shadow: 0 0 25px 10px rgba(255,200,100,0.6); }
}
@keyframes nth-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(1deg); }
  50% { transform: translateX(10px) rotate(0deg); }
  75% { transform: translateX(15px) rotate(-1deg); }
  100% { transform: translateX(20px) rotate(0deg); }
}

/* field-hotspur-responds */
.scn-field-hotspur-responds {
  background: linear-gradient(180deg, #f9e6b5 0%, #dbb87a 30%, #b88a4a 60%, #7a5c2e 100%),
              radial-gradient(ellipse at 30% 20%, #fff7d4 0%, transparent 60%);
}
.scn-field-hotspur-responds .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4f1 40%, transparent 100%);
  animation: hs1-sky 12s ease-in-out infinite alternate;
}
.scn-field-hotspur-responds .sun {
  position: absolute; top: 8%; left: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff9c4 0%, #f9e076 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(249,224,118,0.6);
  animation: hs1-sun 8s ease-in-out infinite alternate;
}
.scn-field-hotspur-responds .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #6b8e23 0%, #556b2f 60%, #3e5020 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.3);
}
.scn-field-hotspur-responds .figure {
  position: absolute; bottom: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-field-hotspur-responds .figure-left {
  left: 30%; animation: hs1-fig-left 6s ease-in-out infinite;
}
.scn-field-hotspur-responds .figure-right {
  left: 55%; transform: scaleX(-1); animation: hs1-fig-right 5s ease-in-out infinite;
}
.scn-field-hotspur-responds .sword {
  position: absolute; bottom: 50%; width: 6px; height: 45px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 2px;
  transform-origin: bottom center;
}
.scn-field-hotspur-responds .left-sword {
  left: 33%; transform: rotate(-30deg); animation: hs1-sword-left 6s ease-in-out infinite;
}
.scn-field-hotspur-responds .right-sword {
  left: 58%; transform: rotate(20deg) scaleX(-1); animation: hs1-sword-right 5s ease-in-out infinite;
}
.scn-field-hotspur-responds .dust {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,180,140,0.5) 0%, transparent 100%);
  filter: blur(6px);
  animation: hs1-dust 10s ease-in-out infinite;
}
.scn-field-hotspur-responds .shadow-line {
  position: absolute; bottom: 32%; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, transparent 20%, rgba(0,0,0,0.2) 50%, transparent 80%);
  animation: hs1-shadow 4s ease-in-out infinite alternate;
}
@keyframes hs1-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hs1-sun { 0% { transform: translateY(0); box-shadow: 0 0 60px 20px #f9e076; } 50% { transform: translateY(-5px); box-shadow: 0 0 100px 30px #f9e076; } 100% { transform: translateY(0); box-shadow: 0 0 80px 25px #f9e076; } }
@keyframes hs1-fig-left { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes hs1-fig-right { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-6px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes hs1-sword-left { 0% { transform: rotate(-25deg); } 50% { transform: rotate(-35deg); } 100% { transform: rotate(-25deg); } }
@keyframes hs1-sword-right { 0% { transform: rotate(15deg) scaleX(-1); } 50% { transform: rotate(25deg) scaleX(-1); } 100% { transform: rotate(15deg) scaleX(-1); } }
@keyframes hs1-dust { 0% { opacity: 0.3; transform: translateY(0) scale(1); } 50% { opacity: 0.6; transform: translateY(-10px) scale(1.2); } 100% { opacity: 0.3; transform: translateY(0) scale(1); } }
@keyframes hs1-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 100% { opacity: 0.6; transform: scaleX(1.05); } }

/* field-hotspur-brook */
.scn-field-hotspur-brook {
  background: linear-gradient(180deg, #c8a882 0%, #a67c52 30%, #7a5c3a 60%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 100%, #b89a6a 0%, transparent 60%);
}
.scn-field-hotspur-brook .sky-brook {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #9eb8c5 0%, #c0d6e4 40%, transparent 100%);
  animation: hs2-sky 10s ease-in-out infinite alternate;
}
.scn-field-hotspur-brook .ground-brook {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5e7a3c 0%, #3a5020 60%, #1a2a10 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-field-hotspur-brook .figure {
  position: absolute; bottom: 25%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-field-hotspur-brook .clash-left {
  left: 30%; animation: hs2-clashL 3s ease-in-out infinite;
}
.scn-field-hotspur-brook .clash-right {
  left: 55%; transform: scaleX(-1); animation: hs2-clashR 3.5s ease-in-out infinite;
}
.scn-field-hotspur-brook .spark {
  position: absolute; bottom: 45%; left: 45%; width: 10px; height: 10px;
  background: radial-gradient(circle, #fff9c4 0%, #f0d060 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(240,208,96,0.5);
  animation: hs2-spark 1.5s ease-in-out infinite;
}
.scn-field-hotspur-brook .blood {
  position: absolute; bottom: 20%; left: 40%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #a0461a 0%, #6a2a0a 100%);
  border-radius: 0 0 50% 50%;
  animation: hs2-blood 4s ease-in-out infinite;
}
.scn-field-hotspur-brook .falstaff {
  position: absolute; bottom: 30%; left: 65%; width: 30px; height: 45px;
  background: radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30%;
  animation: hs2-falstaff 6s linear infinite;
}
@keyframes hs2-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hs2-clashL { 0% { transform: translateX(0) rotate(-5deg); } 25% { transform: translateX(-10px) rotate(5deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(10px) rotate(-5deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes hs2-clashR { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(12px) rotate(-4deg); } 60% { transform: translateX(-8px) rotate(4deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hs2-spark { 0% { opacity: 0; transform: scale(0); } 25% { opacity: 1; transform: scale(1.5); } 50% { opacity: 0.5; transform: scale(1); } 100% { opacity: 0; transform: scale(0.3); } }
@keyframes hs2-blood { 0% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(1.3); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.8; } }
@keyframes hs2-falstaff { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-15px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0); } }

/* field-hotspur-dying */
.scn-field-hotspur-dying {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 30%, #0a0a1a 60%, #000 100%),
              radial-gradient(ellipse at 30% 20%, #4a3a2a 0%, transparent 60%);
}
.scn-field-hotspur-dying .dying-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, transparent 100%);
  animation: hs3-sky 15s ease-in-out infinite alternate;
}
.scn-field-hotspur-dying .dying-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 80%, #000 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 30px 50px rgba(0,0,0,0.8);
}
.scn-field-hotspur-dying .figure-helmut {
  position: absolute; bottom: 30%; left: 35%; width: 28px; 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: hs3-helmut 4s ease-in-out infinite;
}
.scn-field-hotspur-dying .figure-kneeling {
  position: absolute; bottom: 20%; left: 45%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: hs3-kneel 5s ease-in-out infinite;
}
.scn-field-hotspur-dying .sword-stuck {
  position: absolute; bottom: 28%; left: 48%; width: 5px; height: 40px;
  background: linear-gradient(180deg, #808080 0%, #404040 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  animation: hs3-sword 6s ease-in-out infinite;
}
.scn-field-hotspur-dying .blood-pool {
  position: absolute; bottom: 15%; left: 40%; width: 30px; height: 15px;
  background: radial-gradient(ellipse, #702243 0%, #3a101a 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: hs3-blood 8s ease-in-out infinite;
}
.scn-field-hotspur-dying .ray-light {
  position: absolute; top: 10%; left: 30%; width: 120px; height: 100%;
  background: linear-gradient(180deg, rgba(255,200,100,0.3) 0%, transparent 100%);
  transform: rotate(20deg);
  filter: blur(10px);
  animation: hs3-ray 10s ease-in-out infinite alternate;
}
@keyframes hs3-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }
@keyframes hs3-helmut { 0% { transform: rotate(0) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes hs3-kneel { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(5px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes hs3-sword { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(10deg) scaleY(0.9); } 100% { transform: rotate(15deg) scaleY(1); } }
@keyframes hs3-blood { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(1); opacity: 0.7; } }
@keyframes hs3-ray { 0% { opacity: 0.2; transform: rotate(20deg) scaleY(1); } 100% { opacity: 0.5; transform: rotate(25deg) scaleY(1.1); } }

/* field-hotspur-dies */
.scn-field-hotspur-dies {
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 30%, #a0784a 60%, #704a2a 100%),
              radial-gradient(ellipse at 50% 30%, #ffd700 0%, transparent 70%);
}
.scn-field-hotspur-dies .warm-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffcc66 0%, #ffb347 40%, transparent 100%);
  animation: hs4-sky 14s ease-in-out infinite alternate;
}
.scn-field-hotspur-dies .warm-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #8b6914 0%, #5c4a1e 60%, #3a2a10 100%);
  border-radius: 40% 60% 0 0 / 50% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-field-hotspur-dies .figure-stand {
  position: absolute; bottom: 25%; left: 50%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: hs4-stand 5s ease-in-out infinite;
}
.scn-field-hotspur-dies .figure-fallen {
  position: absolute; bottom: 15%; left: 38%; width: 28px; height: 20px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 0 0 50% 50%;
  transform: rotate(-10deg);
  animation: hs4-fallen 7s ease-in-out infinite;
}
.scn-field-hotspur-dies .crown {
  position: absolute; bottom: 32%; left: 52%; width: 12px; height: 10px;
  background: linear-gradient(180deg, #daa520 0%, #b8860b 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: hs4-crown 4s ease-in-out infinite alternate;
}
.scn-field-hotspur-dies .shadow-overlay {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  pointer-events: none;
  animation: hs4-shadow 8s ease-in-out infinite alternate;
}
.scn-field-hotspur-dies .glow-ray {
  position: absolute; top: 5%; left: 45%; width: 160px; height: 120%;
  background: linear-gradient(180deg, rgba(255,215,0,0.25) 0%, transparent 100%);
  transform: rotate(-15deg);
  filter: blur(20px);
  animation: hs4-ray 12s ease-in-out infinite alternate;
}
@keyframes hs4-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hs4-stand { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-4px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes hs4-fallen { 0% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(-5deg) scaleX(1.05); } 100% { transform: rotate(-10deg) scaleX(1); } }
@keyframes hs4-crown { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes hs4-shadow { 0% { opacity: 0.4; } 100% { opacity: 0.7; } }
@keyframes hs4-ray { 0% { opacity: 0.3; transform: rotate(-15deg) scaleY(1); } 100% { opacity: 0.6; transform: rotate(-10deg) scaleY(1.1); } }

.scn-boars-head-tavern-not-call-coward {
  background: radial-gradient(ellipse at 50% 60%, #4a2e1a 0%, #1a0e05 80%), linear-gradient(180deg, #2c1a0a 0%, #140a03 100%);
}
.scn-boars-head-tavern-not-call-coward .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2212 0%, #1a0e05 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.6);
}
.scn-boars-head-tavern-not-call-coward .table {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 20%; background: linear-gradient(180deg, #6b4226 0%, #4a2e1a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,.5);
}
.scn-boars-head-tavern-not-call-coward .lantern-glow {
  position: absolute; top: 12%; left: 65%; width: 40px; height: 40px; background: radial-gradient(circle, #f0a050 0%, #803010 70%); border-radius: 50%; box-shadow: 0 0 60px 30px #c06020, 0 0 120px 60px rgba(192,96,32,.4); animation: bnt1-glow 2.5s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-not-call-coward .figure-point {
  position: absolute; bottom: 18%; left: 30%; width: 24px; height: 60px; background: linear-gradient(180deg, #5a3a1a 0%, #361c0c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: bnt1-point 3s ease-in-out infinite;
}
.scn-boars-head-tavern-not-call-coward .figure-shadow {
  position: absolute; bottom: 18%; right: 20%; width: 22px; height: 55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity: .6; animation: bnt1-shadow 4s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-not-call-coward .tankard {
  position: absolute; bottom: 14%; left: 50%; width: 18px; height: 22px; background: linear-gradient(90deg, #8b6b3a 0%, #5a3a1a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: bnt1-tankard 5s ease-in-out infinite;
}
.scn-boars-head-tavern-not-call-coward .stool {
  position: absolute; bottom: 5%; left: 45%; width: 40px; height: 10px; background: linear-gradient(180deg, #704020 0%, #502810 100%); border-radius: 20% 20% 0 0; transform: scale(1,.7); animation: bnt1-stool 6s ease-in-out infinite;
}
@keyframes bnt1-glow { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); box-shadow: 0 0 80px 40px #d07030; } 100% { opacity: .8; transform: scale(.98); } }
@keyframes bnt1-point { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(8deg); } 50% { transform: translateX(-2px) rotate(-5deg); } 75% { transform: translateX(3px) rotate(4deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes bnt1-shadow { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes bnt1-tankard { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(2deg); } }
@keyframes bnt1-stool { 0%,100% { transform: scale(1,.7) translateX(0); } 50% { transform: scale(1,.7) translateX(3px); } }

.scn-boars-head-tavern-lips-wiped {
  background: radial-gradient(ellipse at 40% 55%, #4a2e1a 0%, #1a0e05 80%), linear-gradient(180deg, #2c1a0a 0%, #140a03 100%);
}
.scn-boars-head-tavern-lips-wiped .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2212 0%, #1a0e05 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.6);
}
.scn-boars-head-tavern-lips-wiped .table {
  position: absolute; bottom: 5%; left: 12%; width: 76%; height: 22%; background: linear-gradient(180deg, #6b4226 0%, #4a2e1a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,.5);
}
.scn-boars-head-tavern-lips-wiped .lantern-glow {
  position: absolute; top: 8%; left: 72%; width: 40px; height: 40px; background: radial-gradient(circle, #f0a050 0%, #803010 70%); border-radius: 50%; box-shadow: 0 0 60px 30px #c06020, 0 0 120px 60px rgba(192,96,32,.4); animation: bnt2-glow 2.8s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-lips-wiped .figure-wipe {
  position: absolute; bottom: 16%; left: 32%; width: 26px; height: 58px; background: linear-gradient(180deg, #5a3a1a 0%, #361c0c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 50% 80%; animation: bnt2-wipe 3.5s ease-in-out infinite;
}
.scn-boars-head-tavern-lips-wiped .figure-onlooker {
  position: absolute; bottom: 16%; right: 22%; width: 22px; height: 52px; background: linear-gradient(180deg, #4a2e1a 0%, #2a1608 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity: .8; animation: bnt2-onlooker 4.2s ease-in-out infinite;
}
.scn-boars-head-tavern-lips-wiped .tankard-a {
  position: absolute; bottom: 12%; left: 55%; width: 18px; height: 20px; background: linear-gradient(90deg, #8b6b3a 0%, #5a3a1a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: bnt2-tankard 5s ease-in-out infinite;
}
.scn-boars-head-tavern-lips-wiped .tankard-b {
  position: absolute; bottom: 14%; left: 70%; width: 16px; height: 18px; background: linear-gradient(90deg, #7a5b2a 0%, #4a2e1a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: bnt2-tankard 5.5s ease-in-out infinite reverse;
}
.scn-boars-head-tavern-lips-wiped .bench {
  position: absolute; bottom: 5%; left: 25%; width: 100px; height: 8px; background: linear-gradient(180deg, #5a3a1a 0%, #3a220e 100%); border-radius: 10% 10% 0 0; transform: scale(1,.5); animation: bnt2-bench 7s ease-in-out infinite alternate;
}
@keyframes bnt2-glow { 0% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.08); box-shadow: 0 0 80px 40px #d07030; } 100% { opacity: .75; transform: scale(.95); } }
@keyframes bnt2-wipe { 0% { transform: rotate(-3deg) translateY(0); } 25% { transform: rotate(10deg) translateY(-3px); } 50% { transform: rotate(-5deg) translateY(-1px); } 75% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes bnt2-onlooker { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg) translateX(2px); } 100% { transform: rotate(-1deg) translateX(-1px); } }
@keyframes bnt2-tankard { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-1px) rotate(3deg); } }
@keyframes bnt2-bench { 0% { transform: scale(1,.5) translateX(0); } 50% { transform: scale(1,.5) translateX(4px); } 100% { transform: scale(1,.5) translateX(-2px); } }

.scn-boars-head-tavern-hundred-man {
  background: radial-gradient(ellipse at 55% 60%, #4a2e1a 0%, #1a0e05 80%), linear-gradient(180deg, #2c1a0a 0%, #140a03 100%);
}
.scn-boars-head-tavern-hundred-man .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2212 0%, #1a0e05 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.6);
}
.scn-boars-head-tavern-hundred-man .table {
  position: absolute; bottom: 5%; left: 8%; width: 84%; height: 18%; background: linear-gradient(180deg, #6b4226 0%, #4a2e1a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,.5);
}
.scn-boars-head-tavern-hundred-man .lantern-glow {
  position: absolute; top: 14%; left: 60%; width: 40px; height: 40px; background: radial-gradient(circle, #f0a050 0%, #803010 70%); border-radius: 50%; box-shadow: 0 0 60px 30px #c06020, 0 0 120px 60px rgba(192,96,32,.4); animation: bnt3-glow 2.2s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-hundred-man .figure-gesture {
  position: absolute; bottom: 18%; left: 28%; width: 24px; height: 62px; background: linear-gradient(180deg, #5a3a1a 0%, #361c0c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bnt3-gesture 2.8s ease-in-out infinite;
}
.scn-boars-head-tavern-hundred-man .figure-skeptic {
  position: absolute; bottom: 18%; right: 18%; width: 22px; height: 54px; background: linear-gradient(180deg, #4a2e1a 0%, #2a1608 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity: .9; animation: bnt3-skeptic 3.6s ease-in-out infinite;
}
.scn-boars-head-tavern-hundred-man .tankard {
  position: absolute; bottom: 12%; left: 48%; width: 20px; height: 24px; background: linear-gradient(90deg, #8b6b3a 0%, #5a3a1a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: bnt3-tankard 4s ease-in-out infinite;
}
.scn-boars-head-tavern-hundred-man .sword {
  position: absolute; bottom: 22%; left: 44%; width: 4px; height: 50px; background: linear-gradient(180deg, #a08050 0%, #705030 100%); border-radius: 2px; transform-origin: bottom left; box-shadow: 1px 0 3px rgba(0,0,0,.5); animation: bnt3-sword 3s ease-in-out infinite;
}
.scn-boars-head-tavern-hundred-man .chair {
  position: absolute; bottom: 5%; right: 30%; width: 30px; height: 12px; background: linear-gradient(180deg, #4a2e1a 0%, #2a1608 100%); border-radius: 10% 10% 0 0; transform: scale(1,.6); animation: bnt3-chair 6.5s ease-in-out infinite alternate;
}
@keyframes bnt3-glow { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); box-shadow: 0 0 90px 45px #d07030; } 100% { opacity: .8; transform: scale(.97); } }
@keyframes bnt3-gesture { 0% { transform: rotate(0deg) translateY(0); } 20% { transform: rotate(-20deg) translateY(-2px); } 40% { transform: rotate(15deg) translateY(-4px); } 60% { transform: rotate(-10deg) translateY(-1px); } 80% { transform: rotate(10deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes bnt3-skeptic { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg) translateX(3px); } 100% { transform: rotate(-2deg) translateX(-2px); } }
@keyframes bnt3-tankard { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(3deg); } }
@keyframes bnt3-sword { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-8deg); } 50% { transform: translateX(-2px) rotate(5deg); } 75% { transform: translateX(4px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bnt3-chair { 0% { transform: scale(1,.6) translateX(0); } 50% { transform: scale(1,.6) translateX(5px); } 100% { transform: scale(1,.6) translateX(-3px); } }

.scn-boars-head-tavern-fight-miracle {
  background: radial-gradient(ellipse at 45% 55%, #4a2e1a 0%, #1a0e05 80%), linear-gradient(180deg, #2c1a0a 0%, #140a03 100%);
}
.scn-boars-head-tavern-fight-miracle .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2212 0%, #1a0e05 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.6);
}
.scn-boars-head-tavern-fight-miracle .table {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 20%; background: linear-gradient(180deg, #6b4226 0%, #4a2e1a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,.5);
}
.scn-boars-head-tavern-fight-miracle .lantern-glow {
  position: absolute; top: 10%; left: 70%; width: 40px; height: 40px; background: radial-gradient(circle, #f0a050 0%, #803010 70%); border-radius: 50%; box-shadow: 0 0 60px 30px #c06020, 0 0 120px 60px rgba(192,96,32,.4); animation: bnt4-glow 2.6s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-fight-miracle .figure-teller {
  position: absolute; bottom: 16%; left: 28%; width: 24px; height: 60px; background: linear-gradient(180deg, #5a3a1a 0%, #361c0c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: bnt4-tell 3.2s ease-in-out infinite;
}
.scn-boars-head-tavern-fight-miracle .figure-listener {
  position: absolute; bottom: 16%; right: 20%; width: 22px; height: 54px; background: linear-gradient(180deg, #4a2e1a 0%, #2a1608 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity: .85; animation: bnt4-listen 4s ease-in-out infinite;
}
.scn-boars-head-tavern-fight-miracle .tankard {
  position: absolute; bottom: 12%; left: 50%; width: 18px; height: 22px; background: linear-gradient(90deg, #8b6b3a 0%, #5a3a1a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: bnt4-tankard 5s ease-in-out infinite;
}
.scn-boars-head-tavern-fight-miracle .stool {
  position: absolute; bottom: 5%; left: 42%; width: 36px; height: 10px; background: linear-gradient(180deg, #704020 0%, #502810 100%); border-radius: 20% 20% 0 0; transform: scale(1,.7); animation: bnt4-stool 6s ease-in-out infinite alternate;
}
@keyframes bnt4-glow { 0% { opacity: .65; transform: scale(1); } 50% { opacity: 1; transform: scale(1.06); box-shadow: 0 0 70px 35px #d07030; } 100% { opacity: .75; transform: scale(.96); } }
@keyframes bnt4-tell { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(15deg) translateY(-3px); } 60% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes bnt4-listen { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg) translateX(2px); } 100% { transform: rotate(-1deg) translateX(-1px); } }
@keyframes bnt4-tankard { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(2deg); } }
@keyframes bnt4-stool { 0% { transform: scale(1,.7) translateX(0); } 50% { transform: scale(1,.7) translateX(4px); } 100% { transform: scale(1,.7) translateX(-2px); } }

/* boars-head-tavern-harlotry-players */
.scn-boars-head-tavern-harlotry-players {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #1a0e05 40%, #0d0602 100%),
    radial-gradient(ellipse at 50% 60%, #4a2a1a 0%, transparent 70%);
  overflow: hidden;
}
.scn-boars-head-tavern-harlotry-players .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 50%, #3a2a1a 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
}
.scn-boars-head-tavern-harlotry-players .bg-hearth {
  position: absolute; bottom: 20%; left: 10%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #a0461a 0%, #4a2a1a 70%, transparent 100%);
  border-radius: 50% 50% 0 0;
  animation: bht1-hearth 8s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-harlotry-players .stage {
  position: absolute; bottom: 15%; left: 30%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-boars-head-tavern-harlotry-players .player {
  position: absolute; bottom: 25%; left: 50%; width: 28px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: bht1-player 2s ease-in-out infinite;
}
.scn-boars-head-tavern-harlotry-players .player-hat {
  position: absolute; bottom: 60%; left: 50%; width: 36px; height: 14px;
  transform: translateX(-50%) rotate(-10deg);
  background: #1a0e05;
  border-radius: 40% 40% 20% 20%;
  animation: bht1-hat 2s ease-in-out infinite;
}
.scn-boars-head-tavern-harlotry-players .mug {
  position: absolute; bottom: 30%; left: 62%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(15deg);
  animation: bht1-mug 3s ease-in-out infinite;
}
.scn-boars-head-tavern-harlotry-players .lantern {
  position: absolute; bottom: 55%; left: 20%; width: 8px; height: 12px;
  background: #c08040;
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.4);
  animation: bht1-lantern 4s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-harlotry-players .smoke-a {
  position: absolute; bottom: 50%; left: 15%; width: 40px; height: 30px;
  background: radial-gradient(ellipse, rgba(60,40,20,0.4) 0%, transparent 70%);
  filter: blur(6px);
  border-radius: 50%;
  animation: bht1-smoke 12s linear infinite;
}
.scn-boars-head-tavern-harlotry-players .smoke-b {
  position: absolute; bottom: 48%; left: 22%; width: 30px; height: 24px;
  background: radial-gradient(ellipse, rgba(60,40,20,0.3) 0%, transparent 70%);
  filter: blur(4px);
  border-radius: 50%;
  animation: bht1-smoke 15s linear infinite reverse;
}
@keyframes bht1-hearth { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.1); } 100% { opacity: 0.7; transform: scaleY(1); } }
@keyframes bht1-player { 0%,100% { transform: translateX(-50%) rotate(0deg) translateY(0); } 25% { transform: translateX(-48%) rotate(-3deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(0deg) translateY(-1px); } 75% { transform: translateX(-52%) rotate(3deg) translateY(-2px); } }
@keyframes bht1-hat { 0%,100% { transform: translateX(-50%) rotate(-10deg) translateY(0); } 25% { transform: translateX(-48%) rotate(-13deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(-10deg) translateY(0); } 75% { transform: translateX(-52%) rotate(-7deg) translateY(-2px); } }
@keyframes bht1-mug { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } }
@keyframes bht1-lantern { 0% { box-shadow: 0 0 15px 4px #c08040, 0 0 30px 8px rgba(192,128,64,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 28px 10px #e0a060, 0 0 50px 16px rgba(224,160,96,0.5); opacity: 1; } 100% { box-shadow: 0 0 18px 5px #c08040, 0 0 36px 10px rgba(192,128,64,0.35); opacity: 0.9; } }
@keyframes bht1-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.4; } 50% { transform: translateY(-20px) scale(1.5); opacity: 0.2; } 100% { transform: translateY(-40px) scale(2); opacity: 0; } }

/* boars-head-tavern-son-mothers-word */
.scn-boars-head-tavern-son-mothers-word {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #1a0e05 60%, #0d0602 100%),
    radial-gradient(ellipse at 30% 40%, #3a2a1a 0%, transparent 70%);
  overflow: hidden;
}
.scn-boars-head-tavern-son-mothers-word .bg-shadow {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a0e05 0%, transparent 100%);
}
.scn-boars-head-tavern-son-mothers-word .head-profile {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 40% 40% 50% / 50% 45% 45% 50%;
  transform: scaleX(-1); /* profile facing right */
}
.scn-boars-head-tavern-son-mothers-word .eye {
  position: absolute; bottom: 52%; left: 38%; width: 6px; height: 4px;
  background: #c08040;
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(192,128,64,0.6);
  animation: bht2-eye 3s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-son-mothers-word .lip {
  position: absolute; bottom: 30%; left: 34%; width: 12px; height: 6px;
  background: #3a2a1a;
  border-radius: 0 0 50% 50%;
  transform: rotate(-5deg);
  animation: bht2-lip 2s ease-in-out infinite;
}
.scn-boars-head-tavern-son-mothers-word .candle {
  position: absolute; bottom: 15%; left: 50%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #a08060 0%, #6a4a3a 100%);
  border-radius: 10% 10% 30% 30%;
  transform: translateX(-50%);
}
.scn-boars-head-tavern-son-mothers-word .candle-glow {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c08040 0%, #b07030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,0.3);
  animation: bht2-glow 4s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-son-mothers-word .table-edge {
  position: absolute; bottom: 8%; left: 20%; right: 20%; height: 8px;
  background: linear-gradient(90deg, #4a2a1a 0%, #3a1a0a 50%, #4a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
@keyframes bht2-eye { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.2); } 100% { transform: scaleY(1); } }
@keyframes bht2-lip { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } }
@keyframes bht2-glow { 0% { opacity: 0.8; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.9; transform: translateX(-50%) scale(0.95); } }

/* boars-head-tavern-pitch-defile */
.scn-boars-head-tavern-pitch-defile {
  background:
    linear-gradient(180deg, #1a0e05 0%, #0d0602 100%),
    radial-gradient(ellipse at 60% 80%, #2a1a0a 0%, transparent 60%);
  overflow: hidden;
}
.scn-boars-head-tavern-pitch-defile .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
}
.scn-boars-head-tavern-pitch-defile .barrel {
  position: absolute; bottom: 25%; left: 20%; width: 40px; height: 50px;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #4a3a2a 100%);
  border-radius: 30% 30% 30% 30% / 40% 40% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: bht3-barrel 10s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-pitch-defile .pitch-pool {
  position: absolute; bottom: 25%; left: 22%; width: 30px; height: 8px;
  background: #0d0602;
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.8);
  animation: bht3-pool 6s ease-in-out infinite;
}
.scn-boars-head-tavern-pitch-defile .figure {
  position: absolute; bottom: 30%; left: 60%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: bht3-figure 4s ease-in-out infinite;
}
.scn-boars-head-tavern-pitch-defile .arm {
  position: absolute; bottom: 42%; left: 64%; width: 16px; height: 6px;
  background: #2a1a0a;
  border-radius: 20% 40% 40% 20%;
  transform-origin: 0 50%;
  animation: bht3-arm 2s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-pitch-defile .sparkle {
  position: absolute; bottom: 35%; left: 50%; width: 4px; height: 4px;
  background: #c08040;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #c08040, 0 0 16px 4px rgba(192,128,64,0.5);
  animation: bht3-sparkle 3s ease-in-out infinite;
}
.scn-boars-head-tavern-pitch-defile .fly-a {
  position: absolute; top: 20%; left: 10%; width: 6px; height: 4px;
  background: #4a3a2a;
  border-radius: 50%;
  transform: rotate(30deg);
  animation: bht3-fly 8s linear infinite;
}
.scn-boars-head-tavern-pitch-defile .fly-b {
  position: absolute; top: 30%; left: 70%; width: 6px; height: 4px;
  background: #4a3a2a;
  border-radius: 50%;
  transform: rotate(-20deg);
  animation: bht3-fly 10s linear infinite reverse;
}
@keyframes bht3-barrel { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1.02); } }
@keyframes bht3-pool { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.3); } 100% { transform: scaleX(0.9); } }
@keyframes bht3-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(4px) rotate(2deg); } }
@keyframes bht3-arm { 0% { transform: rotate(-30deg); } 100% { transform: rotate(10deg); } }
@keyframes bht3-sparkle { 0%,100% { opacity: 0; transform: scale(0); } 50% { opacity: 1; transform: scale(1.5); } }
@keyframes bht3-fly { 0% { transform: translate(0, 0) rotate(30deg); } 25% { transform: translate(20px, -10px) rotate(20deg); } 50% { transform: translate(40px, 0) rotate(35deg); } 75% { transform: translate(60px, -5px) rotate(25deg); } 100% { transform: translate(80px, 0) rotate(30deg); } }

/* boars-head-tavern-portly-man */
.scn-boars-head-tavern-portly-man {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #1a0e05 50%, #0d0602 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 60%);
  overflow: hidden;
}
.scn-boars-head-tavern-portly-man .bg-timber {
  position: absolute; top: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 50%, #3a2a1a 100%);
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-boars-head-tavern-portly-man .chair {
  position: absolute; bottom: 5%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-boars-head-tavern-portly-man .portly-body {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 45px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.4);
  animation: bht4-body 5s ease-in-out infinite;
}
.scn-boars-head-tavern-portly-man .portly-head {
  position: absolute; bottom: 55%; left: 50%; width: 24px; height: 26px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: bht4-head 5s ease-in-out infinite;
}
.scn-boars-head-tavern-portly-man .tankard {
  position: absolute; bottom: 30%; left: 62%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(10deg);
  animation: bht4-tankard 4s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-portly-man .table-plank {
  position: absolute; bottom: 12%; left: 30%; right: 30%; height: 6px;
  background: #3a2a1a;
  border-radius: 10% 10% 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-boars-head-tavern-portly-man .fire-glow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #a0461a 0%, transparent 70%);
  opacity: 0.3;
  animation: bht4-glow 7s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-portly-man .mote-a {
  position: absolute; top: 20%; left: 30%; width: 4px; height: 4px;
  background: #c08040;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(192,128,64,0.4);
  animation: bht4-mote 8s linear infinite;
}
.scn-boars-head-tavern-portly-man .mote-b {
  position: absolute; top: 40%; left: 70%; width: 3px; height: 3px;
  background: #c08040;
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(192,128,64,0.3);
  animation: bht4-mote 12s linear infinite reverse;
}
@keyframes bht4-body { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px); } }
@keyframes bht4-head { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-1px); } }
@keyframes bht4-tankard { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(14deg) translateY(-2px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes bht4-glow { 0% { opacity: 0.2; transform: scaleY(1); } 50% { opacity: 0.4; transform: scaleY(1.05); } 100% { opacity: 0.25; transform: scaleY(0.95); } }
@keyframes bht4-mote { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 50% { transform: translateY(-30px) scale(0.5); opacity: 0.2; } 100% { transform: translateY(-60px) scale(0); opacity: 0; } }

/* =========================================================
   BOAR'S HEAD TAVERN scenes (dim interior, funny)
   ========================================================= */
.scn-boars-head-tavern-truth-truth {
  background: 
    linear-gradient(180deg, #2a1e14 0%, #3c2a1e 40%, #1f1410 100%),
    radial-gradient(ellipse at 50% 20%, #4a3521 0%, transparent 70%);
}
.scn-boars-head-tavern-truth-truth .wall-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #1f1410 50%, #2a1e14 100%);
  animation: bht1-wall 12s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-truth-truth .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1a120c 0%, #0d0a07 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,.6);
}
.scn-boars-head-tavern-truth-truth .fireplace {
  position:absolute; bottom:25%; left:15%; width:80px; height:100px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,.5);
}
.scn-boars-head-tavern-truth-truth .flame {
  position:absolute; bottom:25%; left:15%; width:80px; height:100px;
  background: radial-gradient(ellipse at 50% 70%, #ff8c42 0%, transparent 60%);
  filter: blur(6px);
  animation: bht1-flame 2s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-truth-truth .glow {
  box-shadow: 0 0 40px 12px #ff8c42, 0 0 80px 24px rgba(255,140,66,.3);
  mix-blend-mode: screen;
}
.scn-boars-head-tavern-truth-truth .table {
  position:absolute; bottom:18%; left:40%; width:120px; height:40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,.7);
  animation: bht1-table 8s ease-in-out infinite;
}
.scn-boars-head-tavern-truth-truth .figure-left {
  position:absolute; bottom:28%; left:35%; width:30px; height:80px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bht1-figure-left 4s ease-in-out infinite;
}
.scn-boars-head-tavern-truth-truth .figure-right {
  position:absolute; bottom:28%; left:52%; width:30px; height:80px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bht1-figure-right 4.5s ease-in-out infinite;
}
.scn-boars-head-tavern-truth-truth .tankard-left {
  position:absolute; bottom:30%; left:42%; width:16px; height:24px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 30% 30% 20% 20%;
  animation: bht1-tankard 3s ease-in-out infinite;
}
.scn-boars-head-tavern-truth-truth .tankard-right {
  position:absolute; bottom:30%; left:54%; width:16px; height:24px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 30% 30% 20% 20%;
  animation: bht1-tankard 3.5s ease-in-out infinite;
}

@keyframes bht1-wall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes bht1-flame { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.2) translateY(-4px) } 100% { transform: scaleY(.9) translateY(2px) } }
@keyframes bht1-table { 0%,100% { transform: rotate(0) } 25% { transform: rotate(1deg) } 75% { transform: rotate(-1deg) } }
@keyframes bht1-figure-left { 0% { transform: rotate(-2deg) translateX(0) } 30% { transform: rotate(2deg) translateX(5px) } 60% { transform: rotate(-3deg) translateX(-3px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes bht1-figure-right { 0% { transform: rotate(2deg) translateX(0) } 30% { transform: rotate(-2deg) translateX(-5px) } 60% { transform: rotate(3deg) translateX(3px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes bht1-tankard { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-6px) rotate(5deg) } 80% { transform: translateY(0) rotate(-2deg) } }

/* ----------------------------------------------------------------- */
.scn-boars-head-tavern-reason-compulsion {
  background:
    linear-gradient(180deg, #2a1e14 0%, #3c2a1e 40%, #1f1410 100%),
    radial-gradient(ellipse at 40% 20%, #4a3521 0%, transparent 70%);
}
.scn-boars-head-tavern-reason-compulsion .wall-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #1f1410 50%, #2a1e14 100%);
  animation: bht2-wall 10s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-reason-compulsion .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1a120c 0%, #0d0a07 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,.6);
}
.scn-boars-head-tavern-reason-compulsion .fireplace {
  position:absolute; bottom:25%; left:5%; width:80px; height:100px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,.5);
}
.scn-boars-head-tavern-reason-compulsion .flame {
  position:absolute; bottom:25%; left:5%; width:80px; height:100px;
  background: radial-gradient(ellipse at 50% 70%, #ff8c42 0%, transparent 60%);
  filter: blur(6px);
  animation: bht2-flame 2.5s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-reason-compulsion .glow {
  box-shadow: 0 0 40px 12px #ff8c42, 0 0 80px 24px rgba(255,140,66,.3);
  mix-blend-mode: screen;
}
.scn-boars-head-tavern-reason-compulsion .table {
  position:absolute; bottom:18%; left:40%; width:120px; height:40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,.7);
  animation: bht2-table 8s ease-in-out infinite;
}
.scn-boars-head-tavern-reason-compulsion .figure-center {
  position:absolute; bottom:28%; left:45%; width:32px; height:85px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bht2-figure 4s ease-in-out infinite;
}
.scn-boars-head-tavern-reason-compulsion .tankard-large {
  position:absolute; bottom:30%; left:48%; width:20px; height:28px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 30% 30% 20% 20%;
  animation: bht2-tankard 3s ease-in-out infinite;
}
.scn-boars-head-tavern-reason-compulsion .chain-chain {
  position:absolute; bottom:34%; left:38%; width:80px; height:4px;
  background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 4px, transparent 4px, transparent 8px);
  border-radius: 2px;
  animation: bht2-chain 6s linear infinite;
}

@keyframes bht2-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes bht2-flame { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.3) translateY(-6px) } 100% { transform: scaleY(.9) translateY(2px) } }
@keyframes bht2-table { 0%,100% { transform: rotate(0) } 25% { transform: rotate(-1deg) } 75% { transform: rotate(1deg) } }
@keyframes bht2-figure { 0% { transform: rotate(-3deg) translateX(0) } 30% { transform: rotate(3deg) translateX(8px) } 60% { transform: rotate(-3deg) translateX(-5px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes bht2-tankard { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-8px) rotate(8deg) } 80% { transform: translateY(0) rotate(-4deg) } }
@keyframes bht2-chain { 0% { transform: translateX(0) } 100% { transform: translateX(-20px) } }

/* ----------------------------------------------------------------- */
.scn-boars-head-tavern-starveling-insults {
  background:
    linear-gradient(180deg, #2a1e14 0%, #3c2a1e 45%, #1f1410 100%),
    radial-gradient(ellipse at 60% 20%, #4a3521 0%, transparent 70%);
}
.scn-boars-head-tavern-starveling-insults .wall-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #1f1410 50%, #2a1e14 100%);
  animation: bht3-wall 14s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-starveling-insults .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1a120c 0%, #0d0a07 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,.6);
}
.scn-boars-head-tavern-starveling-insults .fireplace {
  position:absolute; bottom:25%; left:10%; width:80px; height:100px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,.5);
}
.scn-boars-head-tavern-starveling-insults .flame {
  position:absolute; bottom:25%; left:10%; width:80px; height:100px;
  background: radial-gradient(ellipse at 50% 70%, #ff8c42 0%, transparent 60%);
  filter: blur(6px);
  animation: bht3-flame 2.2s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-starveling-insults .glow {
  box-shadow: 0 0 40px 12px #ff8c42, 0 0 80px 24px rgba(255,140,66,.3);
  mix-blend-mode: screen;
}
.scn-boars-head-tavern-starveling-insults .table-tilted {
  position:absolute; bottom:18%; left:40%; width:120px; height:40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,.7);
  animation: bht3-table 6s ease-in-out infinite;
  transform: rotate(-2deg);
}
.scn-boars-head-tavern-starveling-insults .figure-tall {
  position:absolute; bottom:28%; left:38%; width:20px; height:100px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 40% 40%;
  transform-origin: bottom center;
  animation: bht3-figure-tall 3s ease-in-out infinite;
}
.scn-boars-head-tavern-starveling-insults .figure-short {
  position:absolute; bottom:28%; left:54%; width:40px; height:60px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bht3-figure-short 4s ease-in-out infinite;
}
.scn-boars-head-tavern-starveling-insults .tankard-flying {
  position:absolute; bottom:30%; left:44%; width:16px; height:24px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 30% 30% 20% 20%;
  animation: bht3-tankard 2s ease-in-out infinite;
}

@keyframes bht3-wall { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes bht3-flame { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.4) translateY(-8px) } 100% { transform: scaleY(.9) translateY(2px) } }
@keyframes bht3-table { 0%,100% { transform: rotate(-2deg) } 25% { transform: rotate(0deg) } 75% { transform: rotate(-4deg) } }
@keyframes bht3-figure-tall { 0% { transform: rotate(-5deg) translateX(0) } 20% { transform: rotate(5deg) translateX(10px) } 40% { transform: rotate(-3deg) translateX(-6px) } 60% { transform: rotate(4deg) translateX(8px) } 80% { transform: rotate(-2deg) translateX(-4px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes bht3-figure-short { 0% { transform: rotate(3deg) translateX(0) } 30% { transform: rotate(-3deg) translateX(-8px) } 60% { transform: rotate(2deg) translateX(6px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes bht3-tankard { 0% { transform: translateY(0) rotate(0) translateX(0) } 25% { transform: translateY(-15px) rotate(20deg) translateX(20px) } 50% { transform: translateY(-5px) rotate(-10deg) translateX(10px) } 75% { transform: translateY(-12px) rotate(15deg) translateX(-8px) } 100% { transform: translateY(0) rotate(0) translateX(0) } }

/* ----------------------------------------------------------------- */
.scn-boars-head-tavern-plain-tale {
  background:
    linear-gradient(180deg, #2a1e14 0%, #3c2a1e 35%, #1f1410 100%),
    radial-gradient(ellipse at 50% 20%, #4a3521 0%, transparent 70%);
}
.scn-boars-head-tavern-plain-tale .wall-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #1f1410 50%, #2a1e14 100%);
  animation: bht4-wall 15s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-plain-tale .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1a120c 0%, #0d0a07 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,.6);
}
.scn-boars-head-tavern-plain-tale .fireplace {
  position:absolute; bottom:25%; left:50%; width:80px; height:100px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,.5);
  margin-left: -40px; /* center */
}
.scn-boars-head-tavern-plain-tale .flame {
  position:absolute; bottom:25%; left:50%; width:80px; height:100px;
  background: radial-gradient(ellipse at 50% 70%, #ff8c42 0%, transparent 60%);
  filter: blur(6px);
  margin-left: -40px;
  animation: bht4-flame 2.8s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-plain-tale .glow {
  box-shadow: 0 0 40px 12px #ff8c42, 0 0 80px 24px rgba(255,140,66,.3);
  mix-blend-mode: screen;
}
.scn-boars-head-tavern-plain-tale .table-round {
  position:absolute; bottom:18%; left:20%; width:150px; height:45px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,.7);
  animation: bht4-table 10s ease-in-out infinite;
}
.scn-boars-head-tavern-plain-tale .figure-storyteller {
  position:absolute; bottom:28%; left:28%; width:36px; height:90px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bht4-storyteller 5s ease-in-out infinite;
}
.scn-boars-head-tavern-plain-tale .figure-listener {
  position:absolute; bottom:28%; left:50%; width:30px; height:80px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bht4-listener 4s ease-in-out infinite;
}
.scn-boars-head-tavern-plain-tale .tankard-row {
  position:absolute; bottom:30%; left:36%; width:16px; height:24px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 30% 30% 20% 20%;
  animation: bht4-tankard-row 3s ease-in-out infinite;
}
.scn-boars-head-tavern-plain-tale .tankard-row-2 {
  position:absolute; bottom:30%; left:40%; width:16px; height:24px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 30% 30% 20% 20%;
  animation: bht4-tankard-row 3.5s ease-in-out infinite;
}

@keyframes bht4-wall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes bht4-flame { 0% { transform: scaleY(1) translateY(0) } 30% { transform: scaleY(1.15) translateY(-4px) } 60% { transform: scaleY(.95) translateY(2px) } 100% { transform: scaleY(1.1) translateY(-2px) } }
@keyframes bht4-table { 0%,100% { transform: rotate(0) } 25% { transform: rotate(1deg) } 75% { transform: rotate(-1deg) } }
@keyframes bht4-storyteller { 0% { transform: rotate(-2deg) translateX(0) scaleX(1) } 30% { transform: rotate(3deg) translateX(8px) scaleX(1.03) } 60% { transform: rotate(-1deg) translateX(-4px) scaleX(.97) } 100% { transform: rotate(0) translateX(0) scaleX(1) } }
@keyframes bht4-listener { 0% { transform: rotate(2deg) translateX(0) } 30% { transform: rotate(-2deg) translateX(-4px) } 60% { transform: rotate(1deg) translateX(2px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes bht4-tankard-row { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-5px) rotate(4deg) } 80% { transform: translateY(0) rotate(-2deg) } }

.scn-bangor-archdeacon-house-skimble-skamble {
  background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 50%, #2a3a4a 100%),
              radial-gradient(ellipse at 70% 20%, #3a5a7a 0%, transparent 60%);
}
.scn-bangor-archdeacon-house-skimble-skamble .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 100%); animation: ss-bg 15s ease-in-out infinite alternate; }
.scn-bangor-archdeacon-house-skimble-skamble .moon { position:absolute; top:10%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #e0e8f0 0%, #c0c8d0 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 30px 15px rgba(192,200,210,.3); animation: ss-moon 12s ease-in-out infinite; }
.scn-bangor-archdeacon-house-skimble-skamble .wall { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); }
.scn-bangor-archdeacon-house-skimble-skamble .figure { position:absolute; bottom:20%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ss-figure 2s ease-in-out infinite; }
.scn-bangor-archdeacon-house-skimble-skamble .mouldwarp { position:absolute; bottom:35%; left:50%; width:12px; height:8px; background: #8a7a6a; border-radius:50% 50% 40% 40%; filter: blur(1px); animation: ss-animal 4s ease-in-out infinite; }
.scn-bangor-archdeacon-house-skimble-skamble .ant { position:absolute; bottom:40%; left:60%; width:6px; height:10px; background: #6a5a4a; border-radius:40% 40% 30% 30%; animation: ss-animal 3s ease-in-out infinite 1s; }
.scn-bangor-archdeacon-house-skimble-skamble .dragon { position:absolute; bottom:30%; left:20%; width:20px; height:14px; background: #4a6a5a; border-radius: 40% 60% 30% 50%; transform: rotate(-15deg); animation: ss-dragon 5s ease-in-out infinite; }
.scn-bangor-archdeacon-house-skimble-skamble .griffin { position:absolute; bottom:45%; left:70%; width:16px; height:12px; background: #6a5a4a; border-radius: 50% 40% 30% 30%; filter: blur(1px); animation: ss-animal 6s ease-in-out infinite 2s; }
.scn-bangor-archdeacon-house-skimble-skamble .raven { position:absolute; bottom:50%; left:80%; width:10px; height:8px; background: #2a2a2a; border-radius: 30% 30% 40% 40%; animation: ss-raven 7s ease-in-out infinite 0.5s; }

@keyframes ss-bg { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes ss-moon { 0% { transform: scale(1) translate(0,0) } 50% { transform: scale(1.05) translate(2px,-2px) } 100% { transform: scale(0.95) translate(-2px,1px) } }
@keyframes ss-figure { 0%,100% { transform: rotate(-5deg) translateX(0) } 25% { transform: rotate(5deg) translateX(5px) } 50% { transform: rotate(-5deg) translateX(10px) } 75% { transform: rotate(5deg) translateX(5px) } }
@keyframes ss-animal { 0% { transform: translateY(0) rotate(0); opacity:0.6 } 25% { transform: translateY(-8px) rotate(10deg); opacity:1 } 50% { transform: translateY(0) rotate(-5deg); opacity:0.7 } 75% { transform: translateY(-4px) rotate(5deg); opacity:0.9 } 100% { transform: translateY(0) rotate(0); opacity:0.6 } }
@keyframes ss-dragon { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-12px) scale(1.2) rotate(20deg) } 100% { transform: translateY(0) scale(1) } }
@keyframes ss-raven { 0% { transform: translate(0,0) rotate(0) } 25% { transform: translate(15px,-10px) rotate(10deg) } 50% { transform: translate(30px,0) rotate(0) } 75% { transform: translate(15px,-5px) rotate(-10deg) } 100% { transform: translate(0,0) rotate(0) } }

.scn-bangor-archdeacon-house-nine-hours {
  background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 50%, #2a3a4a 100%),
              radial-gradient(ellipse at 50% 30%, #3a5a7a 0%, transparent 60%);
}
.scn-bangor-archdeacon-house-nine-hours .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 100%); animation: nh-bg 20s ease-in-out infinite alternate; }
.scn-bangor-archdeacon-house-nine-hours .moon { position:absolute; top:8%; left:20%; width:35px; height:35px; background: radial-gradient(circle, #e0e8f0 0%, #c0c8d0 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 25px 10px rgba(192,200,210,.3); animation: nh-moon 15s ease-in-out infinite; }
.scn-bangor-archdeacon-house-nine-hours .clock { position:absolute; top:12%; left:60%; width:50px; height:50px; border:3px solid #e0e8f0; border-radius:50%; background: #1a2a3a; animation: nh-clock 10s linear infinite; }
.scn-bangor-archdeacon-house-nine-hours .clock::after { content:''; position:absolute; top:5px; left:23px; width:2px; height:18px; background:#e0e8f0; transform-origin: bottom center; animation: nh-hand 60s linear infinite; }
.scn-bangor-archdeacon-house-nine-hours .table { position:absolute; bottom:15%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.4); }
.scn-bangor-archdeacon-house-nine-hours .figure-slump { position:absolute; bottom:23%; left:35%; width:40px; height:55px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%; transform-origin: bottom center; animation: nh-slump 8s ease-in-out infinite; }
.scn-bangor-archdeacon-house-nine-hours .candle { position:absolute; bottom:30%; left:45%; width:8px; height:20px; background: linear-gradient(180deg, #e0c080 0%, #a08040 100%); border-radius: 2px 2px 0 0; box-shadow: 0 0 10px 4px rgba(224,192,128,.4); animation: nh-candle 3s ease-in-out infinite alternate; }
.scn-bangor-archdeacon-house-nine-hours .papers { position:absolute; bottom:18%; left:30%; width:30px; height:4px; background: #d0c090; border-radius: 1px; transform: rotate(-10deg); box-shadow: 2px 6px 0 #c0b080, 4px 12px 0 #b0a070; animation: nh-papers 12s ease-in-out infinite; }
.scn-bangor-archdeacon-house-nine-hours .cat-sleep { position:absolute; bottom:20%; left:55%; width:30px; height:15px; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 40% 40% 20% 20%; transform: scaleX(0.8); animation: nh-cat 15s ease-in-out infinite; }

@keyframes nh-bg { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.4 } }
@keyframes nh-moon { 0% { transform: translate(0,0) } 50% { transform: translate(3px,-2px) } 100% { transform: translate(-2px,1px) } }
@keyframes nh-clock { 0% { transform: rotate(0) } 100% { transform: rotate(360deg) } }
@keyframes nh-hand { 0% { transform: rotate(0) } 100% { transform: rotate(360deg) } }
@keyframes nh-slump { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(3px) rotate(-3deg) } 50% { transform: translateY(5px) rotate(2deg) } 75% { transform: translateY(2px) rotate(-1deg) } }
@keyframes nh-candle { 0% { transform: scaleY(1) ; opacity:0.9 } 50% { transform: scaleY(1.1) ; opacity:1 } 100% { transform: scaleY(0.95) ; opacity:0.8 } }
@keyframes nh-papers { 0% { transform: translateY(0) rotate(-10deg) } 50% { transform: translateY(-2px) rotate(-5deg) } 100% { transform: translateY(0) rotate(-10deg) } }
@keyframes nh-cat { 0%,100% { transform: scaleX(0.8) translateY(0) } 50% { transform: scaleX(0.9) translateY(-2px) } }

.scn-bangor-archdeacon-house-glendower-worthy {
  background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 50%, #2a3a4a 100%),
              radial-gradient(ellipse at 50% 40%, #4a6a8a 0%, transparent 50%);
}
.scn-bangor-archdeacon-house-glendower-worthy .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 100%); animation: gw-bg 20s ease-in-out infinite alternate; }
.scn-bangor-archdeacon-house-glendower-worthy .moon { position:absolute; top:15%; left:75%; width:45px; height:45px; background: radial-gradient(circle, #e8f0f8 0%, #c8d8e0 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(200,216,224,.3); animation: gw-moon 10s ease-in-out infinite; }
.scn-bangor-archdeacon-house-glendower-worthy .aura { position:absolute; top:25%; left:35%; width:120px; height:120px; background: radial-gradient(circle, rgba(224,232,240,0.2) 0%, transparent 70%); border-radius:50%; filter: blur(10px); animation: gw-aura 8s ease-in-out infinite alternate; }
.scn-bangor-archdeacon-house-glendower-worthy .figure-dignified { position:absolute; bottom:20%; left:40%; width:35px; height:65px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gw-figure 12s ease-in-out infinite; }
.scn-bangor-archdeacon-house-glendower-worthy .book { position:absolute; bottom:25%; left:48%; width:20px; height:28px; background: linear-gradient(180deg, #605040 0%, #403020 100%); border-radius: 2px; transform: rotate(5deg); box-shadow: 2px 2px 4px rgba(0,0,0,.3); animation: gw-book 15s ease-in-out infinite; }
.scn-bangor-archdeacon-house-glendower-worthy .stars { position:absolute; top:5%; left:10%; width:2px; height:2px; background: #e0e8f0; border-radius:50%; box-shadow: 20px 15px 0 #e0e8f0, 40px 30px 0 #d0d8e0, 60px 10px 0 #e0e8f0, 80px 25px 0 #c8d0d8; animation: gw-stars 30s linear infinite; }
.scn-bangor-archdeacon-house-glendower-worthy .scroll { position:absolute; bottom:30%; left:30%; width:25px; height:6px; background: #c0b090; border-radius: 3px; transform: rotate(-15deg); box-shadow: 0 4px 6px rgba(0,0,0,.2); animation: gw-scroll 18s ease-in-out infinite; }

@keyframes gw-bg { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes gw-moon { 0% { transform: scale(1) translate(0,0) } 50% { transform: scale(1.03) translate(2px,-1px) } 100% { transform: scale(0.97) translate(-1px,1px) } }
@keyframes gw-aura { 0% { transform: scale(1); opacity:0.5 } 50% { transform: scale(1.2); opacity:0.8 } 100% { transform: scale(0.9); opacity:0.4 } }
@keyframes gw-figure { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes gw-book { 0% { transform: rotate(5deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(3deg) } }
@keyframes gw-stars { 0% { opacity:0.3 } 50% { opacity:0.8 } 100% { opacity:0.3 } }
@keyframes gw-scroll { 0% { transform: scaleY(1) rotate(-15deg) } 50% { transform: scaleY(1.2) rotate(-10deg) } 100% { transform: scaleY(1) rotate(-15deg) } }

.scn-bangor-archdeacon-house-willful-blame {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #2a2a3a 100%),
              radial-gradient(ellipse at 40% 30%, #3a3a5a 0%, transparent 60%);
}
.scn-bangor-archdeacon-house-willful-blame .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); animation: wb-bg 5s ease-in-out infinite alternate; }
.scn-bangor-archdeacon-house-willful-blame .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); }
.scn-bangor-archdeacon-house-willful-blame .figure-left { position:absolute; bottom:20%; left:20%; width:35px; height:60px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wb-left 4s ease-in-out infinite; }
.scn-bangor-archdeacon-house-willful-blame .figure-right { position:absolute; bottom:20%; right:20%; width:35px; height:60px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wb-right 4s ease-in-out infinite 0.5s; }
.scn-bangor-archdeacon-house-willful-blame .tension-lines { position:absolute; top:40%; left:30%; right:30%; height:2px; background: #5a5a7a; filter: blur(1px); animation: wb-lines 2s ease-in-out infinite alternate; box-shadow: 0 4px 0 #5a5a7a; }
.scn-bangor-archdeacon-house-willful-blame .spark { position:absolute; top:35%; left:45%; width:4px; height:4px; background: #e0d0a0; border-radius:50%; box-shadow: 0 0 10px 5px rgba(224,208,160,.5); animation: wb-spark 2s ease-in-out infinite; }
.scn-bangor-archdeacon-house-willful-blame .doorway { position:absolute; bottom:0; left:40%; width:60px; height:80%; background: #1a1a2a; border-radius: 40% 40% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }

@keyframes wb-bg { 0% { opacity:0.8 } 50% { opacity:0.6 } 100% { opacity:0.9 } }
@keyframes wb-left { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes wb-right { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes wb-lines { 0% { transform: scaleX(0.8); opacity:0.3 } 100% { transform: scaleX(1.2); opacity:0.7 } }
@keyframes wb-spark { 0%,100% { transform: scale(1); opacity:0.5 } 50% { transform: scale(1.5); opacity:1 } }

/* Scene 1: york-archbishop-michael-guess (calm, bright interior) */
.scn-york-archbishop-michael-guess {
  background: linear-gradient(180deg, #f5e6c8 0%, #ebd4a8 30%, #d4b07a 60%, #b8945c 100%),
              radial-gradient(ellipse at 50% 60%, #fff2d6 0%, transparent 60%);
}
.scn-york-archbishop-michael-guess .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d4b07a 0%, #c49a64 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.2);
}
.scn-york-archbishop-michael-guess .window {
  position: absolute; top: 10%; left: 20%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 30% 40%, #a8d8ea 0%, #7bb8d0 40%, #5a9ab4 70%, #3a7a94 100%);
  border: 6px solid #8b6f47;
  border-radius: 8px;
  box-shadow: 0 0 40px 10px rgba(255,215,140,0.3);
  animation: mg-window 8s ease-in-out infinite alternate;
}
.scn-york-archbishop-michael-guess .light-beam {
  position: absolute; top: 15%; left: 25%; width: 40%; height: 60%;
  background: linear-gradient(135deg, rgba(255,230,170,0.3) 0%, transparent 80%);
  filter: blur(12px);
  animation: mg-beam 6s ease-in-out infinite alternate;
}
.scn-york-archbishop-michael-guess .figure-left {
  position: absolute; bottom: 20%; left: 18%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #2a2520 0%, #1a1510 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%;
  transform-origin: bottom center;
  animation: mg-figure-l 5s ease-in-out infinite alternate;
}
.scn-york-archbishop-michael-guess .figure-right {
  position: absolute; bottom: 20%; right: 18%; width: 12%; height: 42%;
  background: linear-gradient(180deg, #2a2520 0%, #1a1510 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%;
  transform-origin: bottom center;
  animation: mg-figure-r 5s ease-in-out infinite alternate;
}
.scn-york-archbishop-michael-guess .table {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #6b4f34 0%, #4a3522 100%);
  border-radius: 6px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  transform: perspective(500px) rotateX(5deg);
}
.scn-york-archbishop-michael-guess .scroll {
  position: absolute; bottom: 22%; left: 42%; width: 12%; height: 6%;
  background: linear-gradient(90deg, #d9c9a0 0%, #c0b088 20%, #d9c9a0 40%, #c0b088 60%, #d9c9a0 80%, #c0b088 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: mg-scroll 12s ease-in-out infinite alternate;
}
.scn-york-archbishop-michael-guess .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b8945c 0%, #a07a4a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.15);
}
@keyframes mg-window { 0%,100% { opacity:0.9; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.03); } }
@keyframes mg-beam { 0%,100% { opacity:0.3; transform:skewX(-2deg); } 50% { opacity:0.5; transform:skewX(2deg); } }
@keyframes mg-figure-l { 0%,100% { transform:translateX(0) rotate(-2deg); } 50% { transform:translateX(2px) rotate(1deg); } }
@keyframes mg-figure-r { 0%,100% { transform:translateX(0) rotate(2deg); } 50% { transform:translateX(-2px) rotate(-1deg); } }
@keyframes mg-scroll { 0%,100% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-3deg) translateY(-2px); } }

/* Scene 2: york-archbishop-tenor (tense, bright interior) */
.scn-york-archbishop-tenor {
  background: linear-gradient(180deg, #e8d4b4 0%, #d4be9e 30%, #c4a888 60%, #b09070 100%),
              radial-gradient(ellipse at 40% 50%, #ffe8c8 0%, transparent 70%);
}
.scn-york-archbishop-tenor .wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #c4a888 0%, #b4987a 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
}
.scn-york-archbishop-tenor .map-table {
  position: absolute; bottom: 12%; left: 15%; width: 70%; height: 14%;
  background: linear-gradient(180deg, #6a4f34 0%, #4a3522 100%);
  border-radius: 10px;
  box-shadow: 0 6px 14px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(8deg);
}
.scn-york-archbishop-tenor .map {
  position: absolute; bottom: 14%; left: 22%; width: 56%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, #c8b488 0%, #a8906c 100%);
  border-radius: 4px;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.2);
  animation: tn-map 10s ease-in-out infinite alternate;
}
.scn-york-archbishop-tenor .figure-far-left {
  position: absolute; bottom: 22%; left: 8%; width: 11%; height: 38%;
  background: linear-gradient(180deg, #2a2520 0%, #1a1510 100%);
  border-radius: 50% 40% 40% 50% / 80% 80% 40% 40%;
  transform-origin: bottom center;
  animation: tn-figures 3s ease-in-out infinite alternate;
}
.scn-york-archbishop-tenor .figure-mid-left {
  position: absolute; bottom: 20%; left: 22%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #2a2520 0%, #1a1510 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%;
  transform-origin: bottom center;
  animation: tn-figures 3.5s ease-in-out infinite alternate-reverse;
}
.scn-york-archbishop-tenor .figure-mid-right {
  position: absolute; bottom: 22%; right: 22%; width: 12%; height: 42%;
  background: linear-gradient(180deg, #2a2520 0%, #1a1510 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%;
  transform-origin: bottom center;
  animation: tn-figures 2.8s ease-in-out infinite alternate;
}
.scn-york-archbishop-tenor .figure-far-right {
  position: absolute; bottom: 24%; right: 8%; width: 11%; height: 36%;
  background: linear-gradient(180deg, #2a2520 0%, #1a1510 100%);
  border-radius: 40% 50% 50% 40% / 80% 80% 40% 40%;
  transform-origin: bottom center;
  animation: tn-figures 4s ease-in-out infinite alternate-reverse;
}
.scn-york-archbishop-tenor .candle {
  position: absolute; bottom: 26%; left: 48%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #f0e6c8 0%, #d4c090 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(255,200,100,0.6);
  animation: tn-candle 4s ease-in-out infinite alternate;
}
.scn-york-archbishop-tenor .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, transparent 40%, rgba(0,0,0,0.2) 100%);
  pointer-events: none;
  animation: tn-shadow 6s ease-in-out infinite alternate;
}
@keyframes tn-map { 0%,100% { opacity:0.8; transform:scale(1) rotate(-1deg); } 50% { opacity:1; transform:scale(1.02) rotate(1deg); } }
@keyframes tn-figures { 0%,100% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(3px) rotate(2deg); } }
@keyframes tn-candle { 0%,100% { transform:scaleY(1) translateY(0); opacity:0.9; } 50% { transform:scaleY(1.1) translateY(-2px); opacity:1; } }
@keyframes tn-shadow { 0%,100% { opacity:0.8; } 50% { opacity:1; } }

/* Scene 3: york-archbishop-michael-fear-not (calm, bright interior) */
.scn-york-archbishop-michael-fear-not {
  background: linear-gradient(180deg, #f8e8d0 0%, #ecdcc4 30%, #d8c8b0 60%, #c0b098 100%),
              radial-gradient(ellipse at 30% 40%, #fff8e0 0%, transparent 60%);
}
.scn-york-archbishop-michael-fear-not .backdrop {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d8c8b0 0%, #c8b8a0 100%);
  box-shadow: inset 0 -15px 25px rgba(0,0,0,0.15);
}
.scn-york-archbishop-michael-fear-not .window {
  position: absolute; top: 8%; right: 15%; width: 25%; height: 50%;
  background: radial-gradient(ellipse at 50% 30%, #a8d8ea 0%, #7bb8d0 40%, #5a9ab4 70%, #3a7a94 100%);
  border: 5px solid #8b6f47;
  border-radius: 10px;
  box-shadow: 0 0 30px 8px rgba(255,220,150,0.2);
  animation: fn-window 10s ease-in-out infinite alternate;
}
.scn-york-archbishop-michael-fear-not .light {
  position: absolute; top: 10%; right: 20%; width: 35%; height: 70%;
  background: linear-gradient(135deg, rgba(255,235,180,0.5) 0%, transparent 80%);
  filter: blur(10px);
  animation: fn-light 7s ease-in-out infinite alternate;
}
.scn-york-archbishop-michael-fear-not .figure-sit-left {
  position: absolute; bottom: 22%; left: 22%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #2a2520 0%, #1a1510 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 50% 50%;
  transform-origin: bottom center;
  animation: fn-sit 6s ease-in-out infinite alternate;
}
.scn-york-archbishop-michael-fear-not .figure-sit-right {
  position: absolute; bottom: 22%; right: 22%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #2a2520 0%, #1a1510 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 50% 50%;
  transform-origin: bottom center;
  animation: fn-sit 6s ease-in-out infinite alternate-reverse;
}
.scn-york-archbishop-michael-fear-not .bench {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #6b4f34 0%, #4a3522 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: perspective(400px) rotateX(5deg);
}
.scn-york-archbishop-michael-fear-not .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #c0b098 0%, #a09078 100%);
  box-shadow: inset 0 8px 10px rgba(0,0,0,0.1);
}
.scn-york-archbishop-michael-fear-not .candle {
  position: absolute; bottom: 28%; left: 48%; width: 3%; height: 6%;
  background: linear-gradient(180deg, #f0e6c8 0%, #d4c090 100%);
  border-radius: 2px;
  box-shadow: 0 0 15px 4px rgba(255,200,100,0.5);
  animation: fn-candle 5s ease-in-out infinite alternate;
}
@keyframes fn-window { 0%,100% { transform:scaleY(1); opacity:0.9; } 50% { transform:scaleY(1.02); opacity:1; } }
@keyframes fn-light { 0%,100% { opacity:0.4; transform:skewX(-3deg); } 50% { opacity:0.6; transform:skewX(3deg); } }
@keyframes fn-sit { 0%,100% { transform:translateX(0) rotate(-1deg); } 50% { transform:translateX(2px) rotate(1deg); } }
@keyframes fn-candle { 0%,100% { transform:scaleY(1) rotate(0deg); } 50% { transform:scaleY(1.1) rotate(3deg); } }

/* Scene 4: york-archbishop-king-special-head (tense, bright interior) */
.scn-york-archbishop-king-special-head {
  background: linear-gradient(180deg, #e0c8a8 0%, #ccb498 30%, #b8a088 60%, #a49078 100%),
              radial-gradient(ellipse at 50% 40%, #fff0d0 0%, transparent 70%);
}
.scn-york-archbishop-king-special-head .wall {
  position: absolute; inset: 0 0 18% 0;
  background: linear-gradient(180deg, #b8a088 0%, #a89078 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.25);
}
.scn-york-archbishop-king-special-head .pedestal {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #8b6f47 0%, #6b4f34 100%);
  border-radius: 10px 10px 4px 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-york-archbishop-king-special-head .cushion {
  position: absolute; bottom: 30%; left: 38%; width: 24%; height: 8%;
  background: linear-gradient(180deg, #7a3a3a 0%, #5a2a2a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: kh-cushion 7s ease-in-out infinite alternate;
}
.scn-york-archbishop-king-special-head .crown {
  position: absolute; bottom: 34%; left: 42%; width: 16%; height: 14%;
  background: linear-gradient(180deg, #f0d080 0%, #c8a050 50%, #a08030 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4), 0 0 30px 6px rgba(200,160,80,0.5);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: kh-crown 4s ease-in-out infinite alternate;
}
.scn-york-archbishop-king-special-head .figure-left {
  position: absolute; bottom: 20%; left: 10%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #2a2520 0%, #1a1510 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%;
  transform-origin: bottom center;
  animation: kh-fig-l 3s ease-in-out infinite alternate;
}
.scn-york-archbishop-king-special-head .figure-right {
  position: absolute; bottom: 20%; right: 10%; width: 14%; height: 42%;
  background: linear-gradient(180deg, #2a2520 0%, #1a1510 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%;
  transform-origin: bottom center;
  animation: kh-fig-r 3.5s ease-in-out infinite alternate-reverse;
}
.scn-york-archbishop-king-special-head .banner-left {
  position: absolute; top: 10%; left: 8%; width: 6%; height: 35%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 50%, #702243 100%);
  border-radius: 4px;
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
  animation: kh-banner 6s ease-in-out infinite alternate;
}
.scn-york-archbishop-king-special-head .banner-right {
  position: absolute; top: 10%; right: 8%; width: 6%; height: 35%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 50%, #702243 100%);
  border-radius: 4px;
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
  animation: kh-banner 6s ease-in-out infinite alternate-reverse;
}
.scn-york-archbishop-king-special-head .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, transparent 40%, rgba(0,0,0,0.15) 100%);
  pointer-events: none;
  animation: kh-shadow 8s ease-in-out infinite alternate;
}
@keyframes kh-cushion { 0%,100% { transform:scaleY(1); } 50% { transform:scaleY(0.95) translateY(2px); } }
@keyframes kh-crown { 0%,100% { transform:translateY(0) rotate(-2deg); opacity:0.9; } 50% { transform:translateY(-3px) rotate(2deg); opacity:1; } }
@keyframes kh-fig-l { 0%,100% { transform:translateX(0) rotate(-1deg); } 50% { transform:translateX(3px) rotate(1deg); } }
@keyframes kh-fig-r { 0%,100% { transform:translateX(0) rotate(1deg); } 50% { transform:translateX(-3px) rotate(-1deg); } }
@keyframes kh-banner { 0%,100% { transform:scaleX(1) rotate(0deg); } 50% { transform:scaleX(1.1) rotate(2deg); } }
@keyframes kh-shadow { 0%,100% { opacity:0.7; } 50% { opacity:1; } }

/* boars-head-tavern-sugar-gift */
.scn-boars-head-tavern-sugar-gift {
  background:
    radial-gradient(ellipse at 40% 60%, #c97d3a 0%, transparent 50%),
    linear-gradient(180deg, #2c1a0e 0%, #1a0e06 100%);
}
.scn-boars-head-tavern-sugar-gift .table {
  position: absolute;
  bottom: 10%;
  left: 15%;
  width: 70%;
  height: 35%;
  background: linear-gradient(180deg, #4a2a12 0%, #2c1a0e 100%);
  border-radius: 12% 12% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.6);
}
.scn-boars-head-tavern-sugar-gift .candle {
  position: absolute;
  bottom: 42%;
  left: 38%;
  width: 6px;
  height: 18px;
  background: linear-gradient(180deg, #f5d080 0%, #c08040 100%);
  border-radius: 2px;
  transform: translateX(-50%);
}
.scn-boars-head-tavern-sugar-gift .candle.glow {
  box-shadow: 0 0 30px 12px #ffaa40, 0 0 60px 24px rgba(255,170,64,0.3);
  animation: bht1-flicker 2s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-sugar-gift .mug {
  position: absolute;
  bottom: 28%;
  left: 55%;
  width: 20px;
  height: 26px;
  background: linear-gradient(180deg, #7a5a2a 0%, #4a3016 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: inset -4px 0 6px rgba(0,0,0,0.4);
  transform: rotate(-5deg);
}
.scn-boars-head-tavern-sugar-gift .hand-hand {
  position: absolute;
  bottom: 32%;
  left: 26%;
  width: 28px;
  height: 18px;
  background: radial-gradient(ellipse at 60% 40%, #d4a06a 0%, #b07840 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: bht1-pass 3s ease-in-out infinite;
}
.scn-boars-head-tavern-sugar-gift .sugar-packet {
  position: absolute;
  bottom: 36%;
  left: 30%;
  width: 14px;
  height: 10px;
  background: linear-gradient(180deg, #ece0cc 0%, #c0b098 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(10deg);
  animation: bht1-float 1.8s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-sugar-gift .coins {
  position: absolute;
  bottom: 20%;
  left: 48%;
  width: 10px;
  height: 10px;
  background: radial-gradient(circle, #d4a060 0%, #a08030 100%);
  border-radius: 50%;
  box-shadow: 4px 2px 0 #806020, 8px 0 0 #b09050;
  animation: bht1-shimmer 4s steps(2) infinite;
}
.scn-boars-head-tavern-sugar-gift .shadow-shape {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 60%;
  background: linear-gradient(180deg, transparent 0%, rgba(12,6,2,0.6) 100%);
  border-radius: 0;
}
@keyframes bht1-flicker {
  0% { opacity: 0.8; transform: scaleY(1) translateX(-50%); }
  30% { opacity: 1; transform: scaleY(1.1) translateX(-50%); }
  70% { opacity: 0.9; transform: scaleY(0.95) translateX(-48%); }
  100% { opacity: 0.85; transform: scaleY(1.02) translateX(-52%); }
}
@keyframes bht1-pass {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-4px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes bht1-float {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-3px); }
  100% { transform: rotate(12deg) translateY(0); }
}
@keyframes bht1-shimmer {
  0% { opacity: 0.7; box-shadow: 4px 2px 0 #806020, 8px 0 0 #b09050; }
  100% { opacity: 1; box-shadow: 4px 2px 2px #906828, 8px 0 0 #b09860; }
}

/* boars-head-tavern-francis-call */
.scn-boars-head-tavern-francis-call {
  background:
    radial-gradient(ellipse at 30% 70%, #b86a2a 0%, transparent 40%),
    linear-gradient(180deg, #1a0e06 0%, #2c1a0e 50%, #1a0e06 100%);
}
.scn-boars-head-tavern-francis-call .paneling {
  position: absolute;
  inset: 0 0 0 0;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 30px, rgba(60,30,10,0.3) 30px, rgba(60,30,10,0.3) 32px);
  opacity: 0.4;
}
.scn-boars-head-tavern-francis-call .door {
  position: absolute;
  bottom: 15%;
  left: 10%;
  width: 22%;
  height: 55%;
  background: linear-gradient(180deg, #4a2a12 0%, #2c1a0e 100%);
  border-radius: 4px;
  box-shadow: inset -6px 0 10px rgba(0,0,0,0.5);
}
.scn-boars-head-tavern-francis-call .figure-hal {
  position: absolute;
  bottom: 20%;
  left: 40%;
  width: 20px;
  height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bht2-tilt 4s ease-in-out infinite;
}
.scn-boars-head-tavern-francis-call .figure-poins {
  position: absolute;
  bottom: 25%;
  left: 58%;
  width: 18px;
  height: 36px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0606 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bht2-peek 6s ease-in-out infinite;
}
.scn-boars-head-tavern-francis-call .screen {
  position: absolute;
  right: 8%;
  bottom: 15%;
  width: 20%;
  height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -4px 0 12px rgba(0,0,0,0.4);
}
.scn-boars-head-tavern-francis-call .candle-holder {
  position: absolute;
  bottom: 55%;
  left: 64%;
  width: 4px;
  height: 12px;
  background: #6a3a1a;
  border-radius: 1px;
}
.scn-boars-head-tavern-francis-call .flame.glow {
  position: absolute;
  bottom: 65%;
  left: 64%;
  width: 8px;
  height: 18px;
  background: radial-gradient(ellipse, #ffd080 0%, #c06020 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  box-shadow: 0 0 30px 10px #d07020, 0 0 60px 20px rgba(208,112,32,0.2);
  animation: bht2-flame 2.5s ease-in-out infinite alternate;
}
@keyframes bht2-tilt {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(6px) rotate(5deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-4px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bht2-peek {
  0% { transform: translateX(0) scaleX(1); }
  30% { transform: translateX(8px) scaleX(0.8); }
  70% { transform: translateX(4px) scaleX(0.9); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes bht2-flame {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.9; }
  40% { transform: scaleY(1.2) scaleX(0.8); opacity: 1; }
  70% { transform: scaleY(0.9) scaleX(1.1); opacity: 0.8; }
  100% { transform: scaleY(1.05) scaleX(0.95); opacity: 0.95; }
}

/* boars-head-tavern-francis-pois-call */
.scn-boars-head-tavern-francis-pois-call {
  background:
    radial-gradient(ellipse at 50% 50%, #6a3a1a 0%, transparent 30%),
    linear-gradient(180deg, #1a0e06 0%, #0e0602 100%);
}
.scn-boars-head-tavern-francis-pois-call .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 30%;
  background: linear-gradient(180deg, #2c1a0e 0%, #1a0e06 100%);
  border-radius: 20% 20% 0 0;
}
.scn-boars-head-tavern-francis-pois-call .barrel {
  position: absolute;
  bottom: 20%;
  left: 10%;
  width: 40px;
  height: 50px;
  background: linear-gradient(180deg, #4a2a12 0%, #2c1a0e 100%);
  border-radius: 20% 20% 20% 20% / 30% 30% 30% 30%;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.5);
}
.scn-boars-head-tavern-francis-pois-call .figure-hal-call {
  position: absolute;
  bottom: 22%;
  left: 45%;
  width: 22px;
  height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bht3-speak 2s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-francis-pois-call .figure-francis {
  position: absolute;
  bottom: 22%;
  left: 55%;
  width: 18px;
  height: 38px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0606 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bht3-turned 3s ease-in-out infinite;
}
.scn-boars-head-tavern-francis-pois-call .figure-poins-call {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 18px;
  height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.9) translateY(4px);
  animation: bht3-hide 4s ease-in-out infinite;
}
.scn-boars-head-tavern-francis-pois-call .mug-2 {
  position: absolute;
  bottom: 28%;
  left: 48%;
  width: 20px;
  height: 26px;
  background: linear-gradient(180deg, #7a5a2a 0%, #4a3016 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: inset -4px 0 6px rgba(0,0,0,0.4);
  transform: rotate(8deg);
  animation: bht3-shake 1.5s ease-in-out infinite;
}
.scn-boars-head-tavern-francis-pois-call .lantern {
  position: absolute;
  top: 20%;
  left: 70%;
  width: 10px;
  height: 14px;
  background: radial-gradient(circle, #ffd060 0%, #a06020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px #d08030;
  animation: bht3-sway 3s ease-in-out infinite;
}
.scn-boars-head-tavern-francis-pois-call .shadow-cast {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 80%;
  background: linear-gradient(180deg, transparent 0%, rgba(8,4,2,0.7) 100%);
}
@keyframes bht3-speak {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes bht3-turned {
  0% { transform: translateX(0) rotate(0deg); }
  40% { transform: translateX(8px) rotate(10deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bht3-hide {
  0% { opacity: 0.5; transform: scale(0.9) translateY(4px); }
  50% { opacity: 1; transform: scale(1) translateY(0); }
  100% { opacity: 0.5; transform: scale(0.9) translateY(4px); }
}
@keyframes bht3-shake {
  0% { transform: rotate(8deg) translateX(0); }
  30% { transform: rotate(5deg) translateX(-2px); }
  60% { transform: rotate(10deg) translateX(2px); }
  100% { transform: rotate(8deg) translateX(0); }
}
@keyframes bht3-sway {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-3deg); }
}

/* boars-head-tavern-long-lease */
.scn-boars-head-tavern-long-lease {
  background:
    radial-gradient(ellipse at 50% 70%, #8a4a1a 0%, transparent 40%),
    linear-gradient(180deg, #1a0e06 0%, #0e0602 100%);
}
.scn-boars-head-tavern-long-lease .table-lean {
  position: absolute;
  bottom: 10%;
  left: 10%;
  width: 80%;
  height: 30%;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0e06 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 -4px 10px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(10deg);
}
.scn-boars-head-tavern-long-lease .document {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 30px;
  height: 40px;
  background: linear-gradient(180deg, #d4c8b0 0%, #a89880 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: rotate(-4deg);
  animation: bht4-unroll 6s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-long-lease .hand-fingers {
  position: absolute;
  bottom: 28%;
  left: 34%;
  width: 22px;
  height: 14px;
  background: radial-gradient(ellipse at 60% 40%, #d4a06a 0%, #b07840 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg) scaleX(0.7);
  animation: bht1-pass 3s ease-in-out infinite;
}
.scn-boars-head-tavern-long-lease .seal {
  position: absolute;
  bottom: 30%;
  left: 28%;
  width: 8px;
  height: 8px;
  background: radial-gradient(circle, #b83020 0%, #801008 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: bht4-glow 2s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-long-lease .inkwell {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 12px;
  height: 16px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
  transform: rotate(-6deg);
}
.scn-boars-head-tavern-long-lease .candle-young {
  position: absolute;
  bottom: 50%;
  left: 50%;
  width: 6px;
  height: 20px;
  background: linear-gradient(180deg, #f5d080 0%, #c08040 100%);
  border-radius: 2px;
  transform: translateX(-50%) rotate(-3deg);
  box-shadow: 0 0 30px 12px #ffaa40, 0 0 60px 24px rgba(255,170,64,0.2);
  animation: bht4-wick 2.5s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-long-lease .shadow-arms {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 70%;
  background: linear-gradient(180deg, transparent 0%, rgba(8,4,2,0.5) 100%);
  border-radius: 0;
}
@keyframes bht4-unroll {
  0% { transform: rotate(-4deg) scaleY(0.6); opacity: 0.7; }
  50% { transform: rotate(-2deg) scaleY(1); opacity: 1; }
  100% { transform: rotate(-6deg) scaleY(0.8); opacity: 0.9; }
}
@keyframes bht4-glow {
  0% { box-shadow: 0 0 4px rgba(0,0,0,0.3); }
  50% { box-shadow: 0 0 8px 2px #b84020; }
  100% { box-shadow: 0 0 4px rgba(0,0,0,0.3); }
}
@keyframes bht4-wick {
  0% { transform: translateX(-50%) rotate(-3deg) scaleY(1); opacity: 0.9; }
  30% { transform: translateX(-50%) rotate(-5deg) scaleY(1.1); opacity: 1; }
  70% { transform: translateX(-48%) rotate(-1deg) scaleY(0.95); opacity: 0.85; }
  100% { transform: translateX(-50%) rotate(-3deg) scaleY(1.02); opacity: 0.95; }
}

.scn-boars-head-tavern-what-men { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a0e05 80%), radial-gradient(ellipse at 30% 60%, #8a5a2a 0%, transparent 50%); }
.scn-boars-head-tavern-what-men .wall-back { position:absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-boars-head-tavern-what-men .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1008 0%, #0d0804 100%); }
.scn-boars-head-tavern-what-men .table { position:absolute; bottom:28%; left:15%; width:70%; height:12%; background: #3a2a1a; border-radius: 10% 10% 5% 5%; box-shadow: 0 -4px 12px rgba(0,0,0,0.6); }
.scn-boars-head-tavern-what-men .figure-fat { position:absolute; bottom:26%; left:30%; width:45px; height:60px; background: radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, #2a1a0a 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bht1-fat 4s ease-in-out infinite; }
.scn-boars-head-tavern-what-men .figure-thin { position:absolute; bottom:30%; left:55%; width:22px; height:65px; background: radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, #1a1008 70%); border-radius: 40% 40% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: bht1-thin 6s ease-in-out infinite; }
.scn-boars-head-tavern-what-men .candle-burn { position:absolute; bottom:40%; left:42%; width:6px; height:18px; background: #a06020; border-radius: 2px 2px 30% 30%; }
.scn-boars-head-tavern-what-men .glow { position:absolute; bottom:38%; left:40%; width:60px; height:60px; background: radial-gradient(circle, #f0a040 0%, rgba(240,160,64,0.3) 40%, transparent 70%); animation: bht1-glow 3s ease-in-out infinite alternate; }
.scn-boars-head-tavern-what-men .tankard { position:absolute; bottom:30%; left:70%; width:14px; height:20px; background: #5a4a3a; border-radius: 5% 5% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
@keyframes bht1-fat { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bht1-thin { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bht1-glow { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }

.scn-boars-head-tavern-three-hundred-marks { background: linear-gradient(180deg, #1a1008 0%, #2a1a0a 50%, #1a0e05 100%), radial-gradient(ellipse at 70% 50%, #7a5a3a 0%, transparent 60%); }
.scn-boars-head-tavern-three-hundred-marks .back-arch { position:absolute; bottom:30%; left:10%; width:80%; height:60%; background: radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, #1a1008 60%); border-radius: 50% 50% 0 0; }
.scn-boars-head-tavern-three-hundred-marks .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:30%; background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 10px, #2a1a0a 10px, #2a1a0a 20px); }
.scn-boars-head-tavern-three-hundred-marks .gentleman-left { position:absolute; bottom:20%; left:20%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bht2-left 5s ease-in-out infinite; }
.scn-boars-head-tavern-three-hundred-marks .gentleman-right { position:absolute; bottom:18%; left:60%; width:28px; height:75px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bht2-right 7s ease-in-out infinite; }
.scn-boars-head-tavern-three-hundred-marks .purse { position:absolute; bottom:40%; left:45%; width:16px; height:20px; background: #5a3a1a; border-radius: 30% 30% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: bht2-purse 3s ease-in-out infinite; }
.scn-boars-head-tavern-three-hundred-marks .lantern { position:absolute; bottom:55%; left:45%; width:14px; height:30px; background: #4a3a2a; border-radius: 10% 10% 20% 20%; }
.scn-boars-head-tavern-three-hundred-marks .lantern-glow { position:absolute; bottom:50%; left:40%; width:80px; height:80px; background: radial-gradient(circle, #f0a040 0%, rgba(240,160,64,0.2) 40%, transparent 70%); animation: bht2-glow 2s ease-in-out infinite alternate; }
.scn-boars-head-tavern-three-hundred-marks .cloak-stripe { position:absolute; bottom:30%; left:22%; width:4px; height:40px; background: #4a3a2a; transform: rotate(-10deg); animation: bht2-stripe 8s linear infinite; }
@keyframes bht2-left { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bht2-right { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bht2-purse { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(2px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes bht2-glow { 0% { opacity:0.5; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes bht2-stripe { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }

.scn-boars-head-tavern-oily-rascal { background: linear-gradient(180deg, #0d0804 0%, #1a1008 40%, #2a1a0a 80%), radial-gradient(ellipse at 60% 80%, #8a5a2a 0%, transparent 50%); }
.scn-boars-head-tavern-oily-rascal .arras { position:absolute; bottom:10%; left:20%; width:60%; height:75%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 5% 5% 20% 20%; animation: bht3-arras 6s ease-in-out infinite; }
.scn-boars-head-tavern-oily-rascal .arras-fold { position:absolute; bottom:15%; left:35%; width:30%; height:60%; background: linear-gradient(90deg, transparent, #3a1a0a 30%, transparent 70%); }
.scn-boars-head-tavern-oily-rascal .bulk-behind { position:absolute; bottom:18%; left:30%; width:50px; height:70px; background: #3a2a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bht3-bulk 3s ease-in-out infinite; }
.scn-boars-head-tavern-oily-rascal .searcher-body { position:absolute; bottom:12%; left:40%; width:25px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bht3-search 4s ease-in-out infinite; }
.scn-boars-head-tavern-oily-rascal .searcher-arm { position:absolute; bottom:30%; left:65%; width:5px; height:35px; background: #2a1a0a; border-radius: 30% 30% 20% 20%; transform-origin: top center; animation: bht3-arm 2s ease-in-out infinite alternate; }
.scn-boars-head-tavern-oily-rascal .floor-plank { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(0deg, #1a1008 0%, #0d0804 100%); box-shadow: inset 0 2px 4px rgba(0,0,0,0.8); }
.scn-boars-head-tavern-oily-rascal .spitoon { position:absolute; bottom:5%; left:70%; width:15px; height:10px; background: #3a2a1a; border-radius: 50% 50% 30% 30%; }
.scn-boars-head-tavern-oily-rascal .table-edge { position:absolute; bottom:25%; left:10%; width:80%; height:2px; background: #4a3a2a; }
@keyframes bht3-arras { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bht3-bulk { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes bht3-search { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bht3-arm { 0% { transform: rotate(0deg); } 100% { transform: rotate(20deg); } }

.scn-boars-head-tavern-reckoning-list { background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 50%, #0d0804 100%), radial-gradient(ellipse at 40% 70%, #7a5a3a 0%, transparent 50%); }
.scn-boars-head-tavern-reckoning-list .wall-panel { position:absolute; inset: 0 0 25% 0; background: repeating-linear-gradient(0deg, #3a2a1a 0px, #3a2a1a 4px, #2a1a0a 4px, #2a1a0a 8px); }
.scn-boars-head-tavern-reckoning-list .bench { position:absolute; bottom:15%; left:0; right:0; height:8%; background: #4a3a2a; border-radius: 10% 10% 5% 5%; }
.scn-boars-head-tavern-reckoning-list .figure-seated { position:absolute; bottom:18%; left:25%; width:40px; height:55px; background: radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, #1a1008 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bht4-seated 5s ease-in-out infinite; }
.scn-boars-head-tavern-reckoning-list .figure-reading { position:absolute; bottom:22%; left:55%; width:25px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bht4-reading 6s ease-in-out infinite; }
.scn-boars-head-tavern-reckoning-list .paper { position:absolute; bottom:40%; left:58%; width:18px; height:22px; background: #c8b090; border-radius: 2px; transform: rotate(5deg); box-shadow: 0 1px 3px rgba(0,0,0,0.5); animation: bht4-paper 4s ease-in-out infinite alternate; }
.scn-boars-head-tavern-reckoning-list .candle { position:absolute; bottom:36%; left:45%; width:4px; height:20px; background: #a06020; border-radius: 2px 2px 30% 30%; }
.scn-boars-head-tavern-reckoning-list .mug { position:absolute; bottom:20%; left:35%; width:12px; height:18px; background: #5a4a3a; border-radius: 0 0 30% 30%; }
.scn-boars-head-tavern-reckoning-list .flame-glow { position:absolute; bottom:35%; left:42%; width:50px; height:50px; background: radial-gradient(circle, #f0a040 0%, rgba(240,160,64,0.2) 30%, transparent 60%); animation: bht4-flame 2s ease-in-out infinite alternate; }
@keyframes bht4-seated { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bht4-reading { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bht4-paper { 0% { transform: rotate(5deg) translateY(0); } 100% { transform: rotate(5deg) translateY(-2px); } }
@keyframes bht4-flame { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }

.scn-field-king-victory {
  background:
    radial-gradient(ellipse at 30% 0%, #ffd27f 0%, transparent 50%),
    linear-gradient(180deg, #87ceeb 0%, #f0e6b0 40%, #7a5c3a 100%);
}
.scn-field-king-victory .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #b0d4f1 0%, rgba(255,210,127,0.3) 100%);
  animation: fkv-sky 12s ease-in-out infinite alternate;
}
.scn-field-king-victory .sun {
  position: absolute; top: 8%; left: 20%; width: 80px; height: 80px;
  background: radial-gradient(circle at center, #fff7d0 0%, #ffe88a 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,232,138,0.5);
  animation: fkv-sun 6s ease-in-out infinite;
}
.scn-field-king-victory .hill {
  position: absolute; bottom: 30%; left: 20%; right: 30%; height: 50%;
  background: linear-gradient(180deg, #8b6f4a 0%, #5e4a2e 100%);
  border-radius: 40% 60% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: fkv-hill 15s ease-in-out infinite alternate;
}
.scn-field-king-victory .king {
  position: absolute; bottom: 35%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2510 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fkv-figure 4s ease-in-out infinite;
}
.scn-field-king-victory .prince {
  position: absolute; bottom: 35%; left: 43%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #8b6f4a 0%, #5e4a2e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fkv-figure 4s ease-in-out infinite 0.5s;
}
.scn-field-king-victory .banner-left {
  position: absolute; bottom: 38%; left: 28%; width: 6px; height: 50px;
  background: #4a3010;
}
.scn-field-king-victory .banner-left::after {
  content: ''; position: absolute; top: 0; left: 6px; width: 30px; height: 24px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 0 8px 8px 0;
  animation: fkv-flag 3s ease-in-out infinite;
}
.scn-field-king-victory .banner-right {
  position: absolute; bottom: 38%; right: 30%; width: 6px; height: 50px;
  background: #4a3010;
}
.scn-field-king-victory .banner-right::after {
  content: ''; position: absolute; top: 0; left: 0; width: 30px; height: 24px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 8px 0 0 8px;
  transform-origin: right center;
  animation: fkv-flag 3s ease-in-out infinite 1s;
}
.scn-field-king-victory .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6e5a3a 0%, #3d2e1a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
@keyframes fkv-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes fkv-sun { 0%,100% { transform: scale(1) } 50% { transform: scale(1.05) translateY(-2px) } }
@keyframes fkv-hill { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(1px) } }
@keyframes fkv-figure { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-2px) rotate(0) } }
@keyframes fkv-flag { 0%,100% { transform: skewX(0) } 50% { transform: skewX(-8deg) } }

.scn-field-king-sentences {
  background:
    radial-gradient(ellipse at 40% 0%, #ffe066 0%, transparent 60%),
    linear-gradient(180deg, #b0c4de 0%, #d4c9a8 40%, #7a5c3a 100%);
}
.scn-field-king-sentences .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #a0b8d6 0%, rgba(255,224,102,0.2) 100%);
  animation: fks-sky 10s ease-in-out infinite alternate;
}
.scn-field-king-sentences .sun-glare {
  position: absolute; top: 5%; left: 50%; width: 90px; height: 90px;
  background: radial-gradient(circle at center, #ffe88a 0%, #ffd27f 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,210,127,0.4);
  animation: fks-glare 4s ease-in-out infinite;
}
.scn-field-king-sentences .throne {
  position: absolute; bottom: 30%; left: 35%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #5e4a2e 0%, #3a2510 100%);
  border-radius: 4px 4px 10px 10px;
  box-shadow: 4px 0 10px rgba(0,0,0,0.5);
}
.scn-field-king-sentences .king {
  position: absolute; bottom: 34%; left: 38%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #4a3010 0%, #2a1a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fks-king 3s ease-in-out infinite;
}
.scn-field-king-sentences .guard-left {
  position: absolute; bottom: 30%; left: 22%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #6b8e6b 0%, #3a5a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: fks-guard 2s ease-in-out infinite;
}
.scn-field-king-sentences .guard-right {
  position: absolute; bottom: 30%; right: 22%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #6b8e6b 0%, #3a5a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: fks-guard 2s ease-in-out infinite 0.3s;
}
.scn-field-king-sentences .prisoner1 {
  position: absolute; bottom: 28%; left: 16%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #5e4a2e 0%, #3a2510 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  animation: fks-walk 4s ease-in-out infinite;
}
.scn-field-king-sentences .prisoner2 {
  position: absolute; bottom: 28%; right: 16%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #5e4a2e 0%, #3a2510 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  animation: fks-walk 4s ease-in-out infinite 2s;
}
.scn-field-king-sentences .shadow-bar {
  position: absolute; bottom: 32%; left: 0; right: 0; height: 4px;
  background: rgba(0,0,0,0.3);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: fks-shadow 5s ease-in-out infinite;
}
@keyframes fks-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes fks-glare { 0%,100% { transform: scale(1) } 50% { transform: scale(1.08) rotate(2deg) } }
@keyframes fks-king { 0%,100% { transform: rotate(0) } 50% { transform: rotate(5deg) } }
@keyframes fks-guard { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes fks-walk { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(-3deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fks-shadow { 0%,100% { opacity:0.3 } 50% { opacity:0.6 } }

.scn-field-hal-reports-douglas {
  background:
    radial-gradient(ellipse at 50% 20%, #f0c068 0%, transparent 60%),
    linear-gradient(180deg, #6b4a2e 0%, #4a3010 50%, #2a1a08 100%);
}
.scn-field-hal-reports-douglas .tent-back {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a08 100%);
  border-radius: 20% 20% 0 0;
}
.scn-field-hal-reports-douglas .tent-flap {
  position: absolute; bottom: 0; left: 50%; width: 80%; height: 80%;
  background: linear-gradient(135deg, #6b4a2e 0%, #4a3010 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  transform: translateX(-50%);
  animation: fhd-flap 8s ease-in-out infinite alternate;
}
.scn-field-hal-reports-douglas .lamp {
  position: absolute; top: 20%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle at center, #ffd27f 0%, #d49a4a 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(212,154,74,0.6);
  animation: fhd-lamp 3s ease-in-out infinite alternate;
}
.scn-field-hal-reports-douglas .hal {
  position: absolute; bottom: 18%; left: 38%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #8b6f4a 0%, #5e4a2e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: fhd-figure 5s ease-in-out infinite;
}
.scn-field-hal-reports-douglas .douglas {
  position: absolute; bottom: 18%; left: 50%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #5e4a2e 0%, #3a2510 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fhd-figure 5s ease-in-out infinite 0.8s;
}
.scn-field-hal-reports-douglas .table {
  position: absolute; bottom: 15%; left: 40%; width: 40px; height: 10px;
  background: linear-gradient(180deg, #4a3010 0%, #2a1a08 100%);
  border-radius: 4px;
}
.scn-field-hal-reports-douglas .map {
  position: absolute; bottom: 18%; left: 43%; width: 18px; height: 14px;
  background: linear-gradient(135deg, #b8a88a 0%, #a0846a 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  animation: fhd-map 6s ease-in-out infinite;
}
@keyframes fhd-flap { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(0.98) } 100% { transform: translateX(-50%) scaleX(1) } }
@keyframes fhd-lamp { 0% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.9; transform: scale(0.95) } }
@keyframes fhd-figure { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(-2deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes fhd-map { 0%,100% { transform: rotate(5deg) } 50% { transform: rotate(8deg) } }

.scn-field-king-consents {
  background:
    radial-gradient(ellipse at 30% 10%, #ffd27f 0%, transparent 60%),
    linear-gradient(180deg, #87ceeb 0%, #f0e6b0 40%, #7a5c3a 100%);
}
.scn-field-king-consents .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b0d4f1 0%, rgba(255,210,127,0.4) 100%);
  animation: fkc-sky 14s ease-in-out infinite alternate;
}
.scn-field-king-consents .sun {
  position: absolute; top: 4%; left: 25%; width: 70px; height: 70px;
  background: radial-gradient(circle at center, #fff7d0 0%, #ffe88a 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 15px rgba(255,232,138,0.4);
  animation: fkc-sun 7s ease-in-out infinite;
}
.scn-field-king-consents .horizon {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #a0846a 0%, #7a5c3a 100%);
  border-radius: 30% 30% 0 0 / 100% 100% 0 0;
}
.scn-field-king-consents .king {
  position: absolute; bottom: 35%; left: 25%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #4a3010 0%, #2a1a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: fkc-figure 5s ease-in-out infinite;
}
.scn-field-king-consents .john {
  position: absolute; bottom: 35%; left: 40%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #6b4a2e 0%, #4a3010 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: fkc-figure 5s ease-in-out infinite 0.6s;
}
.scn-field-king-consents .westmoreland {
  position: absolute; bottom: 35%; left: 52%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #6b4a2e 0%, #4a3010 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: fkc-figure 5s ease-in-out infinite 1.2s;
}
.scn-field-king-consents .douglas {
  position: absolute; bottom: 35%; left: 62%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #5e4a2e 0%, #3a2510 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: fkc-douglas 6s ease-in-out infinite;
}
.scn-field-king-consents .banner {
  position: absolute; bottom: 38%; left: 70%; width: 6px; height: 50px;
  background: #4a3010;
}
.scn-field-king-consents .banner::after {
  content: ''; position: absolute; top: 0; left: 6px; width: 28px; height: 22px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 0 8px 8px 0;
  animation: fkc-flag 3s ease-in-out infinite;
}
@keyframes fkc-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes fkc-sun { 0%,100% { transform: scale(1) } 50% { transform: scale(1.05) translateY(-1px) } }
@keyframes fkc-figure { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(-1deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes fkc-douglas { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(-2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(2deg) } }
@keyframes fkc-flag { 0%,100% { transform: skewX(0) } 50% { transform: skewX(-6deg) } }

.scn-london-palace-blunt-arrival {
  background:
    linear-gradient(180deg, #e8d5b7 0%, #c4a87c 40%, #8b7355 100%),
    radial-gradient(circle at 70% 30%, #f0e0c0 0%, transparent 60%);
}
.scn-london-palace-blunt-arrival .wall-back { position:absolute; inset:0 0 35% 0; background:linear-gradient(135deg, #d8c4a0, #b89e7a); border-radius:0 0 20% 20%; }
.scn-london-palace-blunt-arrival .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(0deg, #6b4f32, #8a6a4a 80%); }
.scn-london-palace-blunt-arrival .archway { position:absolute; bottom:35%; left:50%; width:120px; height:100px; transform:translateX(-50%); background:radial-gradient(ellipse at 50% 100%, #2a1e12 0%, transparent 70%); border-radius:50% 50% 0 0; }
.scn-london-palace-blunt-arrival .light-beam { position:absolute; top:10%; left:45%; width:60%; height:20%; background:linear-gradient(135deg, rgba(255,240,200,0.3), transparent); transform:skewY(-10deg); animation:lpb1-light 4s ease-in-out infinite alternate; }
.scn-london-palace-blunt-arrival .figure-arrival { position:absolute; bottom:30%; left:30%; width:20px; height:45px; background:linear-gradient(180deg, #5a3e22, #2a1a0e); border-radius:30% 30% 20% 20%/40% 40% 30% 30%; transform-origin:bottom; animation:lpb1-walk 3s ease-in-out infinite; }
.scn-london-palace-blunt-arrival .horse-shadow { position:absolute; bottom:25%; left:25%; width:40px; height:25px; background:radial-gradient(ellipse at 50% 100%, rgba(30,20,10,0.5), transparent); border-radius:50%; animation:lpb1-horse 6s ease-in-out infinite; }
.scn-london-palace-blunt-arrival .dust-particles { position:absolute; inset:0; background:radial-gradient(circle at 30% 70%, rgba(200,180,150,0.2) 0%, transparent 50%); filter:blur(3px); animation:lpb1-dust 8s ease-in-out infinite; }
@keyframes lpb1-light { 0% { opacity:0.5; transform:skewY(-10deg) scaleX(1); } 50% { opacity:0.9; transform:skewY(-8deg) scaleX(1.05); } 100% { opacity:0.6; transform:skewY(-12deg) scaleX(0.95); } }
@keyframes lpb1-walk { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(10px) rotate(2deg); } 50% { transform:translateX(20px) rotate(-1deg); } 75% { transform:translateX(30px) rotate(1deg); } 100% { transform:translateX(40px) rotate(0deg); } }
@keyframes lpb1-horse { 0%,100% { transform:scaleX(1); } 50% { transform:scaleX(1.2) translateY(-2px); } }
@keyframes lpb1-dust { 0% { opacity:0.2; transform:translateY(0); } 50% { opacity:0.6; transform:translateY(-10px); } 100% { opacity:0.3; transform:translateY(5px); } }

.scn-london-palace-victory-news {
  background:
    linear-gradient(180deg, #e0c8a8 0%, #b09070 50%, #806050 100%),
    radial-gradient(circle at 60% 40%, #f0e0c0 0%, transparent 60%);
}
.scn-london-palace-victory-news .wall-back { position:absolute; inset:0 0 30% 0; background:linear-gradient(135deg, #d0b890, #b09878); }
.scn-london-palace-victory-news .throne { position:absolute; bottom:30%; left:50%; width:100px; height:120px; transform:translateX(-50%); background:linear-gradient(180deg, #a08060, #6a4f3a); border-radius:10% 10% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,0.4); }
.scn-london-palace-victory-news .figure-king { position:absolute; bottom:35%; left:46%; width:25px; height:60px; background:linear-gradient(180deg, #4a3525, #2a1a0e); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; animation:lpv2-king 4s ease-in-out infinite alternate; }
.scn-london-palace-victory-news .herald-figure { position:absolute; bottom:30%; left:65%; width:18px; height:40px; background:linear-gradient(180deg, #6a4a2e, #3a2a18); border-radius:40% 40% 30% 30%/50% 50% 35% 35%; animation:lpv2-herald 3s ease-in-out infinite; }
.scn-london-palace-victory-news .banner-left { position:absolute; top:15%; left:20%; width:8px; height:60px; background:#a08050; border-radius:2px; transform-origin:top; animation:lpv2-banner 5s ease-in-out infinite; }
.scn-london-palace-victory-news .banner-right { position:absolute; top:15%; right:20%; width:8px; height:60px; background:#a08050; border-radius:2px; transform-origin:top; animation:lpv2-banner 5s ease-in-out infinite reverse; }
.scn-london-palace-victory-news .news-scroll { position:absolute; bottom:38%; left:58%; width:30px; height:10px; background:linear-gradient(90deg, #d8b890, #b09870); border-radius:30%; animation:lpv2-scroll 6s ease-in-out infinite; }
@keyframes lpv2-king { 0% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-4px) rotate(2deg); } 100% { transform:translateY(2px) rotate(0deg); } }
@keyframes lpv2-herald { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(8px) rotate(5deg); } 100% { transform:translateX(-8px) rotate(-3deg); } }
@keyframes lpv2-banner { 0%,100% { transform:rotate(-10deg); } 50% { transform:rotate(15deg); } }
@keyframes lpv2-scroll { 0% { transform:scaleX(1) translateY(0); } 50% { transform:scaleX(1.3) translateY(-3px); } 100% { transform:scaleX(0.9) translateY(2px); } }

.scn-london-palace-king-envy {
  background:
    linear-gradient(180deg, #c8b090 0%, #a08060 40%, #604030 100%),
    radial-gradient(circle at 30% 20%, #f0d0b0 0%, transparent 50%);
}
.scn-london-palace-king-envy .wall-back { position:absolute; inset:0 0 30% 0; background:linear-gradient(135deg, #b09878, #806040); }
.scn-london-palace-king-envy .window-blinds { position:absolute; top:8%; left:30%; width:40%; height:5%; background:linear-gradient(90deg, rgba(80,60,40,0.8) 0%, transparent 50%, rgba(80,60,40,0.8) 100%); animation:lpk3-blinds 3s ease-in-out infinite alternate; }
.scn-london-palace-king-envy .throne { position:absolute; bottom:30%; left:40%; width:100px; height:110px; background:linear-gradient(180deg, #8a6a4a, #5a4028); border-radius:10% 10% 5% 5%; transform:rotate(3deg); }
.scn-london-palace-king-envy .figure-king-sitting { position:absolute; bottom:34%; left:43%; width:30px; height:50px; background:linear-gradient(180deg, #3a2a1a, #1a0e08); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform:rotate(5deg); animation:lpk3-sit 5s ease-in-out infinite; }
.scn-london-palace-king-envy .shadow-hotspur { position:absolute; bottom:30%; right:15%; width:25px; height:55px; background:linear-gradient(180deg, rgba(20,10,5,0.8), transparent); border-radius:40% 40% 30% 30%; filter:blur(4px); animation:lpk3-shadow 7s ease-in-out infinite; }
.scn-london-palace-king-envy .sharp-light { position:absolute; top:5%; left:20%; width:60%; height:40%; background:linear-gradient(135deg, rgba(240,220,180,0.2), transparent); clip-path:polygon(0 0, 100% 0, 60% 100%, 20% 100%); animation:lpk3-light 4s ease-in-out infinite alternate; }
.scn-london-palace-king-envy .envy-glare { position:absolute; top:30%; left:35%; width:10px; height:10px; background:radial-gradient(circle, #e0c080 0%, transparent 70%); border-radius:50%; animation:lpk3-glare 2s ease-in-out infinite; }
@keyframes lpk3-blinds { 0% { opacity:0.7; transform:scaleY(1); } 100% { opacity:1; transform:scaleY(1.05); } }
@keyframes lpk3-sit { 0%,100% { transform:rotate(5deg) translateY(0); } 50% { transform:rotate(8deg) translateY(-3px); } }
@keyframes lpk3-shadow { 0% { opacity:0.3; transform:translateX(0); } 50% { opacity:0.7; transform:translateX(10px); } 100% { opacity:0.4; transform:translateX(-5px); } }
@keyframes lpk3-light { 0% { opacity:0.1; } 50% { opacity:0.5; } 100% { opacity:0.2; } }
@keyframes lpk3-glare { 0%,100% { opacity:0.3; transform:scale(1); } 50% { opacity:0.9; transform:scale(2); } }

.scn-london-palace-king-fantasy {
  background:
    linear-gradient(180deg, #1a1820 0%, #2c2840 40%, #181428 100%),
    radial-gradient(circle at 50% 20%, #3a3a60 0%, transparent 60%);
}
.scn-london-palace-king-fantasy .bg-dark { position:absolute; inset:0; background:linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); }
.scn-london-palace-king-fantasy .cradle-left { position:absolute; bottom:25%; left:25%; width:40px; height:35px; background:linear-gradient(180deg, #604030 0%, #3a2a18 100%); border-radius:40% 40% 20% 20%; transform:rotate(-5deg); transform-origin:bottom center; animation:lpf4-cradle 4s ease-in-out infinite alternate; }
.scn-london-palace-king-fantasy .cradle-right { position:absolute; bottom:25%; right:25%; width:40px; height:35px; background:linear-gradient(180deg, #604030 0%, #3a2a18 100%); border-radius:40% 40% 20% 20%; transform:rotate(5deg); transform-origin:bottom center; animation:lpf4-cradle 4s ease-in-out infinite alternate-reverse; }
.scn-london-palace-king-fantasy .fairy-figure { position:absolute; top:30%; left:45%; width:15px; height:25px; background:radial-gradient(circle at 50% 50%, #a0c0e0 0%, #5070a0 100%); border-radius:50% 50% 40% 40%/70% 70% 40% 40%; filter:blur(1px); animation:lpf4-fairy 5s ease-in-out infinite; }
.scn-london-palace-king-fantasy .glow-magic { position:absolute; top:25%; left:40%; width:30%; height:40%; background:radial-gradient(circle, rgba(160,200,240,0.15) 0%, transparent 70%); animation:lpf4-glow 3s ease-in-out infinite alternate; }
.scn-london-palace-king-fantasy .stars { position:absolute; inset:0; background: radial-gradient(2px 2px at 20% 30%, #fff, transparent), radial-gradient(2px 2px at 70% 15%, #fff, transparent), radial-gradient(1px 1px at 40% 60%, #fff, transparent), radial-gradient(1px 1px at 85% 40%, #fff, transparent); background-size: 200px 200px; animation:lpf4-stars 20s linear infinite; }
.scn-london-palace-king-fantasy .moon-crescent { position:absolute; top:8%; right:15%; width:30px; height:30px; background:radial-gradient(circle at 30% 50%, transparent 30%, #e0d8c0 31%); border-radius:50%; animation:lpf4-moon 12s ease-in-out infinite alternate; }
.scn-london-palace-king-fantasy .exchange-sparkle { position:absolute; top:35%; left:45%; width:8px; height:8px; background:radial-gradient(circle, #ffe090 0%, transparent 80%); border-radius:50%; animation:lpf4-sparkle 2s ease-in-out infinite; }
@keyframes lpf4-cradle { 0% { transform:rotate(-10deg); } 50% { transform:rotate(0deg); } 100% { transform:rotate(10deg); } }
@keyframes lpf4-fairy { 0% { transform:translate(0,0) scale(1); opacity:0.6; } 50% { transform:translate(15px,-20px) scale(1.2); opacity:1; } 100% { transform:translate(-10px,-5px) scale(0.9); opacity:0.8; } }
@keyframes lpf4-glow { 0% { opacity:0.1; transform:scale(1); } 100% { opacity:0.4; transform:scale(1.2); } }
@keyframes lpf4-stars { 0% { background-position: 0 0; } 100% { background-position: 200px 200px; } }
@keyframes lpf4-moon { 0% { transform:translateY(0); } 100% { transform:translateY(10px); } }
@keyframes lpf4-sparkle { 0%,100% { opacity:0; transform:scale(0.5); } 50% { opacity:1; transform:scale(1.5); } }

/* rochester-inn-yard-share-purchase */
.scn-rochester-inn-yard-share-purchase {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #4a3a6e 100%), radial-gradient(ellipse at 60% 100%, #4a3a6e 0%, transparent 70%);
}
.scn-rochester-inn-yard-share-purchase .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%); animation: ri-sky 12s ease-in-out infinite alternate; }
.scn-rochester-inn-yard-share-purchase .inn-wall { position:absolute; bottom:25%; left:15%; right:40%; height:55%; background: linear-gradient(90deg, #4a2a2a 0%, #3a1a1a 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); animation: ri-wall 8s ease-in-out infinite; }
.scn-rochester-inn-yard-share-purchase .stable { position:absolute; bottom:25%; right:10%; width:30%; height:45%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: ri-stable 6s ease-in-out infinite; }
.scn-rochester-inn-yard-share-purchase .horse { position:absolute; bottom:28%; left:35%; width:30px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ri-horse 3s ease-in-out infinite; }
.scn-rochester-inn-yard-share-purchase .figure-left { position:absolute; bottom:24%; left:25%; width:18px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ri-fig-l 5s ease-in-out infinite; }
.scn-rochester-inn-yard-share-purchase .figure-right { position:absolute; bottom:24%; left:42%; width:18px; height:40px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ri-fig-r 5s ease-in-out infinite; }
.scn-rochester-inn-yard-share-purchase .lantern { position:absolute; bottom:32%; left:50%; width:8px; height:12px; background:#ffd060; border-radius:30% 30% 20% 20%; box-shadow: 0 0 20px 6px #ffd060, 0 0 40px 12px rgba(255,208,96,.5); animation: ri-lantern 4s ease-in-out infinite; }
.scn-rochester-inn-yard-share-purchase .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius:20% 20% 0 0; }
@keyframes ri-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ri-wall { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ri-stable { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes ri-horse { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-3px) rotate(3deg) } 60% { transform: translateY(-1px) rotate(-2deg) } }
@keyframes ri-fig-l { 0%,100% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(6px) rotate(-1deg) } 75% { transform: translateX(9px) rotate(3deg) } }
@keyframes ri-fig-r { 0%,100% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(-6px) rotate(1deg) } 75% { transform: translateX(-9px) rotate(-3deg) } }
@keyframes ri-lantern { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }

/* highway-gadshill-hal-poins-hide */
.scn-highway-gadshill-hal-poins-hide {
  background: linear-gradient(180deg, #102030 0%, #1a2a3a 50%, #0a1a2a 100%), radial-gradient(ellipse at 30% 80%, #1a2a3a 0%, transparent 60%);
}
.scn-highway-gadshill-hal-poins-hide .night-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #1a2a3a 0%, transparent 100%); animation: hg1-sky 15s ease-in-out infinite alternate; }
.scn-highway-gadshill-hal-poins-hide .road { position:absolute; bottom:10%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius:50% 50% 0 0; box-shadow: inset 0 10px 15px rgba(0,0,0,.5); }
.scn-highway-gadshill-hal-poins-hide .bush-left { position:absolute; bottom:22%; left:5%; width:22%; height:30%; background: linear-gradient(180deg, #1a3a1a 0%, #0a2a0a 100%); border-radius:50% 50% 20% 20%; animation: hg1-bush 10s ease-in-out infinite; }
.scn-highway-gadshill-hal-poins-hide .bush-right { position:absolute; bottom:22%; right:5%; width:22%; height:30%; background: linear-gradient(180deg, #1a3a1a 0%, #0a2a0a 100%); border-radius:50% 50% 20% 20%; animation: hg1-bush 10s ease-in-out infinite reverse; }
.scn-highway-gadshill-hal-poins-hide .hider-left { position:absolute; bottom:28%; left:12%; width:20px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hg1-hide 4s ease-in-out infinite; }
.scn-highway-gadshill-hal-poins-hide .hider-right { position:absolute; bottom:28%; right:12%; width:20px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hg1-hide 4s ease-in-out infinite reverse; }
.scn-highway-gadshill-hal-poins-hide .falstaff { position:absolute; bottom:12%; left:45%; width:40px; height:55px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hg1-falstaff 3s ease-in-out infinite; }
.scn-highway-gadshill-hal-poins-hide .dagger { position:absolute; bottom:25%; left:52%; width:4px; height:18px; background: #a0a0a0; border-radius:10% 10% 20% 20%; transform: rotate(-30deg); animation: hg1-dagger 2s ease-in-out infinite; }
@keyframes hg1-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes hg1-bush { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } }
@keyframes hg1-hide { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-5px) rotate(2deg) } }
@keyframes hg1-falstaff { 0%,100% { transform: translateX(0) rotate(-1deg) } 30% { transform: translateX(-8px) rotate(3deg) } 60% { transform: translateX(4px) rotate(-2deg) } }
@keyframes hg1-dagger { 0%,100% { transform: rotate(-30deg) } 50% { transform: rotate(-15deg) } }

/* highway-gadshill-accursed-company */
.scn-highway-gadshill-accursed-company {
  background: linear-gradient(180deg, #151025 0%, #201530 50%, #2a1a3a 100%), radial-gradient(ellipse at 80% 20%, #2a1a3a 0%, transparent 50%);
}
.scn-highway-gadshill-accursed-company .bg-woods { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); animation: hg2-woods 20s ease-in-out infinite alternate; }
.scn-highway-gadshill-accursed-company .path { position:absolute; bottom:0; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius:30% 30% 0 0; }
.scn-highway-gadshill-accursed-company .falstaff-body { position:absolute; bottom:15%; left:35%; width:45px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hg2-body 4s ease-in-out infinite; }
.scn-highway-gadshill-accursed-company .falstaff-arm { position:absolute; bottom:35%; left:45%; width:20px; height:6px; background:#3a2a1a; border-radius:40% 20% 20% 40%; transform-origin: left center; animation: hg2-arm 3s ease-in-out infinite; }
.scn-highway-gadshill-accursed-company .distant-horse { position:absolute; bottom:22%; right:15%; width:18px; height:24px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation: hg2-horse 7s ease-in-out infinite; }
.scn-highway-gadshill-accursed-company .tied-rope { position:absolute; bottom:25%; right:20%; width:30px; height:3px; background:#5a4a3a; border-radius:50%; animation: hg2-rope 5s ease-in-out infinite; }
.scn-highway-gadshill-accursed-company .moon { position:absolute; top:10%; left:70%; width:30px; height:30px; background: radial-gradient(circle, #d0d0c0 0%, #b0b0a0 70%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(200,200,180,.3); animation: hg2-moon 12s ease-in-out infinite alternate; }
.scn-highway-gadshill-accursed-company .clouds { position:absolute; top:18%; left:10%; width:80px; height:20px; background: linear-gradient(180deg, rgba(200,200,220,.3) 0%, transparent 100%); border-radius:50%; filter: blur(5px); animation: hg2-cloud 40s linear infinite; }
@keyframes hg2-woods { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes hg2-body { 0%,100% { transform: translateY(0) rotate(-1deg) } 30% { transform: translateY(-4px) rotate(3deg) } 60% { transform: translateY(-2px) rotate(-2deg) } }
@keyframes hg2-arm { 0%,100% { transform: rotate(30deg) } 50% { transform: rotate(-20deg) } }
@keyframes hg2-horse { 0%,100% { transform: translateX(0) } 50% { transform: translateX(5px) } }
@keyframes hg2-rope { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.2) } }
@keyframes hg2-moon { 0% { transform: scale(.9) } 50% { transform: scale(1) } 100% { transform: scale(.95) } }
@keyframes hg2-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

/* highway-gadshill-medicines */
.scn-highway-gadshill-medicines {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a3a4e 100%), radial-gradient(ellipse at 50% 30%, #4a3a3e 0%, transparent 60%);
}
.scn-highway-gadshill-medicines .sky-glow { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a3e 0%, transparent 100%); animation: hg3-sky 10s ease-in-out infinite alternate; }
.scn-highway-gadshill-medicines .ground-dark { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:30% 30% 0 0; }
.scn-highway-gadshill-medicines .falstaff-big { position:absolute; bottom:20%; left:30%; width:55px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hg3-big 3s ease-in-out infinite; }
.scn-highway-gadshill-medicines .potion-bottle { position:absolute; bottom:40%; left:42%; width:14px; height:22px; background: linear-gradient(180deg, #a0d0a0 0%, #60a060 100%); border-radius:20% 20% 30% 30%; box-shadow: inset 0 -4px 6px rgba(0,0,0,.3); animation: hg3-bottle 5s ease-in-out infinite; }
.scn-highway-gadshill-medicines .potion-glow { position:absolute; bottom:38%; left:42%; width:20px; height:26px; background: radial-gradient(circle, rgba(160,208,160,.5) 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: hg3-glow 3s ease-in-out infinite alternate; }
.scn-highway-gadshill-medicines .love-heart { position:absolute; bottom:50%; left:35%; width:16px; height:14px; background: #b87878; border-radius:50% 50% 0 0; transform: rotate(45deg); box-shadow: -6px -6px 0 0 #b87878; animation: hg3-heart 2s ease-in-out infinite; }
.scn-highway-gadshill-medicines .star-small { position:absolute; top:12%; left:15%; width:6px; height:6px; background:#e0d0a0; border-radius:50%; box-shadow: 0 0 8px 2px #e0d0a0; animation: hg3-star 4s ease-in-out infinite; }
.scn-highway-gadshill-medicines .star-medium { position:absolute; top:6%; left:40%; width:8px; height:8px; background:#e0d0a0; border-radius:50%; box-shadow: 0 0 10px 3px #e0d0a0; animation: hg3-star 5s ease-in-out infinite 1s; }
.scn-highway-gadshill-medicines .star-large { position:absolute; top:15%; left:65%; width:10px; height:10px; background:#e0d0a0; border-radius:50%; box-shadow: 0 0 12px 4px #e0d0a0; animation: hg3-star 6s ease-in-out infinite 2s; }
@keyframes hg3-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes hg3-big { 0%,100% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-5px) rotate(2deg) } 50% { transform: translateY(-2px) rotate(-3deg) } 75% { transform: translateY(-4px) rotate(1deg) } }
@keyframes hg3-bottle { 0%,100% { transform: rotate(0) } 50% { transform: rotate(15deg) } }
@keyframes hg3-glow { 0% { opacity:.3; transform: scale(.8) } 100% { opacity:.7; transform: scale(1.2) } }
@keyframes hg3-heart { 0%,100% { transform: rotate(45deg) scale(1) } 50% { transform: rotate(45deg) scale(1.2) } }
@keyframes hg3-star { 0%,100% { opacity:.5; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } }

/* kings-camp-worcester-hear-me */
.scn-kings-camp-worcester-hear-me { background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #4a3a6e 100%), radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%); }
.scn-kings-camp-worcester-hear-me .dawn-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a4e 0%, #4a3a6e 40%, #6a5a7e 100%); animation: si2-sky 10s ease-in-out infinite alternate; }
.scn-kings-camp-worcester-hear-me .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-kings-camp-worcester-hear-me .tent-left { position:absolute; bottom:30%; left:15%; width:80px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); transform: perspective(150px) rotateY(-10deg); box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: si2-tent 12s ease-in-out infinite; }
.scn-kings-camp-worcester-hear-me .tent-right { position:absolute; bottom:30%; right:15%; width:90px; height:55px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); transform: perspective(150px) rotateY(10deg); box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: si2-tent 12s ease-in-out infinite 3s; }
.scn-kings-camp-worcester-hear-me .figure { position:absolute; bottom:20%; left:40%; 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; box-shadow: 0 0 10px rgba(0,0,0,.5); animation: si2-figure 4s ease-in-out infinite; }
.scn-kings-camp-worcester-hear-me .fire { position:absolute; bottom:25%; left:50%; width:20px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse at bottom, #ff8c00 0%, #ffa500 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px #ff8c00, 0 0 60px 20px rgba(255,140,0,.4); animation: si2-fire 1.5s ease-in-out infinite alternate; }
.scn-kings-camp-worcester-hear-me .banner { position:absolute; bottom:15%; left:50%; width:12px; height:30px; background: linear-gradient(180deg, #a0461a 0%, #5e1a1d 100%); border-radius: 0 0 4px 4px; transform: translateX(-50%) rotate(5deg); animation: si2-banner 6s ease-in-out infinite; }
.scn-kings-camp-worcester-hear-me .mist { position:absolute; bottom:10%; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(200,180,200,0.15) 0%, transparent 100%); filter: blur(8px); animation: si2-mist 20s ease-in-out infinite alternate; }
@keyframes si2-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes si2-tent { 0%,100% { transform: perspective(150px) rotateY(-10deg) } 50% { transform: perspective(150px) rotateY(-5deg) translateY(-2px) } }
@keyframes si2-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes si2-fire { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.2) } 100% { transform: translateX(-50%) scaleY(0.9) } }
@keyframes si2-banner { 0% { transform: translateX(-50%) rotate(5deg) } 50% { transform: translateX(-50%) rotate(-3deg) } 100% { transform: translateX(-50%) rotate(2deg) } }
@keyframes si2-mist { 0% { opacity:.2 } 50% { opacity:.4 } 100% { opacity:.1 } }

/* kings-camp-worcester-recounts */
.scn-kings-camp-worcester-recounts { background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #4a3a6e 100%), radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%); }
.scn-kings-camp-worcester-recounts .dawn-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a4e 0%, #4a3a6e 40%, #6a5a7e 100%); animation: si3-sky 10s ease-in-out infinite alternate; }
.scn-kings-camp-worcester-recounts .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-kings-camp-worcester-recounts .figure-king { position:absolute; bottom:20%; left:30%; width:20px; height:45px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 10px rgba(0,0,0,.5); animation: si3-king 6s ease-in-out infinite; }
.scn-kings-camp-worcester-recounts .figure-worcester { position:absolute; bottom:20%; right:30%; 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; box-shadow: 0 0 10px rgba(0,0,0,.5); animation: si3-worcester 4s ease-in-out infinite; }
.scn-kings-camp-worcester-recounts .broken-staff { position:absolute; bottom:15%; left:50%; width:8px; height:20px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 10%; transform: translateX(-50%) rotate(-45deg); box-shadow: 0 0 6px rgba(0,0,0,.4); animation: si3-staff 8s ease-in-out infinite alternate; }
.scn-kings-camp-worcester-recounts .scroll { position:absolute; bottom:25%; left:45%; width:30px; height:15px; background: linear-gradient(180deg, #c0a060 0%, #a08040 100%); border-radius: 20% 20% 10% 10%; transform: translateX(-50%) rotate(5deg); box-shadow: 0 0 8px rgba(0,0,0,.3); animation: si3-scroll 5s ease-in-out infinite; }
.scn-kings-camp-worcester-recounts .sunrise-glow { position:absolute; bottom:35%; left:50%; width:200px; height:100px; transform:translateX(-50%); background: radial-gradient(ellipse, #f0c068 0%, transparent 70%); border-radius: 50%; filter: blur(20px); animation: si3-glow 8s ease-in-out infinite alternate; }
@keyframes si3-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes si3-king { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes si3-worcester { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(6px) translateY(0) rotate(-2deg) } 75% { transform: translateX(9px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(12px) translateY(0) rotate(0) } }
@keyframes si3-staff { 0% { transform: translateX(-50%) rotate(-45deg) } 50% { transform: translateX(-50%) rotate(-40deg) } 100% { transform: translateX(-50%) rotate(-50deg) } }
@keyframes si3-scroll { 0%,100% { transform: translateX(-50%) rotate(5deg) } 50% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes si3-glow { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }

/* kings-camp-worcester-oath-doncaster */
.scn-kings-camp-worcester-oath-doncaster { background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #4a3a6e 100%), radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%); }
.scn-kings-camp-worcester-oath-doncaster .dawn-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a4e 0%, #4a3a6e 40%, #6a5a7e 100%); animation: si4-sky 10s ease-in-out infinite alternate; }
.scn-kings-camp-worcester-oath-doncaster .hills-distant { position:absolute; bottom:40%; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.4); animation: si4-hills 20s ease-in-out infinite alternate; }
.scn-kings-camp-worcester-oath-doncaster .castle-silhouette { position:absolute; bottom:30%; left:50%; width:100px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); clip-path: polygon(10% 100%, 10% 30%, 25% 30%, 25% 0%, 40% 0%, 40% 30%, 60% 30%, 60% 0%, 75% 0%, 75% 30%, 90% 30%, 90% 100%); animation: si4-castle 15s ease-in-out infinite; }
.scn-kings-camp-worcester-oath-doncaster .crown-ground { position:absolute; bottom:20%; left:50%; width:40px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #f0d060 0%, #c0a040 100%); clip-path: polygon(0% 100%, 15% 40%, 35% 60%, 50% 20%, 65% 60%, 85% 40%, 100% 100%); box-shadow: 0 0 20px rgba(240,208,96,.4); animation: si4-crown 6s ease-in-out infinite alternate; }
.scn-kings-camp-worcester-oath-doncaster .rain-stream { position:absolute; top:0; left:25%; width:4px; height:100%; background: linear-gradient(180deg, rgba(200,220,255,0.3) 0%, rgba(200,220,255,0.05) 100%); animation: si4-rain 2s linear infinite; }
.scn-kings-camp-worcester-oath-doncaster .wind-swirl { position:absolute; top:30%; left:10%; width:80px; height:20px; background: linear-gradient(90deg, transparent, rgba(200,220,255,0.1), transparent); border-radius: 50%; filter: blur(4px); animation: si4-wind 10s ease-in-out infinite alternate; }
@keyframes si4-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes si4-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes si4-castle { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes si4-crown { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.1) } 100% { transform: translateX(-50%) scale(0.95) } }
@keyframes si4-rain { 0% { opacity:1; transform: translateY(-100%) } 100% { opacity:0; transform: translateY(100%) } }
@keyframes si4-wind { 0% { transform: translateX(-20px) scaleX(1) } 50% { transform: translateX(20px) scaleX(1.2) } 100% { transform: translateX(-10px) scaleX(0.8) } }

/* kings-camp-king-articulate */
.scn-kings-camp-king-articulate { background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #4a3a6e 100%), radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%); }
.scn-kings-camp-king-articulate .dawn-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a4e 0%, #4a3a6e 40%, #6a5a7e 100%); animation: si5-sky 10s ease-in-out infinite alternate; }
.scn-kings-camp-king-articulate .church-columns { position:absolute; left:10%; right:10%; bottom:0; top:0; background: linear-gradient(90deg, transparent 10%, rgba(100,80,60,0.3) 10%, rgba(100,80,60,0.3) 15%, transparent 15%, transparent 85%, rgba(100,80,60,0.3) 85%, rgba(100,80,60,0.3) 90%, transparent 90%); animation: si5-columns 20s ease-in-out infinite alternate; }
.scn-kings-camp-king-articulate .proclamation-scroll { position:absolute; bottom:30%; left:50%; width:120px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #c0a060 0%, #a08040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px rgba(0,0,0,.4); animation: si5-scroll 8s ease-in-out infinite alternate; }
.scn-kings-camp-king-articulate .seal { position:absolute; bottom:35%; left:50%; width:30px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, #f0d060 0%, #c0a040 50%, #a08030 100%); border-radius: 50%; box-shadow: 0 0 15px rgba(240,208,96,.5); animation: si5-seal 3s ease-in-out infinite alternate; }
.scn-kings-camp-king-articulate .crowd-silhouettes { position:absolute; bottom:10%; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(10,10,20,0.8) 0%, rgba(10,10,20,0.6) 100%); clip-path: polygon(0% 100%, 5% 70%, 10% 100%, 15% 60%, 20% 100%, 25% 75%, 30% 100%, 35% 65%, 40% 100%, 45% 80%, 50% 100%, 55% 70%, 60% 100%, 65% 85%, 70% 100%, 75% 60%, 80% 100%, 85% 75%, 90% 100%, 95% 65%, 100% 100%); animation: si5-crowd 15s ease-in-out infinite alternate; }
.scn-kings-camp-king-articulate .morning-ray { position:absolute; top:10%; right:20%; width:200px; height:200px; background: radial-gradient(ellipse at top right, #f0c068 0%, transparent 70%); filter: blur(15px); animation: si5-ray 12s ease-in-out infinite alternate; }
@keyframes si5-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes si5-columns { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes si5-scroll { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes si5-seal { 0% { box-shadow: 0 0 10px rgba(240,208,96,.3) } 50% { box-shadow: 0 0 25px rgba(240,208,96,.7) } 100% { box-shadow: 0 0 15px rgba(240,208,96,.4) } }
@keyframes si5-crowd { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes si5-ray { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }

.scn-london-palace-king-to-north { background: linear-gradient(180deg, #f5e6d3 0%, #d4b896 50%, #b89a7a 100%), radial-gradient(ellipse at 50% 30%, rgba(255,230,180,0.3) 0%, transparent 70%); }
.scn-london-palace-king-to-north .throne { position:absolute; bottom:20%; left:50%; width:120px; height:140px; transform:translateX(-50%); background: linear-gradient(180deg, #8a5a3a 0%, #5a3a1a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 10px 30px rgba(0,0,0,0.5); }
.scn-london-palace-king-to-north .king   { position:absolute; bottom:42%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: kp-king 4s ease-in-out infinite alternate; }
.scn-london-palace-king-to-north .window { position:absolute; top:8%; left:15%; width:90px; height:120px; background: linear-gradient(180deg, #c8e0f0 0%, #a0c8e0 100%); border-radius: 4px; box-shadow: inset 0 0 20px #ffffff; }
.scn-london-palace-king-to-north .light-ray { position:absolute; top:8%; left:15%; width:90px; height:200px; background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: kp-light 8s ease-in-out infinite alternate; }
.scn-london-palace-king-to-north .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #b09070 0%, #7a5a3a 100%); }
.scn-london-palace-king-to-north .pillar-left { position:absolute; bottom:10%; left:8%; width:18px; height:70%; background: linear-gradient(180deg, #b89878 0%, #7a5a3a 100%); border-radius: 4px; }
.scn-london-palace-king-to-north .pillar-right { position:absolute; bottom:10%; right:8%; width:18px; height:70%; background: linear-gradient(180deg, #b89878 0%, #7a5a3a 100%); border-radius: 4px; }
.scn-london-palace-king-to-north .shadow { position:absolute; bottom:12%; left:35%; width:30%; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%); animation: kp-shadow 6s ease-in-out infinite alternate; }
@keyframes kp-king   { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-48%) translateY(0) rotate(0); } }
@keyframes kp-light  { 0% { opacity:0.7; transform: skewX(-5deg); } 50% { opacity:1; transform: skewX(0deg); } 100% { opacity:0.8; transform: skewX(5deg); } }
@keyframes kp-shadow { 0% { width:28%; opacity:0.3; } 50% { width:32%; opacity:0.5; } 100% { width:30%; opacity:0.4; } }

.scn-london-palace-hotspur-denial { background: linear-gradient(180deg, #e0d0c0 0%, #c8b098 50%, #a8886a 100%), radial-gradient(ellipse at 60% 40%, rgba(255,200,150,0.2) 0%, transparent 60%); }
.scn-london-palace-hotspur-denial .figure-hotspur { position:absolute; bottom:15%; left:40%; width:35px; height:70px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: hd-figure 3s ease-in-out infinite; }
.scn-london-palace-hotspur-denial .sword { position:absolute; bottom:20%; left:44%; width:4px; height:50px; background: linear-gradient(180deg, #b0a090 0%, #706050 100%); border-radius: 2px; transform: rotate(-20deg); transform-origin: bottom; animation: hd-sword 2.5s ease-in-out infinite alternate; }
.scn-london-palace-hotspur-denial .floor { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #9a7a5a 0%, #6a4a2a 100%); }
.scn-london-palace-hotspur-denial .wall  { position:absolute; top:0; left:0; right:0; bottom:18%; background: linear-gradient(180deg, #d4c0a8 0%, #b89878 100%); }
.scn-london-palace-hotspur-denial .window { position:absolute; top:5%; left:65%; width:70px; height:100px; background: linear-gradient(180deg, #b0d0e0 0%, #80a8c0 100%); border-radius: 4px; box-shadow: inset 0 0 15px #fff; }
.scn-london-palace-hotspur-denial .light-splash { position:absolute; top:5%; left:60%; width:80px; height:180px; background: linear-gradient(180deg, rgba(255,230,180,0.3) 0%, transparent 100%); clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%); animation: hd-splash 6s ease-in-out infinite alternate; }
.scn-london-palace-hotspur-denial .shadow-stripe { position:absolute; bottom:10%; left:30%; width:40%; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%); animation: hd-stripe 4s ease-in-out infinite alternate; }
@keyframes hd-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(5px) translateY(-3px) rotate(2deg); } 50% { transform: translateX(10px) translateY(0) rotate(-1deg); } 75% { transform: translateX(5px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes hd-sword  { 0% { transform: rotate(-18deg) scaleY(1); } 50% { transform: rotate(-22deg) scaleY(1.02); } 100% { transform: rotate(-20deg) scaleY(1); } }
@keyframes hd-splash { 0% { opacity:0.6; clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%); } 50% { opacity:0.9; clip-path: polygon(15% 0, 85% 0, 65% 100%, 35% 100%); } 100% { opacity:0.7; clip-path: polygon(25% 0, 75% 0, 55% 100%, 45% 100%); } }
@keyframes hd-stripe { 0% { width:38%; opacity:0.2; } 50% { width:44%; opacity:0.4; } 100% { width:40%; opacity:0.3; } }

.scn-london-palace-hotspur-pouncet-box { background: linear-gradient(180deg, #f5e6d3 0%, #d4c0a8 50%, #b89878 100%), radial-gradient(ellipse at 30% 50%, rgba(255,210,160,0.2) 0%, transparent 60%); }
.scn-london-palace-hotspur-pouncet-box .lord { position:absolute; bottom:15%; left:45%; width:30px; height:65px; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom; animation: pb-lord 2s ease-in-out infinite; }
.scn-london-palace-hotspur-pouncet-box .pouncet { position:absolute; bottom:45%; left:48%; width:8px; height:8px; background: radial-gradient(circle, #c87840 0%, #a05020 100%); border-radius: 50%; box-shadow: 0 0 10px 2px rgba(200,120,64,0.6); animation: pb-pouncet 1.5s ease-in-out infinite; }
.scn-london-palace-hotspur-pouncet-box .hand { position:absolute; bottom:40%; left:46%; width:12px; height:18px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: pb-hand 2s ease-in-out infinite alternate; }
.scn-london-palace-hotspur-pouncet-box .body { position:absolute; bottom:5%; left:55%; width:40px; height:15px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%; animation: pb-body 4s ease-in-out infinite; }
.scn-london-palace-hotspur-pouncet-box .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #a08060 0%, #6a4a2a 100%); }
.scn-london-palace-hotspur-pouncet-box .wall  { position:absolute; top:0; left:0; right:0; bottom:15%; background: linear-gradient(180deg, #e8d8c8 0%, #c8b098 100%); }
.scn-london-palace-hotspur-pouncet-box .window { position:absolute; top:6%; right:12%; width:60px; height:90px; background: linear-gradient(180deg, #c0d8e8 0%, #90b0c8 100%); border-radius: 4px; box-shadow: inset 0 0 12px #fff; }
.scn-london-palace-hotspur-pouncet-box .light-spot { position:absolute; top:6%; right:12%; width:60px; height:120px; background: linear-gradient(180deg, rgba(255,220,160,0.3) 0%, transparent 100%); clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%); animation: pb-spot 5s ease-in-out infinite alternate; }
@keyframes pb-lord   { 0% { transform: translateX(0) translateY(0) rotate(-3deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(3deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(-3px) translateY(-1px) rotate(-3deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes pb-pouncet{ 0% { transform: translate(0,0) scale(1); } 25% { transform: translate(2px,-2px) scale(1.1); } 50% { transform: translate(0,0) scale(1); } 75% { transform: translate(-2px,-1px) scale(0.9); } 100% { transform: translate(0,0) scale(1); } }
@keyframes pb-hand   { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pb-body   { 0%,100% { opacity:0.6; } 50% { opacity:0.8; } }
@keyframes pb-spot   { 0% { opacity:0.5; clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%); } 50% { opacity:0.8; clip-path: polygon(15% 0, 85% 0, 65% 100%, 35% 100%); } 100% { opacity:0.6; clip-path: polygon(25% 0, 75% 0, 55% 100%, 45% 100%); } }

.scn-london-palace-hotspur-popinjay { background: linear-gradient(180deg, #f0e0d0 0%, #d0b8a0 50%, #b09878 100%), radial-gradient(ellipse at 40% 40%, rgba(255,220,170,0.2) 0%, transparent 60%); }
.scn-london-palace-hotspur-popinjay .popinjay { position:absolute; bottom:20%; left:35%; width:32px; height:75px; background: linear-gradient(180deg, #7a4a2a 0%, #3a1a0a 100%); border-radius: 45% 45% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom; animation: pj-popinjay 3s ease-in-out infinite; }
.scn-london-palace-hotspur-popinjay .fan { position:absolute; bottom:60%; left:38%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 100%, #d4a070 0%, transparent 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); transform-origin: bottom center; animation: pj-fan 2.5s ease-in-out infinite alternate; }
.scn-london-palace-hotspur-popinjay .ruff { position:absolute; bottom:65%; left:33%; width:50px; height:18px; background: radial-gradient(ellipse, #f0e0c8 0%, #c8a888 60%, transparent 100%); border-radius: 50%; transform-origin: center; animation: pj-ruff 4s ease-in-out infinite; }
.scn-london-palace-hotspur-popinjay .cloak { position:absolute; bottom:15%; left:30%; width:50px; height:40px; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform-origin: bottom; animation: pj-cloak 5s ease-in-out infinite alternate; }
.scn-london-palace-hotspur-popinjay .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #9a7a5a 0%, #6a4a2a 100%); }
.scn-london-palace-hotspur-popinjay .back-panel { position:absolute; top:0; left:0; right:0; bottom:20%; background: linear-gradient(180deg, #e0d0c0 0%, #c0a888 100%); }
.scn-london-palace-hotspur-popinjay .light-beam { position:absolute; top:0; left:60%; width:80px; height:200px; background: linear-gradient(180deg, rgba(255,230,180,0.3) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%); animation: pj-beam 7s ease-in-out infinite alternate; }
.scn-london-palace-hotspur-popinjay .shadow-bird { position:absolute; bottom:30%; left:55%; width:20px; height:15px; background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 100%); border-radius: 50%; animation: pj-bird 3s ease-in-out infinite alternate; }
@keyframes pj-popinjay { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes pj-fan     { 0% { transform: rotate(-30deg) scaleX(1); } 50% { transform: rotate(0deg) scaleX(1.1); } 100% { transform: rotate(30deg) scaleX(1); } }
@keyframes pj-ruff    { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(3deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes pj-cloak   { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(3px) scaleY(1.02); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes pj-beam    { 0% { opacity:0.5; clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%); } 50% { opacity:0.8; clip-path: polygon(5% 0, 95% 0, 75% 100%, 25% 100%); } 100% { opacity:0.6; clip-path: polygon(10% 0, 90% 0, 65% 100%, 35% 100%); } }
@keyframes pj-bird    { 0% { transform: translateX(0) scale(1); opacity:0.2; } 50% { transform: translateX(-5px) scale(1.2); opacity:0.4; } 100% { transform: translateX(0) scale(1); opacity:0.3; } }

.scn-field-falstaff-claims-percy {
  background: linear-gradient(180deg, #d4e4f0 0%, #b8cfde 50%, #7a9aa8 100%),
              radial-gradient(ellipse at 50% 100%, #b8cfde 0%, transparent 70%);
}
.scn-field-falstaff-claims-percy .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #aac2d4 0%, transparent 100%);
  animation: s1-sky 14s ease-in-out infinite alternate;
}
.scn-field-falstaff-claims-percy .hills {
  position: absolute; bottom: 32%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #5a7a5a 0%, #3a5a3a 100%);
  border-radius: 50% 30% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,.35);
  animation: s1-hills 22s ease-in-out infinite alternate;
}
.scn-field-falstaff-claims-percy .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: linear-gradient(180deg, #4a6e3a 0%, #2a4a1a 100%);
  border-radius: 20% 30% 0 0 / 10% 15% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.4);
}
.scn-field-falstaff-claims-percy .body-percy {
  position: absolute; bottom: 22%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform: rotate(-15deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: s1-percy 4s ease-in-out infinite;
}
.scn-field-falstaff-claims-percy .falstaff {
  position: absolute; bottom: 18%; left: 45%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #8a6a5a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: skewX(-10deg);
  box-shadow: -10px 0 15px rgba(0,0,0,.3);
  animation: s1-falstaff 3s ease-in-out infinite;
}
.scn-field-falstaff-claims-percy .sword {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 70px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 40%, #606060 100%);
  border-radius: 4px;
  transform: rotate(30deg);
  transform-origin: bottom center;
  box-shadow: 0 0 6px rgba(255,255,255,.2);
  animation: s1-sword 2s ease-in-out infinite alternate;
}
.scn-field-falstaff-claims-percy .banner {
  position: absolute; bottom: 30%; right: 15%; width: 30px; height: 40px;
  background: linear-gradient(135deg, #c8553d 0%, #a0461a 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 0 0 10px rgba(0,0,0,.3);
  animation: s1-banner 5s ease-in-out infinite;
}
.scn-field-falstaff-claims-percy .cloud-a {
  position: absolute; top: 12%; left: 10%; width: 90px; height: 20px;
  background: rgba(255,255,255,.55);
  border-radius: 50%;
  filter: blur(8px);
  animation: s1-drift-a 40s linear infinite;
}
.scn-field-falstaff-claims-percy .cloud-b {
  position: absolute; top: 20%; right: 8%; width: 70px; height: 16px;
  background: rgba(255,255,255,.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: s1-drift-b 55s linear infinite reverse;
}
@keyframes s1-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .75 } }
@keyframes s1-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes s1-percy { 0%,100% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-12deg) translateY(-2px) } }
@keyframes s1-falstaff { 0%,100% { transform: skewX(-10deg) translateY(0) } 50% { transform: skewX(-8deg) translateY(-3px) } }
@keyframes s1-sword { 0% { transform: rotate(25deg) scaleY(1) } 100% { transform: rotate(35deg) scaleY(1.05) } }
@keyframes s1-banner { 0%,100% { transform: rotate(5deg) } 50% { transform: rotate(8deg) translateX(3px) } }
@keyframes s1-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes s1-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

.scn-field-hal-contradicts {
  background: linear-gradient(180deg, #d4e4f0 0%, #b8cfde 50%, #7a9aa8 100%),
              radial-gradient(ellipse at 70% 40%, #e0f0ff 0%, transparent 60%);
}
.scn-field-hal-contradicts .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c0d8e8 0%, transparent 100%);
  animation: s2-sky 12s ease-in-out infinite alternate;
}
.scn-field-hal-contradicts .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a6e3a 0%, #2a4a1a 100%);
  border-radius: 30% 40% 0 0 / 15% 20% 0 0;
  box-shadow: inset 0 8px 18px rgba(0,0,0,.35);
}
.scn-field-hal-contradicts .hal {
  position: absolute; bottom: 20%; left: 25%; width: 35px; height: 75px;
  background: linear-gradient(180deg, #2a4a6a 0%, #1a2a4a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: skewX(5deg);
  box-shadow: -5px 0 10px rgba(0,0,0,.3);
  animation: s2-hal 3s ease-in-out infinite;
}
.scn-field-hal-contradicts .falstaff {
  position: absolute; bottom: 18%; right: 25%; width: 55px; height: 80px;
  background: linear-gradient(180deg, #8a6a5a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: skewX(-5deg) scaleX(1.1);
  box-shadow: 10px 0 15px rgba(0,0,0,.3);
  animation: s2-falstaff 3.5s ease-in-out infinite;
}
.scn-field-hal-contradicts .spear {
  position: absolute; bottom: 25%; left: 35%; width: 6px; height: 90px;
  background: linear-gradient(180deg, #b0b0b0 0%, #707070 100%);
  border-radius: 3px;
  transform: rotate(-10deg);
  transform-origin: bottom;
  box-shadow: 0 0 4px rgba(0,0,0,.2);
  animation: s2-spear 4s ease-in-out infinite alternate;
}
.scn-field-hal-contradicts .tree-left {
  position: absolute; bottom: 30%; left: 5%; width: 20px; height: 100px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: inset -5px 0 8px rgba(0,0,0,.4);
  animation: s2-tree-l 15s ease-in-out infinite;
}
.scn-field-hal-contradicts .tree-right {
  position: absolute; bottom: 30%; right: 5%; width: 18px; height: 110px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: inset 5px 0 8px rgba(0,0,0,.4);
  animation: s2-tree-r 18s ease-in-out infinite;
}
.scn-field-hal-contradicts .shadow-hal {
  position: absolute; bottom: 18%; left: 20%; width: 30px; height: 8px;
  background: rgba(0,0,0,.2);
  border-radius: 50%;
  filter: blur(3px);
  animation: s2-shadow 3s ease-in-out infinite;
}
.scn-field-hal-contradicts .shadow-falstaff {
  position: absolute; bottom: 16%; right: 22%; width: 45px; height: 10px;
  background: rgba(0,0,0,.2);
  border-radius: 50%;
  filter: blur(3px);
  animation: s2-shadow 3.5s ease-in-out infinite reverse;
}
@keyframes s2-sky { 0%,100% { opacity: .8 } 50% { opacity: 1 } }
@keyframes s2-hal { 0%,100% { transform: skewX(5deg) translateY(0) } 50% { transform: skewX(3deg) translateY(-2px) } }
@keyframes s2-falstaff { 0%,100% { transform: skewX(-5deg) scaleX(1.1) translateY(0) } 50% { transform: skewX(-7deg) scaleX(1.12) translateY(-3px) } }
@keyframes s2-spear { 0% { transform: rotate(-8deg) } 50% { transform: rotate(-12deg) } 100% { transform: rotate(-8deg) } }
@keyframes s2-tree-l { 0%,100% { transform: rotate(0) } 50% { transform: rotate(2deg) } }
@keyframes s2-tree-r { 0%,100% { transform: rotate(0) } 50% { transform: rotate(-1.5deg) } }
@keyframes s2-shadow { 0%,100% { opacity: .3 } 50% { opacity: .5 } }

.scn-field-falstaff-lies {
  background: linear-gradient(180deg, #d4e4f0 0%, #b8cfde 50%, #7a9aa8 100%),
              radial-gradient(ellipse at 50% 50%, #fff7e0 0%, transparent 50%);
}
.scn-field-falstaff-lies .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #b0cce0 0%, transparent 100%);
  animation: s3-sky 16s ease-in-out infinite alternate;
}
.scn-field-falstaff-lies .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #4a6e3a 0%, #2a4a1a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 12px 25px rgba(0,0,0,.4);
}
.scn-field-falstaff-lies .falstaff-body {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); width: 70px; height: 90px;
  background: linear-gradient(180deg, #8a6a5a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,.4);
  animation: s3-body 4s ease-in-out infinite;
}
.scn-field-falstaff-lies .falstaff-head {
  position: absolute; bottom: 55%; left: 50%; transform: translateX(-50%); width: 35px; height: 40px;
  background: linear-gradient(180deg, #d4a88a 0%, #b08060 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  box-shadow: 0 2px 10px rgba(0,0,0,.3);
  animation: s3-head 3s ease-in-out infinite alternate;
}
.scn-field-falstaff-lies .sword {
  position: absolute; bottom: 30%; left: 40%; width: 7px; height: 80px;
  background: linear-gradient(180deg, #c8c8c8 0%, #808080 100%);
  border-radius: 3px;
  transform: rotate(15deg);
  transform-origin: bottom;
  box-shadow: 0 0 6px rgba(255,255,255,.2);
  animation: s3-sword 2.5s ease-in-out infinite alternate;
}
.scn-field-falstaff-lies .wound {
  position: absolute; bottom: 28%; left: 55%; width: 16px; height: 16px;
  background: radial-gradient(circle, #b87878 0%, #a0461a 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(160,70,26,.4);
  animation: s3-wound 1.5s ease-in-out infinite;
}
.scn-field-falstaff-lies .belt {
  position: absolute; bottom: 38%; left: 48%; width: 30px; height: 6px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: s3-belt 5s ease-in-out infinite;
}
.scn-field-falstaff-lies .cloud {
  position: absolute; top: 15%; right: 10%; width: 80px; height: 18px;
  background: rgba(255,255,255,.45);
  border-radius: 50%;
  filter: blur(7px);
  animation: s3-cloud 45s linear infinite;
}
@keyframes s3-sky { 0%,100% { opacity: .75 } 50% { opacity: 1 } }
@keyframes s3-body { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes s3-head { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(5deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes s3-sword { 0% { transform: rotate(12deg) } 100% { transform: rotate(18deg) } }
@keyframes s3-wound { 0%,100% { opacity: .7 } 50% { opacity: 1 } }
@keyframes s3-belt { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-1px) } }
@keyframes s3-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-130vw) } }

.scn-field-retreat-sounded {
  background: linear-gradient(180deg, #d4e4f0 0%, #b8cfde 50%, #7a9aa8 100%),
              radial-gradient(ellipse at 80% 30%, #ffe8b0 0%, transparent 50%);
}
.scn-field-retreat-sounded .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c0d8e8 0%, transparent 100%);
  animation: s4-sky 18s ease-in-out infinite alternate;
}
.scn-field-retreat-sounded .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a6e3a 0%, #2a4a1a 100%);
  border-radius: 20% 30% 0 0 / 10% 15% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
}
.scn-field-retreat-sounded .hal {
  position: absolute; bottom: 18%; left: 30%; width: 35px; height: 75px;
  background: linear-gradient(180deg, #2a4a6a 0%, #1a2a4a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: skewX(2deg);
  box-shadow: -5px 0 10px rgba(0,0,0,.2);
  animation: s4-hal 6s ease-in-out infinite;
}
.scn-field-retreat-sounded .lancaster {
  position: absolute; bottom: 18%; left: 45%; width: 30px; height: 72px;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: skewX(-2deg) scale(.95);
  box-shadow: 0 0 8px rgba(0,0,0,.2);
  animation: s4-lancaster 6.5s ease-in-out infinite;
}
.scn-field-retreat-sounded .trumpet {
  position: absolute; bottom: 25%; right: 25%; width: 12px; height: 40px;
  background: linear-gradient(135deg, #d0a060 0%, #a07030 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(-20deg);
  box-shadow: 0 0 8px rgba(160,112,48,.5);
  animation: s4-trumpet 4s ease-in-out infinite;
}
.scn-field-retreat-sounded .cloud-a {
  position: absolute; top: 10%; left: 5%; width: 100px; height: 22px;
  background: rgba(255,255,255,.5);
  border-radius: 50%;
  filter: blur(9px);
  animation: s4-drift-a 50s linear infinite;
}
.scn-field-retreat-sounded .cloud-b {
  position: absolute; top: 18%; right: 5%; width: 80px; height: 18px;
  background: rgba(255,255,255,.35);
  border-radius: 50%;
  filter: blur(7px);
  animation: s4-drift-b 60s linear infinite reverse;
}
.scn-field-retreat-sounded .sun {
  position: absolute; top: 8%; right: 15%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff7c0 0%, #ffe080 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,224,128,.3);
  animation: s4-sun 20s ease-in-out infinite alternate;
}
@keyframes s4-sky { 0%,100% { opacity: .8 } 50% { opacity: 1 } }
@keyframes s4-hal { 0%,100% { transform: skewX(2deg) translateY(0) } 50% { transform: skewX(0) translateY(-2px) } }
@keyframes s4-lancaster { 0%,100% { transform: skewX(-2deg) scale(.95) translateY(0) } 50% { transform: skewX(-1deg) scale(.95) translateY(-1px) } }
@keyframes s4-trumpet { 0%,100% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } }
@keyframes s4-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes s4-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }
@keyframes s4-sun { 0% { opacity: .85; transform: scale(1) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: .9; transform: scale(1) } }

/* road-coventry-prince-westmoreland */
.scn-road-coventry-prince-westmoreland {
  background: linear-gradient(180deg, #ffe07a 0%, #ffcc55 40%, #b38a4a 100%), radial-gradient(ellipse at 50% 0%, #ffe07a 0%, transparent 70%);
}
.scn-road-coventry-prince-westmoreland .sky {
  position: absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 50%, #ffe07a 100%); animation: rf1-sky 12s ease-in-out infinite alternate;
}
.scn-road-coventry-prince-westmoreland .sun {
  position: absolute; top: 10%; left: 70%; width: 50px; height: 50px; background: radial-gradient(circle, #fff7b0 0%, #ffdd44 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,221,68,0.5); animation: rf1-sun 10s ease-in-out infinite alternate;
}
.scn-road-coventry-prince-westmoreland .road {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 30%; background: linear-gradient(180deg, #b8a070 0%, #8c6e40 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,0.2); animation: rf1-road 8s ease-in-out infinite alternate;
}
.scn-road-coventry-prince-westmoreland .tree {
  position: absolute; bottom: 35%; width: 30px; height: 70px; background: linear-gradient(180deg, #5c3a1a 0%, #3a2210 100%); border-radius: 10% 10% 20% 20%;
}
.scn-road-coventry-prince-westmoreland .tree-l {
  left: 15%; height: 80px; width: 25px; animation: rf1-tree 14s ease-in-out infinite alternate;
}
.scn-road-coventry-prince-westmoreland .tree-r {
  right: 15%; height: 70px; width: 30px; animation: rf1-tree 16s ease-in-out infinite alternate-reverse;
}
.scn-road-coventry-prince-westmoreland .figure {
  position: absolute; bottom: 28%; width: 20px; height: 50px; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
}
.scn-road-coventry-prince-westmoreland .figure-p {
  left: 42%; animation: rf1-walk 5s ease-in-out infinite;
}
.scn-road-coventry-prince-westmoreland .figure-w {
  left: 55%; animation: rf1-walk 5.5s ease-in-out infinite 1s;
}
.scn-road-coventry-prince-westmoreland .dust {
  position: absolute; bottom: 15%; left: 40%; width: 40px; height: 10px; background: rgba(200,170,120,0.3); border-radius: 50%; filter: blur(4px); animation: rf1-dust 4s ease-in-out infinite;
}
@keyframes rf1-sky {
  0% { opacity: 0.9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.85; transform: scale(0.98); }
}
@keyframes rf1-sun {
  0% { transform: translateX(0) scale(0.95); box-shadow: 0 0 30px 15px rgba(255,221,68,0.3); }
  50% { transform: translateX(5px) scale(1.05); box-shadow: 0 0 50px 25px rgba(255,221,68,0.6); }
  100% { transform: translateX(-3px) scale(0.98); box-shadow: 0 0 35px 18px rgba(255,221,68,0.4); }
}
@keyframes rf1-road {
  0% { transform: translateY(0); }
  50% { transform: translateY(2px); }
  100% { transform: translateY(-1px); }
}
@keyframes rf1-tree {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes rf1-walk {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(24px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0deg); }
}
@keyframes rf1-dust {
  0% { opacity: 0.2; transform: translateX(0) scale(1); }
  50% { opacity: 0.5; transform: translateX(15px) scale(1.3); }
  100% { opacity: 0.1; transform: translateX(30px) scale(0.8); }
}

/* road-coventry-vigilant-cat */
.scn-road-coventry-vigilant-cat {
  background: linear-gradient(180deg, #ffd966 0%, #ffcc44 50%, #b3863a 100%), radial-gradient(ellipse at 50% 0%, #ffd966 0%, transparent 80%);
}
.scn-road-coventry-vigilant-cat .sky {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 60%, #ffe07a 100%); animation: rf2-sky 15s ease-in-out infinite alternate;
}
.scn-road-coventry-vigilant-cat .sun {
  position: absolute; top: 8%; right: 15%; width: 45px; height: 45px; background: radial-gradient(circle, #fffab0 0%, #ffcc44 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 35px 15px rgba(255,204,68,0.5); animation: rf2-sun 12s ease-in-out infinite alternate;
}
.scn-road-coventry-vigilant-cat .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #6a9a3a 0%, #4a7a2a 100%); border-radius: 40% 60% 0 0; animation: rf2-grass 10s ease-in-out infinite alternate;
}
.scn-road-coventry-vigilant-cat .path {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 25%; background: linear-gradient(180deg, #c8a86a 0%, #a08050 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 5px 10px rgba(0,0,0,0.15); animation: rf2-path 8s ease-in-out infinite alternate;
}
.scn-road-coventry-vigilant-cat .cat {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 30px; background: radial-gradient(circle at 30% 30%, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: rf2-cat 4s ease-in-out infinite;
}
.scn-road-coventry-vigilant-cat .cream-pot {
  position: absolute; bottom: 25%; left: 65%; width: 20px; height: 25px; background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: rf2-cream 6s ease-in-out infinite alternate;
}
.scn-road-coventry-vigilant-cat .shadow {
  position: absolute; bottom: 20%; left: 28%; width: 40px; height: 8px; background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(3px); animation: rf2-shadow 4s ease-in-out infinite;
}
@keyframes rf2-sky {
  0% { opacity: 0.85; transform: scale(1); }
  33% { opacity: 0.95; transform: scale(1.01); }
  66% { opacity: 1; transform: scale(1); }
  100% { opacity: 0.9; transform: scale(0.99); }
}
@keyframes rf2-sun {
  0% { transform: translateY(0) scale(0.95); }
  50% { transform: translateY(-3px) scale(1.05); }
  100% { transform: translateY(0) scale(0.98); }
}
@keyframes rf2-grass {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes rf2-path {
  0% { transform: perspective(200px) rotateX(0deg); }
  50% { transform: perspective(200px) rotateX(2deg); }
  100% { transform: perspective(200px) rotateX(-1deg); }
}
@keyframes rf2-cat {
  0% { transform: translateX(0) translateY(0) rotate(-3deg) scale(1); }
  25% { transform: translateX(5px) translateY(-2px) rotate(2deg) scale(1.05); }
  50% { transform: translateX(10px) translateY(0) rotate(-1deg) scale(0.95); }
  75% { transform: translateX(15px) translateY(-1px) rotate(2deg) scale(1.02); }
  100% { transform: translateX(20px) translateY(0) rotate(0deg) scale(1); }
}
@keyframes rf2-cream {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes rf2-shadow {
  0% { transform: translateX(0) scale(1); opacity: 0.3; }
  50% { transform: translateX(8px) scale(1.2); opacity: 0.5; }
  100% { transform: translateX(16px) scale(0.9); opacity: 0.2; }
}

/* road-coventry-poor-bare */
.scn-road-coventry-poor-bare {
  background: linear-gradient(180deg, #ffe07a 0%, #ffcc55 40%, #b38a4a 100%), radial-gradient(ellipse at 50% 0%, #ffe07a 0%, transparent 70%);
}
.scn-road-coventry-poor-bare .sky {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 60%, #f8d56a 100%); animation: rf3-sky 14s ease-in-out infinite alternate;
}
.scn-road-coventry-poor-bare .sun {
  position: absolute; top: 15%; left: 25%; width: 40px; height: 40px; background: radial-gradient(circle, #fff7b0 0%, #ffdd44 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 30px 12px rgba(255,221,68,0.5); animation: rf3-sun 11s ease-in-out infinite alternate;
}
.scn-road-coventry-poor-bare .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 20% 20% 0 0; animation: rf3-ground 9s ease-in-out infinite alternate;
}
.scn-road-coventry-poor-bare .stick {
  position: absolute; bottom: 25%; left: 40%; width: 6px; height: 60px; background: linear-gradient(180deg, #5c3a1a 0%, #3a2210 100%); transform: rotate(25deg); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: rf3-stick 7s ease-in-out infinite alternate;
}
.scn-road-coventry-poor-bare .hat {
  position: absolute; bottom: 50%; left: 38%; width: 28px; height: 12px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: rf3-hat 6s ease-in-out infinite alternate;
}
.scn-road-coventry-poor-bare .figure-thin {
  position: absolute; bottom: 22%; left: 35%; width: 18px; height: 55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rf3-figure 8s ease-in-out infinite;
}
.scn-road-coventry-poor-bare .ribs {
  position: absolute; bottom: 30%; left: 35.5%; width: 14px; height: 20px; background: repeating-linear-gradient(0deg, #5c4a3a 0px, #5c4a3a 2px, transparent 2px, transparent 5px); border-radius: 4px; opacity: 0.6; animation: rf3-ribs 5s ease-in-out infinite alternate;
}
@keyframes rf3-sky {
  0% { opacity: 0.9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.85; transform: scale(0.98); }
}
@keyframes rf3-sun {
  0% { transform: translateX(0) scale(0.95); }
  50% { transform: translateX(3px) scale(1.05); }
  100% { transform: translateX(-2px) scale(0.98); }
}
@keyframes rf3-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(2px); }
  100% { transform: translateY(-1px); }
}
@keyframes rf3-stick {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(30deg) translateY(-3px); }
  100% { transform: rotate(22deg) translateY(0); }
}
@keyframes rf3-hat {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(5deg); }
  100% { transform: translateX(0) rotate(-3deg); }
}
@keyframes rf3-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(-3px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(0) translateY(0) rotate(-1deg); }
  75% { transform: translateX(4px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes rf3-ribs {
  0% { opacity: 0.4; transform: scaleY(0.95); }
  50% { opacity: 0.7; transform: scaleY(1.1); }
  100% { opacity: 0.5; transform: scaleY(0.98); }
}

/* road-coventry-king-encamped */
.scn-road-coventry-king-encamped {
  background: linear-gradient(180deg, #ffd966 0%, #eebb55 40%, #b3863a 100%), radial-gradient(ellipse at 50% 100%, #eebb55 0%, transparent 60%);
}
.scn-road-coventry-king-encamped .sky {
  position: absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 50%, #f0c868 100%); animation: rf4-sky 13s ease-in-out infinite alternate;
}
.scn-road-coventry-king-encamped .sun {
  position: absolute; top: 12%; right: 10%; width: 45px; height: 45px; background: radial-gradient(circle, #fffab0 0%, #ffcc44 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 35px 15px rgba(255,204,68,0.5); animation: rf4-sun 11s ease-in-out infinite alternate;
}
.scn-road-coventry-king-encamped .tent {
  position: absolute; bottom: 30%; left: 30%; width: 100px; height: 90px; background: linear-gradient(180deg, #c8a070 0%, #a08050 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); border-radius: 10% 10% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: rf4-tent 8s ease-in-out infinite alternate;
}
.scn-road-coventry-king-encamped .flag {
  position: absolute; bottom: 58%; left: 48%; width: 18px; height: 14px; background: linear-gradient(180deg, #b0553a 0%, #8a3a2a 100%); clip-path: polygon(0% 0%, 100% 30%, 100% 70%, 0% 100%); transform-origin: bottom left; animation: rf4-flag 5s ease-in-out infinite alternate;
}
.scn-road-coventry-king-encamped .campfire {
  position: absolute; bottom: 25%; left: 55%; width: 30px; height: 20px; background: radial-gradient(ellipse at 50% 100%, #ff8833 0%, #ffcc44 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 10px rgba(255,136,51,0.4); animation: rf4-fire 3s ease-in-out infinite alternate;
}
.scn-road-coventry-king-encamped .sword {
  position: absolute; bottom: 32%; left: 62%; width: 4px; height: 40px; background: linear-gradient(180deg, #aaa 0%, #666 100%); border-radius: 2px; transform: rotate(15deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: rf4-sword 6s ease-in-out infinite alternate;
}
.scn-road-coventry-king-encamped .figure {
  position: absolute; bottom: 25%; width: 22px; height: 50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
}
.scn-road-coventry-king-encamped .king {
  left: 38%; animation: rf4-walk 7s ease-in-out infinite;
}
.scn-road-coventry-king-encamped .guard {
  left: 50%; animation: rf4-walk 7.5s ease-in-out infinite 1s;
}
@keyframes rf4-sky {
  0% { opacity: 0.9; transform: scale(1); }
  33% { opacity: 1; transform: scale(1.01); }
  66% { opacity: 0.95; transform: scale(0.99); }
  100% { opacity: 0.85; transform: scale(1.02); }
}
@keyframes rf4-sun {
  0% { transform: translateY(0) scale(0.95); }
  50% { transform: translateY(-4px) scale(1.05); }
  100% { transform: translateY(0) scale(0.98); }
}
@keyframes rf4-tent {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.03) translateY(-2px); }
  100% { transform: scaleX(0.98) translateY(1px); }
}
@keyframes rf4-flag {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes rf4-fire {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(0.98); }
}
@keyframes rf4-sword {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(20deg) translateY(-2px); }
  100% { transform: rotate(12deg) translateY(0); }
}
@keyframes rf4-walk {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(5px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(10px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(15px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(20px) translateY(0) rotate(0deg); }
}

/* boars-head-tavern-where-good */
.scn-boars-head-tavern-where-good {
  background: linear-gradient(150deg, #2a1a0e 0%, #4a2a14 40%, #1a0e06 100%),
              radial-gradient(ellipse at 50% 30%, #b06030 0%, transparent 70%);
}
.scn-boars-head-tavern-where-good .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(0deg, #3a2010 0%, #1a0e06 100%);
  animation: bht1-wall 6s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-where-good .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #26140a 0%, #3a2010 100%);
  border-radius: 20% 20% 0 0;
  animation: bht1-floor 8s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-where-good .table {
  position: absolute; bottom: 22%; left: 50%; width: 120px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a3a1a 0%, #4a2a10 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: bht1-table 4s ease-in-out infinite;
}
.scn-boars-head-tavern-where-good .tankard {
  position: absolute; bottom: 30%; left: 45%; width: 28px; height: 40px;
  background: linear-gradient(90deg, #7a5a3a 0%, #b08060 50%, #7a5a3a 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.3), 0 2px 4px rgba(0,0,0,.4);
  animation: bht1-tankard 3s ease-in-out infinite;
}
.scn-boars-head-tavern-where-good .figure-body {
  position: absolute; bottom: 20%; left: 38%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a2a14 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: bht1-body 5s ease-in-out infinite;
}
.scn-boars-head-tavern-where-good .figure-head {
  position: absolute; bottom: 46%; left: 40%; width: 24px; height: 24px;
  background: radial-gradient(circle at 40% 30%, #c09070 0%, #804020 80%);
  border-radius: 50%;
  animation: bht1-head 5s ease-in-out infinite;
}
.scn-boars-head-tavern-where-good .figure-arm {
  position: absolute; bottom: 28%; left: 42%; width: 18px; height: 8px;
  background: #3a2010;
  border-radius: 20% 80% 10% 10%;
  transform-origin: right center;
  animation: bht1-arm 4s ease-in-out infinite;
}
.scn-boars-head-tavern-where-good .candle-glow {
  position: absolute; bottom: 50%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffc080 0%, transparent 70%);
  filter: blur(8px);
  animation: bht1-candle 3s ease-in-out infinite alternate;
}
@keyframes bht1-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes bht1-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes bht1-table { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } }
@keyframes bht1-tankard { 0% { transform: rotate(0) } 25% { transform: rotate(4deg) } 75% { transform: rotate(-4deg) } 100% { transform: rotate(0) } }
@keyframes bht1-body { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.02) translateY(-2px) } 100% { transform: scale(1) translateY(0) } }
@keyframes bht1-head { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0) } }
@keyframes bht1-arm { 0% { transform: rotate(-20deg) } 25% { transform: rotate(-10deg) } 75% { transform: rotate(-30deg) } 100% { transform: rotate(-20deg) } }
@keyframes bht1-candle { 0% { opacity: .6; transform: scale(.9) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: .7; transform: scale(1) } }

/* boars-head-tavern-falstaff-satan */
.scn-boars-head-tavern-falstaff-satan {
  background: linear-gradient(160deg, #1e120a 0%, #3a1e0e 50%, #120a04 100%),
              radial-gradient(ellipse at 70% 40%, #a05028 0%, transparent 60%);
}
.scn-boars-head-tavern-falstaff-satan .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, #0e0602 100%);
  animation: bht2-bg 10s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-falstaff-satan .chair {
  position: absolute; bottom: 18%; left: 50%; width: 80px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3018 0%, #2a180a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 6px 10px rgba(0,0,0,.5);
  animation: bht2-chair 6s ease-in-out infinite;
}
.scn-boars-head-tavern-falstaff-satan .falstaff-body {
  position: absolute; bottom: 20%; left: 40%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: bht2-body 5s ease-in-out infinite;
}
.scn-boars-head-tavern-falstaff-satan .falstaff-beard {
  position: absolute; bottom: 50%; left: 42%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #e0d0b0 0%, #a08868 80%);
  border-radius: 40% 40% 20% 20%;
  filter: blur(2px);
  animation: bht2-beard 4s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-falstaff-satan .falstaff-head {
  position: absolute; bottom: 62%; left: 43%; width: 28px; height: 28px;
  background: radial-gradient(circle at 40% 30%, #d0a080 0%, #804020 80%);
  border-radius: 50%;
  animation: bht2-head 5s ease-in-out infinite;
}
.scn-boars-head-tavern-falstaff-satan .falstaff-hat {
  position: absolute; bottom: 80%; left: 42%; width: 40px; height: 16px;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0602 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(10deg);
  animation: bht2-hat 7s ease-in-out infinite;
}
.scn-boars-head-tavern-falstaff-satan .candle-light {
  position: absolute; bottom: 45%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffb060 0%, transparent 70%);
  filter: blur(10px);
  animation: bht2-light 3s ease-in-out infinite alternate;
}
@keyframes bht2-bg { 0%,100% { opacity: .5 } 50% { opacity: .7 } }
@keyframes bht2-chair { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(-2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes bht2-body { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(1) } }
@keyframes bht2-beard { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes bht2-head { 0% { transform: rotate(-1deg) } 25% { transform: rotate(2deg) } 75% { transform: rotate(-2deg) } 100% { transform: rotate(0) } }
@keyframes bht2-hat { 0%,100% { transform: rotate(10deg) } 50% { transform: rotate(15deg) } }
@keyframes bht2-light { 0% { opacity: .5; transform: scale(.9) } 100% { opacity: 1; transform: scale(1.2) } }

/* boars-head-tavern-more-harm-myself */
.scn-boars-head-tavern-more-harm-myself {
  background: linear-gradient(140deg, #2a1608 0%, #4a2210 40%, #1a0a04 100%),
              radial-gradient(ellipse at 30% 60%, #c07030 0%, transparent 60%);
}
.scn-boars-head-tavern-more-harm-myself .bg-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, #0e0602 0%, transparent 60%);
  animation: bht3-shadow 8s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-more-harm-myself .table-round {
  position: absolute; bottom: 18%; left: 50%; width: 140px; height: 24px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3018 0%, #3a1a08 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: bht3-table 5s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-more-harm-myself .sack {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #805020 0%, #503010 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  transform: rotate(-10deg);
  animation: bht3-sack 4s ease-in-out infinite;
}
.scn-boars-head-tavern-more-harm-myself .sugar-jar {
  position: absolute; bottom: 28%; left: 55%; width: 20px; height: 30px;
  background: linear-gradient(90deg, #a08050 0%, #d0c090 50%, #a08050 100%);
  border-radius: 6px 6px 8px 8px;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.2);
  animation: bht3-sugar 6s ease-in-out infinite;
}
.scn-boars-head-tavern-more-harm-myself .figure-fat {
  position: absolute; bottom: 16%; left: 30%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #6a3a1a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: center bottom;
  animation: bht3-fat 5s ease-in-out infinite;
}
.scn-boars-head-tavern-more-harm-myself .figure-head-fat {
  position: absolute; bottom: 58%; left: 36%; width: 30px; height: 30px;
  background: radial-gradient(circle at 40% 30%, #c09070 0%, #804020 80%);
  border-radius: 50%;
  animation: bht3-head 5s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-more-harm-myself .figure-arm-fat {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 10px;
  background: #3a2010;
  border-radius: 40% 60% 10% 10%;
  transform-origin: left center;
  animation: bht3-arm 4s ease-in-out infinite;
}
.scn-boars-head-tavern-more-harm-myself .fire-glow {
  position: absolute; bottom: 40%; left: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ff9040 0%, transparent 70%);
  filter: blur(12px);
  animation: bht3-fire 3s ease-in-out infinite alternate;
}
@keyframes bht3-shadow { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .6 } }
@keyframes bht3-table { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes bht3-sack { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-3px) } }
@keyframes bht3-sugar { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes bht3-fat { 0% { transform: scale(1) translateY(0) } 25% { transform: scale(1.02) translateY(-2px) } 75% { transform: scale(.98) translateY(1px) } 100% { transform: scale(1) translateY(0) } }
@keyframes bht3-head { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes bht3-arm { 0% { transform: rotate(10deg) } 50% { transform: rotate(30deg) } 100% { transform: rotate(10deg) } }
@keyframes bht3-fire { 0% { opacity: .6; transform: scale(.85) } 100% { opacity: 1; transform: scale(1.15) } }

/* boars-head-tavern-banish-others */
.scn-boars-head-tavern-banish-others {
  background: linear-gradient(170deg, #1a0e06 0%, #3a2010 40%, #0e0602 100%),
              radial-gradient(ellipse at 60% 30%, #c07030 0%, transparent 50%);
}
.scn-boars-head-tavern-banish-others .bg-tile {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(0deg, #2a1a0a 0%, #1a0e06 100%);
  animation: bht4-wall 9s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-banish-others .floor-plank {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #1a0e06 0%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0;
  animation: bht4-floor 7s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-banish-others .falstaff-body-large {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 80px;
  transform: translateX(-60%);
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,.6);
  animation: bht4-falstaff 6s ease-in-out infinite;
}
.scn-boars-head-tavern-banish-others .falstaff-head-large {
  position: absolute; bottom: 68%; left: 46%; width: 36px; height: 36px;
  background: radial-gradient(circle at 40% 30%, #c09070 0%, #804020 80%);
  border-radius: 50%;
  animation: bht4-head 6s ease-in-out infinite;
}
.scn-boars-head-tavern-banish-others .figure-small {
  position: absolute; bottom: 18%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #4a2a14 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: bht4-small 5s ease-in-out infinite;
}
.scn-boars-head-tavern-banish-others .figure-small:nth-child(5) { left: 10%; animation-delay: 0s; }
.scn-boars-head-tavern-banish-others .figure-small:nth-child(6) { left: 25%; animation-delay: .5s; }
.scn-boars-head-tavern-banish-others .figure-small:nth-child(7) { left: 40%; animation-delay: 1s; }
.scn-boars-head-tavern-banish-others .lantern {
  position: absolute; bottom: 40%; left: 15%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #c08050 0%, #a06030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 4px rgba(255,160,80,.4);
  animation: bht4-lantern 4s ease-in-out infinite alternate;
}
@keyframes bht4-wall { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes bht4-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes bht4-falstaff { 0% { transform: translateX(-60%) scale(1) } 50% { transform: translateX(-60%) scale(1.02) } 100% { transform: translateX(-60%) scale(1) } }
@keyframes bht4-head { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0) } }
@keyframes bht4-small { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-4px) rotate(5deg) } 75% { transform: translateY(2px) rotate(-3deg) } }
@keyframes bht4-lantern { 0% { opacity: .7; transform: scale(1) } 100% { opacity: 1; transform: scale(1.1) } }

.scn-boars-head-tavern-all-humours {
  background: linear-gradient(160deg, #3a2a1a 0%, #2a1a0a 40%, #1a0e05 100%), radial-gradient(circle at 40% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-boars-head-tavern-all-humours .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(0deg, #2a1a0a 0%, #4a3a2a 100%); box-shadow: inset 0 -8px 20px rgba(0,0,0,.6); }
.scn-boars-head-tavern-all-humours .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a0e05 0%, #2a1a0a 100%); border-top: 3px solid #4a3a2a; }
.scn-boars-head-tavern-all-humours .table { position:absolute; bottom:30%; left:25%; width:40%; height:8%; background: linear-gradient(0deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 0 0 8% 8%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-boars-head-tavern-all-humours .barrel { position:absolute; bottom:20%; left:15%; width:12%; height:20%; background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 50%, #5a4a3a 100%); border-radius: 50% / 20% 20% 40% 40%; box-shadow: 0 6px 12px rgba(0,0,0,.4); }
.scn-boars-head-tavern-all-humours .lantern { position:absolute; bottom:55%; left:50%; width:6%; height:10%; transform: translateX(-50%); background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c08040 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 8px #c08040, 0 0 40px 16px rgba(192,128,64,.3); animation: bht1-lantern 3s ease-in-out infinite alternate; }
.scn-boars-head-tavern-all-humours .window { position:absolute; bottom:35%; right:12%; width:20%; height:25%; background: radial-gradient(circle, #4a3a2a 0%, #2a1a0a 100%); border: 4px solid #3a2a1a; border-radius: 10% / 15%; box-shadow: inset 0 0 20px 5px rgba(200,100,50,.2); animation: bht1-window 6s ease-in-out infinite alternate; }
.scn-boars-head-tavern-all-humours .sign { position:absolute; bottom:55%; left:10%; width:18%; height:8%; background: linear-gradient(90deg, #6a4a3a 0%, #8a5a3a 50%, #6a4a3a 100%); border-radius: 20% / 50%; transform-origin: bottom center; animation: bht1-sign 4s ease-in-out infinite; }
.scn-boars-head-tavern-all-humours .figure-walk { position:absolute; bottom:18%; left:35%; width:8%; height:25%; background: linear-gradient(180deg, #2a1a0a 0%, #0e0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bht1-walk 4s ease-in-out infinite; }

@keyframes bht1-lantern { 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 bht1-window { 0% { box-shadow: inset 0 0 20px 5px rgba(200,100,50,.2); } 50% { box-shadow: inset 0 0 30px 10px rgba(200,100,50,.4); } 100% { box-shadow: inset 0 0 15px 3px rgba(200,100,50,.1); } }
@keyframes bht1-sign { 0% { transform: rotate(-3deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-2deg); } }
@keyframes bht1-walk { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(4%) translateY(-2%) rotate(1deg); } 50% { transform: translateX(8%) translateY(0) rotate(-1deg); } 75% { transform: translateX(12%) translateY(-2%) rotate(1deg); } 100% { transform: translateX(16%) translateY(0) rotate(0deg); } }

.scn-boars-head-tavern-parrot-woman {
  background: linear-gradient(0deg, #1a0e05 0%, #2a1a0a 50%, #3a2a1a 100%), radial-gradient(ellipse at 30% 40%, #4a3a2a 0%, transparent 60%);
}
.scn-boars-head-tavern-parrot-woman .shelf { position:absolute; bottom:30%; left:10%; right:10%; height:4%; background: linear-gradient(0deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% / 50%; }
.scn-boars-head-tavern-parrot-woman .cage { position:absolute; bottom:30%; left:35%; width:30%; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(100,80,60,.3) 100%); border: 3px solid #6a4a3a; border-radius: 20% / 30%; box-shadow: inset 0 0 10px rgba(0,0,0,.4); }
.scn-boars-head-tavern-parrot-woman .parrot { position:absolute; bottom:48%; left:45%; width:12%; height:16%; background: radial-gradient(ellipse at 50% 60%, #7a5a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bht2-parrot 2s ease-in-out infinite alternate; }
.scn-boars-head-tavern-parrot-woman .beak { position:absolute; bottom:55%; left:52%; width:4%; height:6%; background: linear-gradient(180deg, #a06030 0%, #6a3a1a 100%); border-radius: 40% 60% 20% 80% / 60% 40% 80% 20%; transform: rotate(20deg); animation: bht2-beak 2s ease-in-out infinite alternate; }
.scn-boars-head-tavern-parrot-woman .perch { position:absolute; bottom:44%; left:38%; width:24%; height:2%; background: #5a3a2a; border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-boars-head-tavern-parrot-woman .bottle { position:absolute; bottom:20%; right:20%; width:8%; height:20%; background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #5a4a3a 100%); border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bht2-bottle 8s ease-in-out infinite; }
.scn-boars-head-tavern-parrot-woman .glass { position:absolute; bottom:18%; right:30%; width:6%; height:12%; background: linear-gradient(90deg, rgba(200,180,160,.3) 0%, rgba(150,130,110,.2) 100%); border: 2px solid #5a4a3a; border-radius: 10% / 20%; box-shadow: 0 0 8px 2px rgba(200,180,160,.2); animation: bht2-glass 5s ease-in-out infinite; }
.scn-boars-head-tavern-parrot-woman .candle { position:absolute; bottom:22%; left:20%; width:4%; height:15%; background: linear-gradient(0deg, #6a4a3a 0%, #4a3a2a 100%); border-radius: 50% / 20%; box-shadow: 0 0 12px 4px #c08040; animation: bht2-candle 3s ease-in-out infinite alternate; }

@keyframes bht2-parrot { 0% { transform: scale(1) rotate(-2deg); } 50% { transform: scale(1.05) rotate(2deg); } 100% { transform: scale(0.98) rotate(0deg); } }
@keyframes bht2-beak { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(25deg) scale(1.1); } 100% { transform: rotate(10deg) scale(1); } }
@keyframes bht2-bottle { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes bht2-glass { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes bht2-candle { 0% { box-shadow: 0 0 8px 2px #c08040; } 50% { box-shadow: 0 0 18px 6px #ffd080; } 100% { box-shadow: 0 0 10px 3px #c08040; } }

.scn-boars-head-tavern-hotspur-anecdote {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 50%, #0e0500 100%), radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 80%);
}
.scn-boars-head-tavern-hotspur-anecdote .backdrop { position:absolute; inset:0 0 40% 0; background: linear-gradient(0deg, #3a2a1a 0%, #2a1a0a 100%); box-shadow: inset 0 -12px 20px rgba(0,0,0,.5); }
.scn-boars-head-tavern-hotspur-anecdote .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #0e0500 0%, #1a0e05 100%); border-top: 2px solid #3a2a1a; }
.scn-boars-head-tavern-hotspur-anecdote .figure-large { position:absolute; bottom:25%; left:30%; width:20%; height:40%; background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #1a0e05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bht3-large 3s ease-in-out infinite; }
.scn-boars-head-tavern-hotspur-anecdote .figure-small { position:absolute; bottom:20%; right:25%; width:12%; height:30%; background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #0e0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bht3-small 4s ease-in-out infinite; }
.scn-boars-head-tavern-hotspur-anecdote .cup { position:absolute; bottom:22%; left:45%; width:6%; height:8%; background: linear-gradient(0deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: bht3-cup 5s ease-in-out infinite; }
.scn-boars-head-tavern-hotspur-anecdote .candle { position:absolute; bottom:45%; left:50%; width:4%; height:18%; background: linear-gradient(0deg, #6a4a3a 0%, #4a3a2a 100%); border-radius: 50% / 20%; box-shadow: 0 0 16px 6px #c08040; animation: bht3-candle 3s ease-in-out infinite alternate; }
.scn-boars-head-tavern-hotspur-anecdote .shadow { position:absolute; bottom:0; left:20%; right:20%; height:30%; background: linear-gradient(0deg, rgba(0,0,0,.7) 0%, transparent 100%); border-radius: 50% / 30%; animation: bht3-shadow 6s ease-in-out infinite; }

@keyframes bht3-large { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-3%); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes bht3-small { 0% { transform: rotate(1deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2%); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes bht3-cup { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5%) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes bht3-candle { 0% { box-shadow: 0 0 10px 3px #c08040; } 50% { box-shadow: 0 0 24px 8px #ffd080; } 100% { box-shadow: 0 0 12px 4px #c08040; } }
@keyframes bht3-shadow { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }

.scn-boars-head-tavern-falstaff-arrives {
  background: linear-gradient(160deg, #2a1a0a 0%, #1a0e05 40%, #0e0500 100%), radial-gradient(ellipse at 60% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-boars-head-tavern-falstaff-arrives .door-frame { position:absolute; bottom:0; left:30%; right:30%; height:100%; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 0 30px 10px rgba(0,0,0,.7); }
.scn-boars-head-tavern-falstaff-arrives .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #0e0500 0%, #1a0e05 100%); }
.scn-boars-head-tavern-falstaff-arrives .falstaff { position:absolute; bottom:20%; left:35%; width:20%; height:45%; background: radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bht4-falstaff 2s ease-in-out infinite; }
.scn-boars-head-tavern-falstaff-arrives .henchman-1 { position:absolute; bottom:18%; left:55%; width:12%; height:35%; background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #0e0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bht4-hench 3s ease-in-out infinite; animation-delay: .2s; }
.scn-boars-head-tavern-falstaff-arrives .henchman-2 { position:absolute; bottom:16%; left:65%; width:10%; height:30%; background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #0e0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bht4-hench 3s ease-in-out infinite; animation-delay: .4s; }
.scn-boars-head-tavern-falstaff-arrives .henchman-3 { position:absolute; bottom:14%; left:75%; width:8%; height:25%; background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #0e0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bht4-hench 3s ease-in-out infinite; animation-delay: .6s; }
.scn-boars-head-tavern-falstaff-arrives .francis { position:absolute; bottom:12%; left:45%; width:8%; height:28%; background: radial-gradient(ellipse at 50% 40%, #2a1a0a 0%, #0e0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bht4-francis 4s ease-in-out infinite; }
.scn-boars-head-tavern-falstaff-arrives .tray { position:absolute; bottom:28%; left:46%; width:10%; height:4%; background: linear-gradient(90deg, #6a4a3a 0%, #4a3a2a 100%); border-radius: 20% / 50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: bht4-tray 2s ease-in-out infinite; }
.scn-boars-head-tavern-falstaff-arrives .lantern { position:absolute; bottom:65%; left:50%; width:8%; height:14%; transform: translateX(-50%); background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c08040 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 8px #c08040, 0 0 40px 16px rgba(192,128,64,.3); animation: bht4-lantern 3s ease-in-out infinite alternate; }

@keyframes bht4-falstaff { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3%); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes bht4-hench { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2%); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes bht4-francis { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(2%) translateY(-2%); } 100% { transform: translateX(-1%) translateY(0); } }
@keyframes bht4-tray { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes bht4-lantern { 0% { transform: translateX(-50%) scale(1); opacity:.8; } 50% { transform: translateX(-50%) scale(1.15); opacity:1; } 100% { transform: translateX(-50%) scale(0.95); opacity:.9; } }

.scn-london-palace-hotspur-parmaceti { background: linear-gradient(180deg, #4a3728 0%, #3a2a1a 40%, #2a1a0a 100%), radial-gradient(ellipse at 80% 20%, #7a5a3a 0%, transparent 60%); }
.scn-london-palace-hotspur-parmaceti .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #6a5038 0%, #4a3728 50%, #3a2a1a 100%); }
.scn-london-palace-hotspur-parmaceti .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4230 0%, #3a2a1a 100%); border-top: 2px solid #8a6a4a; }
.scn-london-palace-hotspur-parmaceti .window-arch { position:absolute; top:5%; left:55%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 40%, #9a8a6a 0%, #7a6a4a 60%, #4a3a2a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 0 30px #2a1a0a; animation: lpp-window 12s ease-in-out infinite alternate; }
.scn-london-palace-hotspur-parmaceti .shelf { position:absolute; bottom:35%; left:10%; width:30%; height:4%; background: linear-gradient(180deg, #8a6a4a 0%, #6a5038 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-london-palace-hotspur-parmaceti .jar-jar { position:absolute; bottom:36%; left:18%; width:5%; height:8%; background: radial-gradient(ellipse at 50% 30%, #c8a878 0%, #a08050 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 12px 2px rgba(200,168,120,.3); }
.scn-london-palace-hotspur-parmaceti .figure-hand { position:absolute; bottom:20%; left:35%; width:12%; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lpp-figure 6s ease-in-out infinite; }
.scn-london-palace-hotspur-parmaceti .lamp-glow { position:absolute; top:15%; right:20%; width:6%; height:8%; background: radial-gradient(circle, #d0a060 0%, #c08040 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(192,128,64,.4); animation: lpp-lamp 4s ease-in-out infinite alternate; }
.scn-london-palace-hotspur-parmaceti .scroll { position:absolute; bottom:30%; right:15%; width:8%; height:5%; background: linear-gradient(180deg, #d0b888 0%, #a08858 100%); border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%; transform: rotate(15deg); box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: lpp-scroll 8s ease-in-out infinite; }
@keyframes lpp-window { 0% { opacity:.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:.8; transform: scaleY(.98); } }
@keyframes lpp-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2%) rotate(3deg); } 50% { transform: translateX(5%) rotate(-1deg); } 75% { transform: translateX(1%) rotate(2deg); } }
@keyframes lpp-lamp { 0% { opacity:.6; box-shadow: 0 0 30px 10px rgba(192,128,64,.3); } 50% { opacity:1; box-shadow: 0 0 60px 30px rgba(224,160,80,.6); } 100% { opacity:.7; box-shadow: 0 0 35px 15px rgba(192,128,64,.4); } }
@keyframes lpp-scroll { 0%,100% { transform: rotate(12deg); } 50% { transform: rotate(18deg) translateY(-2%); } }

.scn-london-palace-hotspur-indirect-answer { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 30%, #1a1008 100%), radial-gradient(ellipse at 50% 90%, #4a3728 0%, transparent 80%); }
.scn-london-palace-hotspur-indirect-answer .curtain-left { position:absolute; top:0; left:0; width:15%; bottom:0; background: linear-gradient(135deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 0 30% 30% 0 / 0 50% 50% 0; box-shadow: inset -6px 0 20px #1a1008; animation: lpi-curtain 14s ease-in-out infinite; }
.scn-london-palace-hotspur-indirect-answer .curtain-right { position:absolute; top:0; right:0; width:15%; bottom:0; background: linear-gradient(225deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 30% 0 0 30% / 50% 0 0 50%; box-shadow: inset 6px 0 20px #1a1008; animation: lpi-curtain 14s ease-in-out infinite reverse; }
.scn-london-palace-hotspur-indirect-answer .throne-base { position:absolute; bottom:10%; left:40%; width:20%; height:40%; background: linear-gradient(180deg, #8a6a4a 0%, #5a4230 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 10px 30px rgba(0,0,0,.6); }
.scn-london-palace-hotspur-indirect-answer .figure-a { position:absolute; bottom:15%; left:30%; width:10%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lpi-fig-a 8s ease-in-out infinite; }
.scn-london-palace-hotspur-indirect-answer .figure-b { position:absolute; bottom:10%; right:25%; width:12%; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lpi-fig-b 10s ease-in-out infinite; }
.scn-london-palace-hotspur-indirect-answer .table-map { position:absolute; bottom:20%; left:50%; width:30%; height:6%; transform: translateX(-50%); background: linear-gradient(180deg, #7a6a4a 0%, #5a4a30 100%); border-radius: 4%; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-london-palace-hotspur-indirect-answer .candle-a { position:absolute; bottom:26%; left:35%; width:2%; height:8%; background: linear-gradient(180deg, #e0b880 0%, #c09858 100%); border-radius: 10%; box-shadow: 0 0 20px 6px rgba(224,184,128,.5); animation: lpi-candle 5s ease-in-out infinite alternate; }
.scn-london-palace-hotspur-indirect-answer .candle-b { position:absolute; bottom:26%; right:35%; width:2%; height:8%; background: linear-gradient(180deg, #e0b880 0%, #c09858 100%); border-radius: 10%; box-shadow: 0 0 20px 6px rgba(224,184,128,.5); animation: lpi-candle 5s ease-in-out infinite alternate-reverse; }
.scn-london-palace-hotspur-indirect-answer .shadow-drape { position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(ellipse at 50% 80%, transparent 50%, rgba(26,16,8,.8) 100%); pointer-events: none; }
@keyframes lpi-curtain { 0% { transform: scaleX(1); } 33% { transform: scaleX(1.03); } 66% { transform: scaleX(.97); } 100% { transform: scaleX(1); } }
@keyframes lpi-fig-a { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3%) rotate(5deg); } 50% { transform: translateX(-2%) rotate(-3deg); } 75% { transform: translateX(2%) rotate(2deg); } }
@keyframes lpi-fig-b { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4%) rotate(-4deg); } 50% { transform: translateX(2%) rotate(2deg); } 75% { transform: translateX(-1%) rotate(-1deg); } }
@keyframes lpi-candle { 0% { opacity:.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:.9; transform: scaleY(.98); } }

.scn-london-palace-blunt-reconciliation { background: linear-gradient(180deg, #6a5a4a 0%, #5a4a3a 30%, #4a3a2a 100%), radial-gradient(ellipse at 50% 100%, #8a7a6a 0%, transparent 70%); }
.scn-london-palace-blunt-reconciliation .wall-panel { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #5a4a3a 0%, #6a5a4a 50%, #5a4a3a 100%); border-bottom: 2px solid #8a7a6a; }
.scn-london-palace-blunt-reconciliation .window-light { position:absolute; top:5%; right:10%; width:25%; height:40%; background: radial-gradient(ellipse at 50% 40%, #d0c0a0 0%, #b0a080 60%, #7a6a4a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: inset 0 0 40px #4a3a2a; animation: lpb-window 20s ease-in-out infinite alternate; }
.scn-london-palace-blunt-reconciliation .table-quill { position:absolute; bottom:20%; left:15%; width:25%; height:5%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 4%; box-shadow: 0 4px 12px rgba(0,0,0,.4); }
.scn-london-palace-blunt-reconciliation .figure-left { position:absolute; bottom:15%; left:20%; width:10%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lpb-fig-l 12s ease-in-out infinite; }
.scn-london-palace-blunt-reconciliation .figure-right-clasp { position:absolute; bottom:12%; right:20%; width:12%; height:38%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lpb-fig-r 14s ease-in-out infinite; }
.scn-london-palace-blunt-reconciliation .rug { position:absolute; bottom:0; left:5%; right:5%; height:18%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; opacity:.7; }
.scn-london-palace-blunt-reconciliation .gentle-glow { position:absolute; top:30%; left:40%; width:20%; height:30%; background: radial-gradient(ellipse, rgba(210,200,170,.2) 0%, transparent 100%); animation: lpb-glow 8s ease-in-out infinite alternate; }
@keyframes lpb-window { 0% { opacity:.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.02); } 100% { opacity:.9; transform: scale(.98); } }
@keyframes lpb-fig-l { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1%) rotate(2deg); } 50% { transform: translateX(-1%) rotate(-1deg); } 75% { transform: translateX(2%) rotate(1deg); } }
@keyframes lpb-fig-r { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2%) rotate(-2deg); } 50% { transform: translateX(1%) rotate(1deg); } 75% { transform: translateX(-1%) rotate(-1deg); } }
@keyframes lpb-glow { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.4; } }

.scn-london-palace-king-demand-ransom { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a1008 100%), radial-gradient(ellipse at 50% 100%, #4a3728 0%, transparent 60%); }
.scn-london-palace-king-demand-ransom .throne-back { position:absolute; bottom:10%; left:30%; width:40%; height:50%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 10px 30px rgba(0,0,0,.7); }
.scn-london-palace-king-demand-ransom .king-figure { position:absolute; bottom:12%; left:35%; width:10%; height:38%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lpk-king 6s ease-in-out infinite; }
.scn-london-palace-king-demand-ransom .messenger { position:absolute; bottom:8%; right:20%; width:8%; height:32%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lpk-msg 8s ease-in-out infinite; }
.scn-london-palace-king-demand-ransom .chest-gold { position:absolute; bottom:14%; left:50%; width:12%; height:6%; transform: translateX(-50%); background: linear-gradient(180deg, #b09860 0%, #8a7030 100%); border-radius: 8%; box-shadow: 0 0 20px 4px rgba(176,152,96,.5); animation: lpk-chest 10s ease-in-out infinite; }
.scn-london-palace-king-demand-ransom .chain { position:absolute; bottom:20%; left:55%; width:10%; height:3%; background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 50%, #6a5a4a 100%); border-radius: 20%; transform: rotate(-20deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: lpk-chain 12s ease-in-out infinite; }
.scn-london-palace-king-demand-ransom .map-parchment { position:absolute; bottom:15%; right:10%; width:18%; height:10%; background: linear-gradient(135deg, #c8b888 0%, #a89868 100%); border-radius: 4%; box-shadow: 2px 2px 10px rgba(0,0,0,.5); transform: rotate(12deg); }
.scn-london-palace-king-demand-ransom .torch-fire { position:absolute; top:10%; left:10%; width:4%; height:12%; background: radial-gradient(ellipse at 50% 30%, #e0a060 0%, #c07030 40%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(224,160,96,.4); animation: lpk-torch 3s ease-in-out infinite alternate; }
.scn-london-palace-king-demand-ransom .torch-fire-second { position:absolute; top:8%; right:10%; width:4%; height:12%; background: radial-gradient(ellipse at 50% 30%, #e0a060 0%, #c07030 40%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(224,160,96,.4); animation: lpk-torch 3.5s ease-in-out infinite alternate-reverse; }
.scn-london-palace-king-demand-ransom .floor-checker { position:absolute; bottom:0; left:0; right:0; height:12%; background: repeating-linear-gradient(90deg, #3a2a1a 0%, #3a2a1a 10%, #4a3a2a 10%, #4a3a2a 20%); opacity:.5; }
@keyframes lpk-king { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2%) rotate(3deg); } 50% { transform: translateX(-1%) rotate(-2deg); } 75% { transform: translateX(3%) rotate(1deg); } }
@keyframes lpk-msg { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3%) rotate(-4deg); } 50% { transform: translateX(2%) rotate(2deg); } 75% { transform: translateX(-2%) rotate(-2deg); } }
@keyframes lpk-chest { 0% { opacity:.8; transform: translateX(-50%) scaleY(1); } 50% { opacity:1; transform: translateX(-50%) scaleY(1.05); } 100% { opacity:.9; transform: translateX(-50%) scaleY(.98); } }
@keyframes lpk-chain { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(-20deg); } }
@keyframes lpk-torch { 0% { opacity:.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.7; transform: scale(.9); } }

/* london-palace-worcester-calmly */
.scn-london-palace-worcester-calmly {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 40%, #b89a6a 100%),
              radial-gradient(ellipse at 50% 0%, rgba(255,235,200,0.6) 0%, transparent 60%);
}
.scn-london-palace-worcester-calmly .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d5b0 0%, #d4b896 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.08);
}
.scn-london-palace-worcester-calmly .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b89a6a 0%, #a07a4a 100%);
  border-radius: 40% 30% 0 0 / 20% 15% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.2);
  animation: lpc1-floor 12s ease-in-out infinite alternate;
}
.scn-london-palace-worcester-calmly .window {
  position: absolute; top: 12%; left: 30%; width: 120px; height: 160px;
  background: radial-gradient(ellipse at 50% 50%, #cde0ff 0%, #a0c0ea 60%, transparent 80%);
  border: 6px solid #8a6e4a;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(255,220,150,0.3), 0 4px 12px rgba(0,0,0,0.3);
  animation: lpc1-window 8s ease-in-out infinite alternate;
}
.scn-london-palace-worcester-calmly .throne {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 120px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 8% 8% / 30% 30% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
}
.scn-london-palace-worcester-calmly .figure-king {
  position: absolute; bottom: 30%; left: 48%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lpc1-king 6s ease-in-out infinite alternate;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.scn-london-palace-worcester-calmly .figure-prisoner {
  position: absolute; bottom: 30%; left: 60%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: lpc1-prisoner 10s ease-in-out infinite alternate;
  filter: brightness(0.9);
}
.scn-london-palace-worcester-calmly .candle-left {
  position: absolute; bottom: 35%; left: 20%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #f0d090 0%, #d4b060 40%, #8a6e30 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(240,208,144,0.5);
  animation: lpc1-candle 4s ease-in-out infinite alternate;
}
.scn-london-palace-worcester-calmly .candle-right {
  position: absolute; bottom: 35%; right: 20%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #f0d090 0%, #d4b060 40%, #8a6e30 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(240,208,144,0.5);
  animation: lpc1-candle 4s ease-in-out infinite alternate-reverse;
}
@keyframes lpc1-floor {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes lpc1-window {
  0% { opacity: 0.8; box-shadow: inset 0 0 30px rgba(255,220,150,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 60px rgba(255,220,150,0.5); }
  100% { opacity: 0.85; box-shadow: inset 0 0 40px rgba(255,220,150,0.3); }
}
@keyframes lpc1-king {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes lpc1-prisoner {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(0.95); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes lpc1-candle {
  0% { box-shadow: 0 0 15px 4px rgba(240,208,144,0.4); }
  50% { box-shadow: 0 0 30px 10px rgba(240,208,144,0.8); transform: scaleY(1.05); }
  100% { box-shadow: 0 0 18px 5px rgba(240,208,144,0.5); transform: scaleY(1); }
}

/* london-palace-worcester-cousin-hear */
.scn-london-palace-worcester-cousin-hear {
  background: linear-gradient(180deg, #efe2c0 0%, #d4c0a0 40%, #b8a080 100%),
              radial-gradient(ellipse at 50% 70%, rgba(200,180,140,0.4) 0%, transparent 70%);
}
.scn-london-palace-worcester-cousin-hear .bg-panel {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d4c0a0 0%, #c0a880 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.1);
  animation: lpc2-panel 15s ease-in-out infinite alternate;
}
.scn-london-palace-worcester-cousin-hear .table {
  position: absolute; bottom: 20%; left: 30%; width: 200px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: lpc2-table 20s ease-in-out infinite alternate;
}
.scn-london-palace-worcester-cousin-hear .figure-cousin {
  position: absolute; bottom: 25%; left: 35%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lpc2-fig1 8s ease-in-out infinite alternate;
}
.scn-london-palace-worcester-cousin-hear .figure-conspirator {
  position: absolute; bottom: 25%; left: 55%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lpc2-fig2 10s ease-in-out infinite alternate;
}
.scn-london-palace-worcester-cousin-hear .map {
  position: absolute; bottom: 28%; left: 42%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #c0a070 0%, #a08050 100%);
  border-radius: 2px;
  transform: rotate(-2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: lpc2-map 12s ease-in-out infinite alternate;
}
.scn-london-palace-worcester-cousin-hear .candle-center {
  position: absolute; bottom: 28%; left: 50%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #f0d090 0%, #d4a060 50%, #8a5a20 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(240,208,144,0.5);
  animation: lpc2-candle 5s ease-in-out infinite alternate;
}
.scn-london-palace-worcester-cousin-hear .shadow-arch {
  position: absolute; top: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, rgba(0,0,0,0.05) 0%, transparent 100%);
  pointer-events: none;
}
@keyframes lpc2-panel {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes lpc2-table {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-3px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(0.98); }
}
@keyframes lpc2-fig1 {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes lpc2-fig2 {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes lpc2-map {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes lpc2-candle {
  0% { box-shadow: 0 0 12px 4px rgba(240,208,144,0.3); }
  50% { box-shadow: 0 0 30px 8px rgba(240,208,144,0.7); transform: scaleY(1.03); }
  100% { box-shadow: 0 0 15px 5px rgba(240,208,144,0.4); transform: scaleY(1); }
}

/* london-palace-northumberland-chides */
.scn-london-palace-northumberland-chides {
  background: linear-gradient(180deg, #c8b898 0%, #a08060 40%, #7a6040 100%),
              radial-gradient(ellipse at 50% 30%, rgba(180,150,110,0.5) 0%, transparent 60%);
}
.scn-london-palace-northumberland-chides .bg-colonnade {
  position: absolute; inset: 0 0 20% 0;
  background: repeating-linear-gradient(90deg,
    #b09880 0px, #b09880 12px,
    #8a7050 12px, #8a7050 24px,
    #b09880 24px, #b09880 36px,
    #a08868 36px, #a08868 48px);
  background-size: 48px 100%;
  opacity: 0.4;
  border-radius: 0 0 20% 20%;
  animation: lpc3-colonnade 20s linear infinite;
}
.scn-london-palace-northumberland-chides .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(45deg,
    #7a6040 0px, #7a6040 4px,
    #6a5030 4px, #6a5030 8px);
  background-size: 8px 8px;
  transform: perspective(600px) rotateX(60deg);
  transform-origin: bottom center;
}
.scn-london-palace-northumberland-chides .figure-left {
  position: absolute; bottom: 22%; left: 30%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: lpc3-fleft 4s ease-in-out infinite alternate;
  box-shadow: 0 2px 10px rgba(0,0,0,0.4);
}
.scn-london-palace-northumberland-chides .figure-right {
  position: absolute; bottom: 22%; right: 30%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: lpc3-fright 3s ease-in-out infinite alternate;
  box-shadow: 0 2px 10px rgba(0,0,0,0.4);
}
.scn-london-palace-northumberland-chides .candle-wall {
  position: absolute; top: 15%; left: 10%; width: 6px; height: 35px;
  background: linear-gradient(180deg, #e8c880 0%, #b89850 100%);
  border-radius: 2px;
  box-shadow: 0 0 15px 4px rgba(232,200,128,0.4);
  animation: lpc3-candle 4s ease-in-out infinite alternate-reverse;
}
.scn-london-palace-northumberland-chides .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 40%, rgba(200,180,140,0.1) 0%, transparent 50%),
              radial-gradient(circle at 70% 60%, rgba(200,180,140,0.08) 0%, transparent 50%);
  pointer-events: none;
  animation: lpc3-dust 12s ease-in-out infinite alternate;
}
@keyframes lpc3-colonnade {
  0% { background-position: 0 0; }
  100% { background-position: -48px 0; }
}
@keyframes lpc3-fleft {
  0% { transform: translateX(0) rotate(-3deg); }
  50% { transform: translateX(8px) rotate(1deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes lpc3-fright {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-6px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes lpc3-candle {
  0% { box-shadow: 0 0 10px 3px rgba(232,200,128,0.3); }
  50% { box-shadow: 0 0 25px 8px rgba(232,200,128,0.6); }
  100% { box-shadow: 0 0 12px 4px rgba(232,200,128,0.35); }
}
@keyframes lpc3-dust {
  0% { opacity: 0.2; transform: translateY(0); }
  50% { opacity: 0.5; transform: translateY(-10px); }
  100% { opacity: 0.3; transform: translateY(0); }
}

/* london-palace-hotspur-whipped */
.scn-london-palace-hotspur-whipped {
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 40%, #0a0a0a 100%),
              radial-gradient(ellipse at 50% 100%, rgba(100,60,20,0.6) 0%, transparent 70%);
}
.scn-london-palace-hotspur-whipped .bg-vault {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.5);
  border-radius: 0 0 30% 30%;
}
.scn-london-palace-hotspur-whipped .floor-stone {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-london-palace-hotspur-whipped .figure-hotspur {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 110px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  animation: lpc4-figure 6s ease-in-out infinite alternate;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-london-palace-hotspur-whipped .rods {
  position: absolute; bottom: 30%; left: 42%; width: 80px; height: 4px;
  background: linear-gradient(90deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  animation: lpc4-rods 4s ease-in-out infinite alternate;
  box-shadow: 0 1px 4px rgba(0,0,0,0.3);
}
.scn-london-palace-hotspur-whipped .shadow-bars {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: repeating-linear-gradient(0deg,
    transparent 0px, transparent 10px,
    rgba(0,0,0,0.3) 10px, rgba(0,0,0,0.3) 12px);
  pointer-events: none;
}
.scn-london-palace-hotspur-whipped .candle-gutter {
  position: absolute; bottom: 30%; left: 20%; width: 4px; height: 25px;
  background: linear-gradient(180deg, #e0a050 0%, #804020 100%);
  border-radius: 1px;
  box-shadow: 0 0 10px 3px rgba(224,160,80,0.3);
  animation: lpc4-candle 3s ease-in-out infinite alternate;
}
@keyframes lpc4-figure {
  0% { transform: translateX(-50%) rotate(-1deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(3deg) translateY(-4px); }
  100% { transform: translateX(-50%) rotate(-2deg) translateY(0); }
}
@keyframes lpc4-rods {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-2px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes lpc4-candle {
  0% { box-shadow: 0 0 8px 2px rgba(224,160,80,0.2); }
  50% { box-shadow: 0 0 20px 5px rgba(224,160,80,0.5); }
  100% { box-shadow: 0 0 10px 3px rgba(224,160,80,0.25); }
}

/* boars-head-tavern-monstrous-sack */
.scn-boars-head-tavern-monstrous-sack {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #1a1208 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 80%);
}
.scn-boars-head-tavern-monstrous-sack .wall    { position:absolute; inset:0; background: linear-gradient(90deg, #1a1208 0%, #2a1a0e 50%, #1a1208 100%); animation: bht-wall 12s ease-in-out infinite alternate; }
.scn-boars-head-tavern-monstrous-sack .table   { position:absolute; bottom:20%; left:15%; right:15%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-boars-head-tavern-monstrous-sack .sack    { position:absolute; bottom:26%; left:40%; width:70px; height:60px; background: radial-gradient(ellipse 70% 60% at 50% 40%, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 60% 60% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bht-sack 3s ease-in-out infinite; }
.scn-boars-head-tavern-monstrous-sack .bread   { position:absolute; bottom:28%; left:30%; width:40px; height:20px; background: linear-gradient(180deg, #c8a878 0%, #a88858 100%); border-radius: 40% 40% 50% 50%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: bht-bread 5s ease-in-out infinite; }
.scn-boars-head-tavern-monstrous-sack .sleeper { position:absolute; bottom:22%; right:35%; width:50px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bht-sleeper 4s ease-in-out infinite; }
.scn-boars-head-tavern-monstrous-sack .candle  { position:absolute; bottom:30%; left:25%; width:6px; height:20px; background: linear-gradient(180deg, #d0b080 0%, #a08060 100%); border-radius: 2px 2px 1px 1px; transform-origin: bottom center; animation: bht-candle 2s ease-in-out infinite; }
.scn-boars-head-tavern-monstrous-sack .glow    { position:absolute; bottom:30%; left:25%; width:50px; height:50px; transform:translate(-50%, -50%); background: radial-gradient(circle, #d0b080 0%, #a08060 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(200,160,100,.4); animation: bht-glow 2.5s ease-in-out infinite alternate; }
@keyframes bht-wall    { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes bht-sack    { 0% { transform: translateY(0) rotate(-2deg) scaleX(1) } 25% { transform: translateY(-3px) rotate(2deg) scaleX(1.05) } 50% { transform: translateY(0) rotate(-1deg) scaleX(1) } 75% { transform: translateY(-2px) rotate(1deg) scaleX(.95) } 100% { transform: translateY(0) rotate(0) scaleX(1) } }
@keyframes bht-bread   { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes bht-sleeper { 0% { transform: translateY(0) rotate(0) scaleY(1) } 30% { transform: translateY(-2px) rotate(4deg) scaleY(1.02) } 60% { transform: translateY(1px) rotate(-3deg) scaleY(.98) } 100% { transform: translateY(0) rotate(0) scaleY(1) } }
@keyframes bht-candle  { 0% { transform: scaleY(1) rotate(-2deg) } 50% { transform: scaleY(1.05) rotate(2deg) } 100% { transform: scaleY(1) rotate(-1deg) } }
@keyframes bht-glow    { 0% { opacity:.6; transform:translate(-50%, -50%) scale(1) } 50% { opacity:1; transform:translate(-50%, -50%) scale(1.2) } 100% { opacity:.7; transform:translate(-50%, -50%) scale(.9) } }

/* bangor-archdeacon-house-forgot-map */
.scn-bangor-archdeacon-house-forgot-map {
  background:
    linear-gradient(180deg, #e8e0c8 0%, #c8b898 50%, #a89070 100%),
    radial-gradient(ellipse at 70% 30%, #f0e8d8 0%, transparent 60%);
}
.scn-bangor-archdeacon-house-forgot-map .wall-light { position:absolute; inset:0; background: linear-gradient(90deg, #d8c8a8 0%, #e8e0c8 50%, #d0c0a0 100%); animation: baf-wall 10s ease-in-out infinite alternate; }
.scn-bangor-archdeacon-house-forgot-map .table-map { position:absolute; bottom:20%; left:10%; right:10%; height:10%; background: linear-gradient(180deg, #b8a080 0%, #907860 100%); border-radius:6px; box-shadow: 0 4px 12px rgba(0,0,0,.2); }
.scn-bangor-archdeacon-house-forgot-map .map-line   { position:absolute; bottom:22%; left:20%; right:20%; height:2px; background: linear-gradient(90deg, transparent 0%, #6a5a4a 20%, #4a3a2a 50%, #6a5a4a 80%, transparent 100%); animation: baf-map 6s ease-in-out infinite; }
.scn-bangor-archdeacon-house-forgot-map .figure-left { position:absolute; bottom:18%; left:15%; width:40px; height:90px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: baf-figL 3s ease-in-out infinite; }
.scn-bangor-archdeacon-house-forgot-map .figure-right{ position:absolute; bottom:18%; right:15%; width:45px; height:95px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: baf-figR 3.5s ease-in-out infinite; }
.scn-bangor-archdeacon-house-forgot-map .window-beam{ position:absolute; top:5%; left:60%; width:80px; height:300px; background: linear-gradient(180deg, rgba(255,255,240,.4) 0%, rgba(255,255,240,.05) 100%); transform: skewX(-10deg); filter: blur(8px); animation: baf-beam 8s ease-in-out infinite alternate; }
.scn-bangor-archdeacon-house-forgot-map .shadow-stretch{ position:absolute; bottom:0; left:10%; width:200px; height:20px; background: linear-gradient(90deg, rgba(0,0,0,.3) 0%, transparent 100%); filter: blur(4px); animation: baf-shadow 4s ease-in-out infinite; }
@keyframes baf-wall   { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes baf-map    { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.02) translateX(5px) } 100% { transform: scaleX(1) translateX(0) } }
@keyframes baf-figL   { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(-5deg) } 60% { transform: translateY(1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes baf-figR   { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-3px) rotate(4deg) } 60% { transform: translateY(2px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes baf-beam   { 0% { opacity:.5; transform: skewX(-10deg) scaleX(1) } 50% { opacity:.8; transform: skewX(-10deg) scaleX(1.1) } 100% { opacity:.6; transform: skewX(-10deg) scaleX(.9) } }
@keyframes baf-shadow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(10px) scaleX(1.2) } 100% { transform: translateX(0) scaleX(1) } }

/* bangor-archdeacon-house-hell-glendower */
.scn-bangor-archdeacon-house-hell-glendower {
  background:
    linear-gradient(180deg, #f0e8d8 0%, #d8c8a8 40%, #c0a888 100%),
    radial-gradient(ellipse at 50% 20%, #ffe8c0 0%, transparent 70%);
}
.scn-bangor-archdeacon-house-hell-glendower .ceiling   { position:absolute; top:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 100%); }
.scn-bangor-archdeacon-house-hell-glendower .glendower-fig { position:absolute; bottom:20%; left:35%; width:50px; height:100px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bah-fig 2s ease-in-out infinite; }
.scn-bangor-archdeacon-house-hell-glendower .fiery-shape-a { position:absolute; top:8%; left:20%; width:60px; height:40px; background: radial-gradient(circle at 50% 50%, #ffe080 0%, #ffa040 40%, transparent 70%); border-radius:50%; filter: blur(8px); animation: bah-fireA 4s ease-in-out infinite; }
.scn-bangor-archdeacon-house-hell-glendower .fiery-shape-b { position:absolute; top:12%; left:50%; width:80px; height:30px; background: radial-gradient(circle at 50% 50%, #ffd060 0%, #ff9040 50%, transparent 75%); border-radius:50%; filter: blur(10px); animation: bah-fireB 5s ease-in-out infinite alternate; }
.scn-bangor-archdeacon-house-hell-glendower .fiery-shape-c { position:absolute; top:5%; right:15%; width:50px; height:50px; background: radial-gradient(circle at 50% 30%, #ffe0a0 0%, #ffb040 30%, transparent 60%); border-radius:50%; filter: blur(12px); animation: bah-fireC 3.5s ease-in-out infinite; }
.scn-bangor-archdeacon-house-hell-glendower .nativity-glow { position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(ellipse at 40% 10%, rgba(255,220,120,.3) 0%, transparent 60%); animation: bah-glow 6s ease-in-out infinite alternate; }
.scn-bangor-archdeacon-house-hell-glendower .ground-line { position:absolute; bottom:20%; left:10%; right:10%; height:2px; background: linear-gradient(90deg, transparent 0%, #6a5a4a 20%, #8a7a5a 50%, #6a5a4a 80%, transparent 100%); animation: bah-ground 8s linear infinite; }
@keyframes bah-fig    { 0% { transform: translateY(0) rotate(0) scaleY(1) } 25% { transform: translateY(-4px) rotate(2deg) scaleY(1.03) } 50% { transform: translateY(0) rotate(-1deg) scaleY(1) } 75% { transform: translateY(-2px) rotate(3deg) scaleY(.97) } 100% { transform: translateY(0) rotate(0) scaleY(1) } }
@keyframes bah-fireA  { 0% { transform: translateY(0) scale(1) rotate(0) } 50% { transform: translateY(-8px) scale(1.2) rotate(30deg) } 100% { transform: translateY(0) scale(1) rotate(0) } }
@keyframes bah-fireB  { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(10px) scaleX(1.3) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes bah-fireC  { 0% { transform: translateY(0) scale(1) opacity:.6 } 50% { transform: translateY(-12px) scale(1.4) opacity:1 } 100% { transform: translateY(0) scale(1) opacity:.6 } }
@keyframes bah-glow   { 0% { opacity:.4 } 50% { opacity:.9 } 100% { opacity:.5 } }
@keyframes bah-ground { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }

/* bangor-archdeacon-house-earth-shake */
.scn-bangor-archdeacon-house-earth-shake {
  background:
    linear-gradient(180deg, #e8d8b8 0%, #c8b898 40%, #a08868 100%),
    radial-gradient(ellipse at 30% 20%, #f0e0c8 0%, transparent 60%);
}
.scn-bangor-archdeacon-house-earth-shake .wall-shake   { position:absolute; inset:0; background: linear-gradient(90deg, #d0c0a0 0%, #e0d0b0 50%, #c8b898 100%); animation: bae-wall .8s ease-in-out infinite alternate; }
.scn-bangor-archdeacon-house-earth-shake .floor-shake  { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #b8a080 0%, #907860 100%); animation: bae-floor .6s ease-in-out infinite; }
.scn-bangor-archdeacon-house-earth-shake .pillar       { position:absolute; bottom:25%; left:15%; width:20px; height:180px; background: linear-gradient(180deg, #d0c0a0 0%, #a89070 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.2); transform-origin: bottom center; animation: bae-pillar .5s ease-in-out infinite; }
.scn-bangor-archdeacon-house-earth-shake .figure-tremble{ position:absolute; bottom:20%; right:25%; width:45px; height:100px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bae-figure .7s ease-in-out infinite; }
.scn-bangor-archdeacon-house-earth-shake .fire-shape-a { position:absolute; top:15%; left:30%; width:70px; height:50px; background: radial-gradient(circle at 50% 50%, #ffd080 0%, #ff9040 40%, transparent 70%); border-radius:50%; filter: blur(10px); animation: bae-fireA 2.4s ease-in-out infinite alternate; }
.scn-bangor-archdeacon-house-earth-shake .fire-shape-b { position:absolute; top:10%; right:20%; width:60px; height:40px; background: radial-gradient(circle at 50% 50%, #ffc060 0%, #ff8030 50%, transparent 75%); border-radius:50%; filter: blur(12px); animation: bae-fireB 1.5s ease-in-out infinite; }
.scn-bangor-archdeacon-house-earth-shake .light-flash  { position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(ellipse at 40% 10%, rgba(255,200,80,.2) 0%, transparent 60%); animation: bae-flash .4s ease-in-out infinite alternate; }
@keyframes bae-wall   { 0% { transform: translateX(0) } 100% { transform: translateX(3px) } }
@keyframes bae-floor  { 0% { transform: translateY(0) skewX(0) } 25% { transform: translateY(-2px) skewX(2deg) } 50% { transform: translateY(1px) skewX(-1deg) } 75% { transform: translateY(-1px) skewX(1deg) } 100% { transform: translateY(0) skewX(0) } }
@keyframes bae-pillar { 0% { transform: rotate(0) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(1deg) } 100% { transform: rotate(0) } }
@keyframes bae-figure { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(3deg) } 50% { transform: translateY(2px) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes bae-fireA  { 0% { transform: scale(1) opacity:.6 } 50% { transform: scale(1.3) opacity:1 } 100% { transform: scale(1) opacity:.6 } }
@keyframes bae-fireB  { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-5px) scaleX(1.4) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes bae-flash  { 0% { opacity:.3 } 100% { opacity:.7 } }

.scn-rebel-camp-vernon-agrees {
  background:
    linear-gradient(180deg, #6b7b7f 0%, #4d5d61 40%, #3d4d51 100%),
    radial-gradient(ellipse at 30% 100%, #5a6a6e 0%, transparent 60%);
}
.scn-rebel-camp-vernon-agrees .sky-rc1 {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #7a8a8e 0%, rgba(255,255,255,0.05) 100%);
  animation: rc1-sky 20s ease-in-out infinite alternate;
}
.scn-rebel-camp-vernon-agrees .ground-rc1 {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4e5a3a 0%, #3a4330 60%, #2e3524 100%);
  border-radius: 30% 20% 0 0 / 15% 8% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: rc1-ground 30s ease-in-out infinite alternate;
}
.scn-rebel-camp-vernon-agrees .tent-rc1 {
  position: absolute; bottom: 48%; left: 35%; width: 30%; height: 35%;
  background: linear-gradient(135deg, #b8a88a 0%, #8a7a62 60%, #6a5a42 100%);
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: rc1-tent 5s ease-in-out infinite alternate;
}
.scn-rebel-camp-vernon-agrees .table-rc1 {
  position: absolute; bottom: 43%; left: 42%; width: 20%; height: 6%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: rc1-table 6s ease-in-out infinite;
}
.scn-rebel-camp-vernon-agrees .figure-left-rc1 {
  position: absolute; bottom: 40%; left: 38%; width: 8%; height: 20%;
  background: radial-gradient(ellipse 60% 100% at 50% 100%, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-2deg);
  animation: rc1-figure-left 4s ease-in-out infinite;
}
.scn-rebel-camp-vernon-agrees .figure-right-rc1 {
  position: absolute; bottom: 40%; left: 52%; width: 8%; height: 22%;
  background: radial-gradient(ellipse 60% 100% at 50% 100%, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(2deg);
  animation: rc1-figure-right 4s ease-in-out infinite reverse;
}
.scn-rebel-camp-vernon-agrees .flag-rc1 {
  position: absolute; top: 18%; left: 42%; width: 6%; height: 14%;
  background: linear-gradient(135deg, #8a6a4a 0%, #6a4a2a 100%);
  clip-path: polygon(0 0, 100% 0, 80% 50%, 100% 100%, 0 100%);
  transform-origin: bottom center;
  animation: rc1-flag 3s ease-in-out infinite alternate;
}
.scn-rebel-camp-vernon-agrees .cloud-rc1 {
  position: absolute; top: 12%; left: 12%; width: 25%; height: 8%;
  background: radial-gradient(ellipse at 30% 50%, rgba(255,255,255,0.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: rc1-cloud 40s linear infinite;
}

@keyframes rc1-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes rc1-ground { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.01) } 100% { transform: translateY(1px) scaleY(0.99) } }
@keyframes rc1-tent { 0% { transform: translateY(0) rotate(-0.5deg) } 100% { transform: translateY(2px) rotate(0.5deg) } }
@keyframes rc1-table { 0%,100% { transform: translateX(0) } 50% { transform: translateX(4px) translateY(1px) } }
@keyframes rc1-figure-left { 0% { transform: rotate(-2deg) translateX(0) } 50% { transform: rotate(1deg) translateX(3px) translateY(-2px) } 100% { transform: rotate(-2deg) translateX(0) } }
@keyframes rc1-figure-right { 0% { transform: rotate(2deg) translateX(0) } 50% { transform: rotate(-1deg) translateX(-3px) translateY(-2px) } 100% { transform: rotate(2deg) translateX(0) } }
@keyframes rc1-flag { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(0.95) } 100% { transform: rotate(-3deg) scaleY(1.02) } }
@keyframes rc1-cloud { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }

/* scene 2 */
.scn-rebel-camp-hotspur-no-mercy {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0a0a1a 100%),
    radial-gradient(ellipse at 70% 30%, #3a3a4a 0%, transparent 50%);
}
.scn-rebel-camp-hotspur-no-mercy .sky-rc2 {
  position: absolute; inset: 0 0 65% 0;
  background: linear-gradient(180deg, #3a3a4e 0%, rgba(0,0,0,0.2) 100%);
  animation: rc2-sky 15s ease-in-out infinite alternate;
}
.scn-rebel-camp-hotspur-no-mercy .ground-rc2 {
  position: absolute; bottom: 0; left: 0; right: 0; height: 65%;
  background: linear-gradient(180deg, #2a2a22 0%, #1a1a12 100%);
  border-radius: 20% 40% 0 0 / 10% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: rc2-ground 25s ease-in-out infinite;
}
.scn-rebel-camp-hotspur-no-mercy .figure-rc2 {
  position: absolute; bottom: 35%; left: 46%; width: 12%; height: 40%;
  background: radial-gradient(ellipse 60% 100% at 50% 100%, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rc2-figure 3s ease-in-out infinite;
}
.scn-rebel-camp-hotspur-no-mercy .torch-rc2 {
  position: absolute; bottom: 42%; left: 30%; width: 6%; height: 18%;
  background: linear-gradient(0deg, #6a4a1a 0%, #3a2a0a 100%);
  border-radius: 0 0 20% 20%;
}
.scn-rebel-camp-hotspur-no-mercy .torch-rc2::after { /* flame */
  content: ''; position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%);
  width: 120%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, #ffa030 0%, #ff6000 40%, transparent 70%);
  border-radius: 50% 50% 0 0;
  animation: rc2-flame 1.6s ease-in-out infinite alternate;
}
.scn-rebel-camp-hotspur-no-mercy .banner-rc2 {
  position: absolute; top: 12%; left: 56%; width: 18%; height: 30%;
  background: linear-gradient(135deg, #3a1a1a 0%, #1a0a0a 100%);
  clip-path: polygon(0 0, 100% 20%, 80% 60%, 100% 100%, 0 80%);
  transform-origin: top left;
  animation: rc2-banner 2s ease-in-out infinite alternate;
}
.scn-rebel-camp-hotspur-no-mercy .crow-rc2 {
  position: absolute; top: 8%; left: 70%; width: 10%; height: 6%;
  background: #0a0a0a;
  border-radius: 50% 50% 40% 40%;
  filter: blur(0.5px);
  animation: rc2-crow 12s linear infinite;
}
@keyframes rc2-sky { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes rc2-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(2px) } }
@keyframes rc2-figure { 0% { transform: rotate(-2deg) translateY(0) } 25% { transform: rotate(1deg) translateY(-5px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(-1deg) translateY(-3px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes rc2-flame { 0% { transform: translateX(-50%) scaleY(1) scaleX(0.9); opacity: 0.8 } 100% { transform: translateX(-50%) scaleY(1.2) scaleX(1.1); opacity: 1 } }
@keyframes rc2-banner { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(0.9) } 100% { transform: rotate(-3deg) scaleY(1.05) } }
@keyframes rc2-crow { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(-20px) translateY(-10px) } 50% { transform: translateX(-40px) translateY(5px) } 75% { transform: translateX(-20px) translateY(-5px) } 100% { transform: translateX(0) translateY(0) } }

/* scene 3 */
.scn-rebel-camp-douglas-arm {
  background:
    linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 40%, #0a0a0a 100%),
    radial-gradient(ellipse at 50% 80%, #4a4a3a 0%, transparent 60%);
}
.scn-rebel-camp-douglas-arm .bg-rc3 {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2a2a 0%, #1a1a12 60%, #12120a 100%);
  animation: rc3-bg 10s ease-in-out infinite alternate;
}
.scn-rebel-camp-douglas-arm .armor-stand-rc3 {
  position: absolute; bottom: 15%; left: 30%; width: 20%; height: 60%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: rc3-stand 4s ease-in-out infinite;
}
.scn-rebel-camp-douglas-arm .shield-rc3 {
  position: absolute; bottom: 30%; left: 36%; width: 15%; height: 22%;
  background: radial-gradient(circle at 50% 50%, #7a6a4a 0%, #4a3a2a 70%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 50% 50%;
  border: 2px solid #8a7a5a;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  transform: rotate(-10deg);
  animation: rc3-shield 1.5s ease-in-out infinite alternate;
}
.scn-rebel-camp-douglas-arm .gauntlet-rc3 {
  position: absolute; bottom: 55%; left: 34%; width: 10%; height: 14%;
  background: #5a4a3a;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: 30% 100%;
  animation: rc3-gauntlet 2s ease-in-out infinite alternate;
}
.scn-rebel-camp-douglas-arm .sword-rc3 {
  position: absolute; bottom: 50%; left: 52%; width: 2%; height: 40%;
  background: linear-gradient(180deg, #8a8a7a 0%, #4a4a3a 100%);
  border-radius: 0 0 20% 20%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: rc3-sword 2.4s ease-in-out infinite alternate;
}
.scn-rebel-camp-douglas-arm .spark-rc3 {
  position: absolute; bottom: 62%; left: 48%; width: 3%; height: 3%;
  background: radial-gradient(circle, #ffcc00 0%, #ff8800 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px #ffaa33;
  animation: rc3-spark 1.8s ease-in-out infinite alternate;
}
.scn-rebel-camp-douglas-arm .chain-rc3 {
  position: absolute; bottom: 18%; left: 28%; width: 24%; height: 4%;
  background: repeating-linear-gradient(90deg, #6a5a4a 0px, #6a5a4a 4px, transparent 4px, transparent 8px);
  border-radius: 2px;
  animation: rc3-chain 8s linear infinite;
}
@keyframes rc3-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes rc3-stand { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(-1px) } }
@keyframes rc3-shield { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(3px) } 100% { transform: rotate(-12deg) translateX(-2px) } }
@keyframes rc3-gauntlet { 0% { transform: rotate(0deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(5deg) } }
@keyframes rc3-sword { 0% { transform: rotate(15deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(10deg) } }
@keyframes rc3-spark { 0% { transform: scale(1) translate(0,0); opacity: 0.8 } 100% { transform: scale(1.5) translate(2px,-2px); opacity: 1 } }
@keyframes rc3-chain { 0% { background-position: 0 0 } 100% { background-position: 8px 0 } }

/* scene 4 */
.scn-rebel-camp-hotspur-wish {
  background:
    linear-gradient(180deg, #5a5a4a 0%, #4a4a3a 40%, #3a3a2a 100%),
    radial-gradient(ellipse at 50% 100%, #6a6a5a 0%, transparent 70%);
}
.scn-rebel-camp-hotspur-wish .sky-rc4 {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #7a7a6a 0%, rgba(255,255,255,0.05) 100%);
  animation: rc4-sky 25s ease-in-out infinite alternate;
}
.scn-rebel-camp-hotspur-wish .horizon-rc4 {
  position: absolute; bottom: 60%; left: 0; right: 0; height: 2%;
  background: #4a4a3a;
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
  animation: rc4-horizon 8s ease-in-out infinite;
}
.scn-rebel-camp-hotspur-wish .figure-rc4 {
  position: absolute; bottom: 35%; left: 45%; width: 10%; height: 30%;
  background: radial-gradient(ellipse 60% 100% at 50% 100%, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rc4-figure 4s ease-in-out infinite;
}
.scn-rebel-camp-hotspur-wish .dust-rc4 {
  position: absolute; bottom: 40%; left: 30%; width: 2%; height: 2%;
  background: radial-gradient(circle, #8a8a7a 0%, transparent 100%);
  border-radius: 50%;
  animation: rc4-dust 10s linear infinite;
}
.scn-rebel-camp-hotspur-wish .dust2-rc4 {
  position: absolute; bottom: 38%; left: 55%; width: 1.5%; height: 1.5%;
  background: radial-gradient(circle, #8a8a7a 0%, transparent 100%);
  border-radius: 50%;
  animation: rc4-dust2 14s linear infinite;
}
.scn-rebel-camp-hotspur-wish .sunbreak-rc4 {
  position: absolute; top: 8%; left: 20%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,200,0.15) 0%, transparent 70%);
  filter: blur(10px);
  animation: rc4-sunbreak 8s ease-in-out infinite alternate;
}
@keyframes rc4-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes rc4-horizon { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(1px) scaleX(0.98) } 100% { transform: translateY(-1px) scaleX(1) } }
@keyframes rc4-figure { 0% { transform: rotate(0) translateX(0) } 25% { transform: rotate(1deg) translateX(2px) translateY(-3px) } 50% { transform: rotate(-1deg) translateX(-1px) translateY(0) } 75% { transform: rotate(0deg) translateX(1px) translateY(-2px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes rc4-dust { 0% { transform: translate(0,0) scale(1); opacity: 0 } 10% { opacity: 0.6 } 90% { opacity: 0.3 } 100% { transform: translate(20px, -30px) scale(2); opacity: 0 } }
@keyframes rc4-dust2 { 0% { transform: translate(0,0) scale(1); opacity: 0 } 10% { opacity: 0.5 } 90% { opacity: 0.2 } 100% { transform: translate(-15px, -25px) scale(1.8); opacity: 0 } }
@keyframes rc4-sunbreak { 0% { transform: scale(1) translateX(0); opacity: 0.3 } 50% { transform: scale(1.2) translateX(10px); opacity: 0.6 } 100% { transform: scale(0.9) translateX(-5px); opacity: 0.4 } }

.scn-prince-apartment-damned-word {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e14 60%, #1a1210 100%),
              radial-gradient(ellipse at 30% 60%, #3a2820 0%, transparent 70%);
}
.scn-prince-apartment-damned-word .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1f1710 0%, #2a1e14 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
}
.scn-prince-apartment-damned-word .window {
  position: absolute; top: 8%; right: 12%; width: 60px; height: 80px;
  background: radial-gradient(circle, #c09050 0%, #5a3a1a 100%);
  border-radius: 4px; filter: blur(2px);
  animation: pa1-glow 6s ease-in-out infinite alternate;
}
.scn-prince-apartment-damned-word .devil {
  position: absolute; bottom: 22%; left: 18%; width: 48px; height: 70px;
  background: linear-gradient(180deg, #1a0e0a 0%, #2a1610 50%, #1a0e0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px rgba(150,60,30,0.3);
  animation: pa1-sway 5s ease-in-out infinite;
}
.scn-prince-apartment-damned-word .devil::before {
  content: ''; position: absolute; top: -18px; left: 8px; width: 0; height: 0;
  border-left: 8px solid transparent; border-right: 8px solid transparent;
  border-bottom: 18px solid #2a1610; transform: rotate(-10deg);
}
.scn-prince-apartment-damned-word .man {
  position: absolute; bottom: 20%; right: 28%; width: 36px; height: 56px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa1-write 4s ease-in-out infinite;
}
.scn-prince-apartment-damned-word .contract {
  position: absolute; bottom: 36%; left: 50%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #a08050 0%, #604020 100%);
  border-radius: 2px; transform: translateX(-50%) rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: pa1-contract 10s ease-in-out infinite;
}
.scn-prince-apartment-damned-word .quill {
  position: absolute; bottom: 38%; left: 58%; width: 4px; height: 26px;
  background: linear-gradient(180deg, #6a4a3a 0%, #2a1a10 100%);
  border-radius: 0 0 50% 50%; transform: rotate(20deg);
  transform-origin: bottom center;
  animation: pa1-quill 4s ease-in-out infinite;
}
.scn-prince-apartment-damned-word .candle {
  position: absolute; bottom: 10%; left: 10%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #c09050 0%, #5a3a1a 100%);
  border-radius: 2px 2px 0 0; filter: blur(1px);
  box-shadow: 0 0 20px 6px rgba(180,130,70,0.4);
  animation: pa1-candle 3s ease-in-out infinite alternate;
}

@keyframes pa1-glow {
  0% { opacity: 0.6; box-shadow: 0 0 20px 4px #c09050; }
  50% { opacity: 1; box-shadow: 0 0 40px 10px #e0b070; }
  100% { opacity: 0.7; box-shadow: 0 0 30px 6px #a06030; }
}
@keyframes pa1-sway {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes pa1-write {
  0% { transform: translate(0, 0) rotate(0); }
  25% { transform: translate(3px, -2px) rotate(2deg); }
  50% { transform: translate(6px, -1px) rotate(-1deg); }
  75% { transform: translate(9px, -2px) rotate(2deg); }
  100% { transform: translate(12px, 0) rotate(0); }
}
@keyframes pa1-contract {
  0%, 100% { box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
  50% { box-shadow: 0 0 12px 2px rgba(180,130,70,0.3); }
}
@keyframes pa1-quill {
  0%, 100% { transform: rotate(20deg); }
  50% { transform: rotate(30deg); }
}
@keyframes pa1-candle {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.1); opacity: 1; }
  100% { transform: scaleY(0.9); opacity: 0.9; }
}

.scn-prince-apartment-gadshill-plot {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e14 60%, #1a1210 100%),
              radial-gradient(ellipse at 50% 70%, #3a2820 0%, transparent 70%);
}
.scn-prince-apartment-gadshill-plot .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1e10 100%);
  border-radius: 8px; box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
}
.scn-prince-apartment-gadshill-plot .map {
  position: absolute; bottom: 38%; left: 25%; width: 120px; height: 40px;
  background: linear-gradient(135deg, #7a6040 0%, #5a4020 100%);
  border-radius: 4px; transform: rotate(-10deg);
  animation: pa2-map 12s ease-in-out infinite;
}
.scn-prince-apartment-gadshill-plot .coins {
  position: absolute; bottom: 42%; left: 60%; width: 20px; height: 20px;
  background: radial-gradient(circle, #d0a050 0%, #705020 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: pa2-coins 5s ease-in-out infinite;
}
.scn-prince-apartment-gadshill-plot .mask-a {
  position: absolute; bottom: 50%; left: 38%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 50% 50% 0 0; transform: rotate(15deg);
  animation: pa2-mask 8s ease-in-out infinite alternate;
}
.scn-prince-apartment-gadshill-plot .mask-b {
  position: absolute; bottom: 50%; left: 50%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 50% 50% 0 0; transform: rotate(-15deg);
  animation: pa2-mask 8s ease-in-out infinite alternate-reverse;
}
.scn-prince-apartment-gadshill-plot .hand {
  position: absolute; bottom: 38%; left: 15%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 20% 20% 0 0; transform-origin: bottom center;
  animation: pa2-hand 4s ease-in-out infinite;
}
.scn-prince-apartment-gadshill-plot .lantern {
  position: absolute; top: 12%; left: 50%; width: 12px; height: 20px;
  background: radial-gradient(circle, #e0a050 0%, #805020 100%);
  border-radius: 4px; box-shadow: 0 0 30px 10px rgba(200,150,70,0.3);
  animation: pa2-lantern 3s ease-in-out infinite alternate;
}

@keyframes pa2-map {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(-5deg) scale(1.02); }
  100% { transform: rotate(-10deg); }
}
@keyframes pa2-coins {
  0% { transform: translateY(0) scale(1); opacity: 0.9; }
  50% { transform: translateY(-3px) scale(1.1); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.9; }
}
@keyframes pa2-mask {
  0% { transform: rotate(15deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes pa2-hand {
  0% { transform: translate(0, 0) rotate(0); }
  25% { transform: translate(10px, -2px) rotate(10deg); }
  50% { transform: translate(20px, 0) rotate(0); }
  75% { transform: translate(30px, -2px) rotate(-5deg); }
  100% { transform: translate(40px, 0) rotate(0); }
}
@keyframes pa2-lantern {
  0% { opacity: 0.7; box-shadow: 0 0 20px 6px rgba(200,150,70,0.2); }
  100% { opacity: 1; box-shadow: 0 0 40px 12px rgba(200,150,70,0.5); }
}

.scn-prince-apartment-blood-royal {
  background: linear-gradient(180deg, #1a1210 0%, #2a1e18 60%, #1a1210 100%),
              radial-gradient(ellipse at 50% 40%, #4a3020 0%, transparent 70%);
}
.scn-prince-apartment-blood-royal .drapes {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, #2a1e18 0%, #1a1210 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.5);
}
.scn-prince-apartment-blood-royal .crown {
  position: absolute; top: 15%; left: 50%; width: 50px; height: 30px;
  background: linear-gradient(135deg, #c0a050 0%, #8a7030 100%);
  border-radius: 8px 8px 4px 4px;
  clip-path: polygon(0 100%, 10% 0, 25% 30%, 40% 0, 50% 20%, 60% 0, 75% 30%, 90% 0, 100% 100%);
  transform: translateX(-50%);
  animation: pa3-crown 8s ease-in-out infinite;
}
.scn-prince-apartment-blood-royal .cushion {
  position: absolute; top: 38%; left: 50%; width: 60px; height: 18px;
  background: linear-gradient(180deg, #5a3030 0%, #3a1a1a 100%);
  border-radius: 10px; transform: translateX(-50%);
  animation: pa3-cushion 4s ease-in-out infinite;
}
.scn-prince-apartment-blood-royal .jester-hat {
  position: absolute; top: 22%; left: 20%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #4a6040 0%, #2a3a20 100%);
  border-radius: 50% 50% 0 0; transform: rotate(-20deg);
  animation: pa3-jester 6s ease-in-out infinite alternate;
}
.scn-prince-apartment-blood-royal .figure {
  position: absolute; bottom: 16%; left: 50%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: pa3-bow 5s ease-in-out infinite;
}
.scn-prince-apartment-blood-royal .spotlight {
  position: absolute; top: 0; left: 30%; right: 30%; bottom: 50%;
  background: radial-gradient(ellipse at center top, rgba(200,170,100,0.15) 0%, transparent 100%);
  animation: pa3-spotlight 7s ease-in-out infinite alternate;
}

@keyframes pa3-crown {
  0% { transform: translateX(-50%) rotate(0); }
  50% { transform: translateX(-50%) rotate(3deg) scale(1.02); }
  100% { transform: translateX(-50%) rotate(0); }
}
@keyframes pa3-cushion {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes pa3-jester {
  0% { transform: rotate(-20deg); }
  100% { transform: rotate(10deg); }
}
@keyframes pa3-bow {
  0% { transform: translateX(-50%) rotate(0); }
  30% { transform: translateX(-50%) rotate(15deg) scaleY(0.9); }
  60% { transform: translateX(-50%) rotate(10deg); }
  100% { transform: translateX(-50%) rotate(0); }
}
@keyframes pa3-spotlight {
  0% { opacity: 0.3; }
  100% { opacity: 0.7; }
}

.scn-prince-apartment-hal-cares-not {
  background: linear-gradient(180deg, #1a1412 0%, #2a1e18 50%, #1a1210 100%),
              radial-gradient(ellipse at 40% 80%, #3a2820 0%, transparent 70%);
}
.scn-prince-apartment-hal-cares-not .couch {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1e14 100%);
  border-radius: 40px 40px 8px 8px;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.4);
}
.scn-prince-apartment-hal-cares-not .figure {
  position: absolute; bottom: 22%; left: 30%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: pa4-recline 6s ease-in-out infinite;
}
.scn-prince-apartment-hal-cares-not .hand {
  position: absolute; bottom: 40%; left: 50%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 20% 20% 0 0; transform-origin: bottom center;
  animation: pa4-wave 3s ease-in-out infinite;
}
.scn-prince-apartment-hal-cares-not .goblet {
  position: absolute; bottom: 42%; left: 58%; width: 12px; height: 22px;
  background: linear-gradient(180deg, #b0a080 0%, #605040 100%);
  border-radius: 0 0 4px 4px;
  animation: pa4-goblet 5s ease-in-out infinite alternate;
}
.scn-prince-apartment-hal-cares-not .bottle {
  position: absolute; bottom: 30%; left: 68%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 6px 6px 2px 2px;
  transform: rotate(25deg);
  animation: pa4-bottle 7s ease-in-out infinite;
}
.scn-prince-apartment-hal-cares-not .candle {
  position: absolute; bottom: 10%; right: 12%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #c09050 0%, #5a3a1a 100%);
  border-radius: 2px; box-shadow: 0 0 15px 5px rgba(180,130,70,0.3);
  animation: pa4-candle 4s ease-in-out infinite alternate;
}
.scn-prince-apartment-hal-cares-not .glow {
  position: absolute; bottom: 8%; right: 10%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,160,100,0.15) 0%, transparent 100%);
  animation: pa4-glow 6s ease-in-out infinite alternate;
}

@keyframes pa4-recline {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(-15deg) translateY(-2px); }
  100% { transform: rotate(-10deg); }
}
@keyframes pa4-wave {
  0% { transform: rotate(0); }
  25% { transform: rotate(30deg); }
  50% { transform: rotate(-10deg); }
  75% { transform: rotate(20deg); }
  100% { transform: rotate(0); }
}
@keyframes pa4-goblet {
  0% { transform: rotate(0); }
  100% { transform: rotate(10deg) translateX(2px); }
}
@keyframes pa4-bottle {
  0% { transform: rotate(25deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(25deg); }
}
@keyframes pa4-candle {
  0% { opacity: 0.7; transform: scaleY(1); }
  100% { opacity: 1; transform: scaleY(1.05); }
}
@keyframes pa4-glow {
  0% { opacity: 0.3; }
  100% { opacity: 0.7; }
}

.scn-london-palace-king-rejects-mortimer {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 40%, #0e0e1a 100%), radial-gradient(ellipse at 40% 30%, #c8a060 0%, transparent 70%);
}
.scn-london-palace-king-rejects-mortimer .bg-throne {
  position: absolute; inset: 30% 20% 15% 20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius: 20% 20% 5% 5%; box-shadow: inset 0 0 40px #0a0a0a; animation: kp-throne 8s ease-in-out infinite alternate;
}
.scn-london-palace-king-rejects-mortimer .column-left {
  position: absolute; top:10%; left:5%; width:8%; height:80%; background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 10px 0 20px rgba(0,0,0,0.5); animation: kp-column 12s ease-in-out infinite;
}
.scn-london-palace-king-rejects-mortimer .column-right {
  position: absolute; top:10%; right:5%; width:8%; height:80%; background: linear-gradient(90deg, #2a1a0a 0%, #4a3a2a 100%); border-radius: 10% 10% 0 0; box-shadow: -10px 0 20px rgba(0,0,0,0.5); animation: kp-column 12s ease-in-out infinite reverse;
}
.scn-london-palace-king-rejects-mortimer .king-figure {
  position: absolute; bottom:22%; left:45%; width:14%; height:35%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; transform-origin: bottom center; animation: kp-king 6s ease-in-out infinite alternate;
}
.scn-london-palace-king-rejects-mortimer .crown-glow {
  position: absolute; bottom:53%; left:46%; width:8%; height:5%; background: radial-gradient(circle, #f0c862 0%, #c08030 60%, transparent 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 30px #f0c862, 0 0 60px rgba(240,200,98,0.5); animation: kp-crown 2s ease-in-out infinite alternate;
}
.scn-london-palace-king-rejects-mortimer .window-light {
  position: absolute; top:12%; left:35%; width:30%; height:25%; background: linear-gradient(180deg, rgba(255,220,150,0.6) 0%, rgba(255,200,100,0.2) 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); filter: blur(8px); animation: kp-light 5s ease-in-out infinite alternate;
}
.scn-london-palace-king-rejects-mortimer .shadow-fall {
  position: absolute; bottom:0; left:15%; width:70%; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%); animation: kp-shadow 9s ease-in-out infinite alternate;
}
.scn-london-palace-king-rejects-mortimer .chain {
  position: absolute; bottom:30%; left:30%; width:40%; height:2%; background: linear-gradient(90deg, #8a7a6a 0%, #5a4a3a 50%, #8a7a6a 100%); border-radius: 50%; filter: blur(1px); animation: kp-chain 4s ease-in-out infinite;
}
@keyframes kp-throne {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); box-shadow: inset 0 0 50px #0a0a0a; }
  100% { transform: scaleY(1); }
}
@keyframes kp-column {
  0% { opacity: 0.9; }
  50% { opacity: 0.95; }
  100% { opacity: 0.9; }
}
@keyframes kp-king {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-0.5deg); }
  100% { transform: translateY(0) rotate(0.5deg); }
}
@keyframes kp-crown {
  0% { box-shadow: 0 0 20px #c08030; opacity: 0.8; }
  50% { box-shadow: 0 0 40px #f0c862, 0 0 70px rgba(240,200,98,0.5); opacity: 1; }
  100% { box-shadow: 0 0 25px #c08030; opacity: 0.9; }
}
@keyframes kp-light {
  0% { opacity: 0.5; filter: blur(10px); }
  50% { opacity: 0.8; filter: blur(6px); }
  100% { opacity: 0.5; filter: blur(10px); }
}
@keyframes kp-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes kp-chain {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(5px) scaleX(1.03); }
  100% { transform: translateX(0) scaleX(1); }
}

.scn-london-palace-hotspur-defends-mortimer {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0e00 100%), radial-gradient(ellipse at 50% 20%, #e0b060 0%, transparent 70%);
}
.scn-london-palace-hotspur-defends-mortimer .bg-hall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); clip-path: polygon(0 0, 100% 0, 95% 100%, 5% 100%); animation: hd-hall 15s ease-in-out infinite alternate;
}
.scn-london-palace-hotspur-defends-mortimer .hotspur-body {
  position: absolute; bottom:20%; left:50%; width:16%; height:40%; transform: translateX(-50%); background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 30% 30% 15% 15% / 40% 40% 20% 20%; animation: hd-body 5s ease-in-out infinite alternate;
}
.scn-london-palace-hotspur-defends-mortimer .hotspur-arm {
  position: absolute; bottom:50%; left:58%; width:5%; height:20%; transform-origin: 50% 0; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 30% 30% 0 0; animation: hd-arm 3s ease-in-out infinite;
}
.scn-london-palace-hotspur-defends-mortimer .table-map {
  position: absolute; bottom:10%; left:30%; width:40%; height:12%; background: radial-gradient(ellipse, #8a7a5a 0%, #5a4a2a 100%); border-radius: 5% 5% 30% 30%; box-shadow: 0 5px 20px rgba(0,0,0,0.5); animation: hd-table 10s ease-in-out infinite;
}
.scn-london-palace-hotspur-defends-mortimer .goblet {
  position: absolute; bottom:20%; left:40%; width:6%; height:8%; background: linear-gradient(180deg, #b09070 0%, #6a5030 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 10px #c0a080; animation: hd-goblet 4s ease-in-out infinite alternate;
}
.scn-london-palace-hotspur-defends-mortimer .sharp-shadow {
  position: absolute; bottom:0; left:20%; width:60%; height:50%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: hd-shadow 8s ease-in-out infinite alternate;
}
.scn-london-palace-hotspur-defends-mortimer .torch-glow {
  position: absolute; top:15%; left:15%; width:10%; height:15%; background: radial-gradient(circle, #f0c060 0%, #e08020 50%, transparent 100%); filter: blur(10px); animation: hd-torch 3s ease-in-out infinite alternate;
}
.scn-london-palace-hotspur-defends-mortimer .chain-scroll {
  position: absolute; bottom:35%; left:30%; width:40%; height:3%; background: linear-gradient(90deg, #9a8a6a 0%, #5a4a2a 50%, #9a8a6a 100%); border-radius: 50%; filter: blur(2px); animation: hd-scroll 6s ease-in-out infinite;
}
@keyframes hd-hall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes hd-body {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-4px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
}
@keyframes hd-arm {
  0% { transform: rotate(-30deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(-30deg); }
}
@keyframes hd-table {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes hd-goblet {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes hd-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}
@keyframes hd-torch {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes hd-scroll {
  0% { transform: translateX(0); }
  50% { transform: translateX(8px); }
  100% { transform: translateX(0); }
}

.scn-london-palace-hotspur-severn-fight {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #1a0e00 100%), radial-gradient(ellipse at 50% 40%, #c08040 0%, transparent 60%);
}
.scn-london-palace-hotspur-severn-fight .bg-tapestry {
  position: absolute; inset: 15% 10% 10% 10%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 10% 10% 2% 2%; box-shadow: inset 0 0 30px #0a0a0a; animation: sf-tapestry 20s ease-in-out infinite alternate;
}
.scn-london-palace-hotspur-severn-fight .warrior-left {
  position: absolute; bottom:25%; left:25%; width:16%; height:40%; background: linear-gradient(180deg, #6a4a3a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; transform: rotate(15deg); animation: sf-warrior-l 6s ease-in-out infinite;
}
.scn-london-palace-hotspur-severn-fight .warrior-right {
  position: absolute; bottom:25%; right:25%; width:16%; height:40%; background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; transform: rotate(-15deg); animation: sf-warrior-r 6s ease-in-out infinite reverse;
}
.scn-london-palace-hotspur-severn-fight .river-flow {
  position: absolute; bottom:10%; left:10%; width:80%; height:20%; background: linear-gradient(90deg, #4a6a8a 0%, #6a9aba 50%, #4a6a8a 100%); border-radius: 50% 50% 30% 30% / 30% 30% 50% 50%; filter: blur(3px); animation: sf-river 10s ease-in-out infinite alternate;
}
.scn-london-palace-hotspur-severn-fight .reeds {
  position: absolute; bottom:15%; left:15%; width:10%; height:25%; background: linear-gradient(180deg, #5a7a3a 0%, #2a4a1a 100%); border-radius: 10% 10% 50% 50%; transform: rotate(-10deg); animation: sf-reeds 4s ease-in-out infinite alternate;
}
.scn-london-palace-hotspur-severn-fight .blood-drip {
  position: absolute; bottom:40%; left:30%; width:2%; height:5%; background: radial-gradient(circle, #a0461a 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: sf-blood 3s ease-in-out infinite alternate;
}
.scn-london-palace-hotspur-severn-fight .sword-strike {
  position: absolute; top:40%; left:45%; width:10%; height:2%; background: linear-gradient(90deg, transparent 0%, #c0a080 50%, transparent 100%); filter: blur(2px); animation: sf-sword 2s ease-in-out infinite;
}
.scn-london-palace-hotspur-severn-fight .dust-motes {
  position: absolute; top:30%; left:10%; width:80%; height:20%; background: radial-gradient(circle at 30% 50%, rgba(200,180,140,0.3) 0%, transparent 70%); filter: blur(8px); animation: sf-dust 15s linear infinite;
}
@keyframes sf-tapestry {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.01); }
  100% { transform: scaleX(1); }
}
@keyframes sf-warrior-l {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-5px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes sf-warrior-r {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-5px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes sf-river {
  0% { background-position: 0% 50%; }
  50% { background-size: 120% 100%; }
  100% { background-position: 100% 50%; }
}
@keyframes sf-reeds {
  0% { transform: rotate(-10deg) scaleY(1); }
  50% { transform: rotate(-15deg) scaleY(1.05); }
  100% { transform: rotate(-10deg) scaleY(1); }
}
@keyframes sf-blood {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(1); }
}
@keyframes sf-sword {
  0% { opacity: 0; transform: translateX(-20px); }
  50% { opacity: 1; transform: translateX(0); }
  100% { opacity: 0; transform: translateX(20px); }
}
@keyframes sf-dust {
  0% { transform: translateY(0); opacity: 0.4; }
  50% { transform: translateY(-10px); opacity: 0.6; }
  100% { transform: translateY(0); opacity: 0.4; }
}

.scn-london-palace-king-accuses-hotspur {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0e00 100%), radial-gradient(ellipse at 30% 30%, #c8a060 0%, transparent 60%);
}
.scn-london-palace-king-accuses-hotspur .bg-throne-room {
  position: absolute; inset: 5% 5% 5% 5%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 20% 20% 5% 5%; box-shadow: inset 0 0 40px #0a0a0a; animation: ka-room 18s ease-in-out infinite alternate;
}
.scn-london-palace-king-accuses-hotspur .king-pointing {
  position: absolute; bottom:20%; left:38%; width:18%; height:45%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 15% 15% / 40% 40% 20% 20%; transform: rotate(10deg); animation: ka-king 5s ease-in-out infinite alternate;
}
.scn-london-palace-king-accuses-hotspur .king-crown {
  position: absolute; bottom:58%; left:41%; width:10%; height:5%; background: radial-gradient(circle, #f0c862 0%, #c08030 60%, transparent 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 20px #f0c862; animation: ka-crown 3s ease-in-out infinite alternate;
}
.scn-london-palace-king-accuses-hotspur .hotspur-defiant {
  position: absolute; bottom:20%; right:35%; width:16%; height:40%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; transform: rotate(-8deg); animation: ka-hotspur 4s ease-in-out infinite;
}
.scn-london-palace-king-accuses-hotspur .prisoner-chain {
  position: absolute; bottom:25%; left:55%; width:6%; height:3%; background: linear-gradient(90deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 50%; filter: blur(2px); animation: ka-chain 5s ease-in-out infinite alternate;
}
.scn-london-palace-king-accuses-hotspur .bright-light {
  position: absolute; top:10%; left:30%; width:40%; height:30%; background: radial-gradient(ellipse, rgba(255,220,150,0.5) 0%, transparent 70%); filter: blur(15px); animation: ka-light 6s ease-in-out infinite alternate;
}
.scn-london-palace-king-accuses-hotspur .candle-flame {
  position: absolute; top:50%; left:20%; width:4%; height:6%; background: radial-gradient(circle, #f0c060 0%, #e08020 50%, transparent 100%); filter: blur(4px); animation: ka-candle 2s ease-in-out infinite alternate;
}
.scn-london-palace-king-accuses-hotspur .shadow-diagonal {
  position: absolute; bottom:0; left:10%; width:80%; height:50%; background: linear-gradient(45deg, rgba(0,0,0,0.6) 0%, transparent 60%); clip-path: polygon(0 100%, 100% 100%, 70% 0, 30% 0); animation: ka-diag 7s ease-in-out infinite alternate;
}
@keyframes ka-room {
  0% { transform: scale(1); }
  50% { transform: scale(1.01); }
  100% { transform: scale(1); }
}
@keyframes ka-king {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-4px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes ka-crown {
  0% { box-shadow: 0 0 15px #c08030; opacity: 0.8; }
  50% { box-shadow: 0 0 40px #f0c862; opacity: 1; }
  100% { box-shadow: 0 0 20px #c08030; opacity: 0.9; }
}
@keyframes ka-hotspur {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-6deg) translateY(-3px); }
  100% { transform: rotate(-8deg) translateY(0); }
}
@keyframes ka-chain {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.1) translateX(3px); }
  100% { transform: scaleX(1) translateX(0); }
}
@keyframes ka-light {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.05); }
  100% { opacity: 0.4; transform: scale(1); }
}
@keyframes ka-candle {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.15); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes ka-diag {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}

.scn-eastcheap-boars-head-otter-reason {
  background:
    radial-gradient(ellipse at 50% 20%, rgba(255,200,150,0.15) 0%, transparent 50%),
    linear-gradient(180deg, #3a2a1a 0%, #2a1e12 40%, #1a1208 100%);
}
.scn-eastcheap-boars-head-otter-reason .bg-wall {
  position: absolute; inset: 0; background:
    linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-eastcheap-boars-head-otter-reason .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-eastcheap-boars-head-otter-reason .falstaff {
  position: absolute; bottom: 28%; left: 22%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: otr1-falstaff 4s ease-in-out infinite;
}
.scn-eastcheap-boars-head-otter-reason .hostess {
  position: absolute; bottom: 28%; right: 20%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: otr1-hostess 3.5s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-otter-reason .otter {
  position: absolute; bottom: 24%; left: 45%; width: 30px; height: 18px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3018 100%);
  border-radius: 60% 40% 30% 70% / 70% 50% 50% 60%;
  animation: otr1-otter 2s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-otter-reason .lantern {
  position: absolute; top: 30%; right: 25%; width: 14px; height: 22px;
  background: linear-gradient(180deg, #b08040 0%, #806020 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(255,200,100,0.4);
  animation: otr1-lantern 6s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-otter-reason .candleglow {
  position: absolute; top: 30%; right: 25%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(255,220,150,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: otr1-glow 3s ease-in-out infinite alternate;
}
@keyframes otr1-falstaff {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes otr1-hostess {
  0% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(5px) rotate(3deg); }
}
@keyframes otr1-otter {
  0% { transform: translateY(0) scale(1); }
  100% { transform: translateY(-3px) scale(1.05); }
}
@keyframes otr1-lantern {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes otr1-glow {
  0% { opacity: 0.7; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.1); }
}

.scn-eastcheap-boars-head-hostess-owes-thousand {
  background:
    radial-gradient(ellipse at 40% 60%, rgba(255,200,150,0.1) 0%, transparent 60%),
    linear-gradient(180deg, #3a2a1a 0%, #2a1e12 40%, #1a1208 100%);
}
.scn-eastcheap-boars-head-hostess-owes-thousand .bg-wall {
  position: absolute; inset: 0; background:
    linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-eastcheap-boars-head-hostess-owes-thousand .counter {
  position: absolute; bottom: 22%; left: 5%; right: 5%; height: 10%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.4);
}
.scn-eastcheap-boars-head-hostess-owes-thousand .coinpile {
  position: absolute; bottom: 28%; left: 40%; width: 50px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #d4a030 0%, #b08020 50%, #806010 100%);
  border-radius: 50%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: hst2-coinpile 2s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-hostess-owes-thousand .hostess-hand {
  position: absolute; bottom: 30%; left: 35%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: hst2-hand 3s ease-in-out infinite;
}
.scn-eastcheap-boars-head-hostess-owes-thousand .falstaff-hand {
  position: absolute; bottom: 30%; right: 38%; width: 22px; height: 28px;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom right;
  animation: hst2-hand2 3.5s ease-in-out infinite;
}
.scn-eastcheap-boars-head-hostess-owes-thousand .purse {
  position: absolute; bottom: 32%; left: 50%; width: 24px; height: 28px;
  background: linear-gradient(180deg, #8a6030 0%, #604020 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: hst2-purse 2s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-hostess-owes-thousand .candle {
  position: absolute; top: 35%; left: 15%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 3px;
  box-shadow: 0 0 12px 4px rgba(255,200,100,0.3);
  animation: hst2-candle 3s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-hostess-owes-thousand .sparkle {
  position: absolute; top: 35%; left: 15%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,220,150,0.2) 0%, transparent 60%);
  border-radius: 50%;
  animation: hst2-sparkle 2s ease-in-out infinite alternate;
}
@keyframes hst2-coinpile {
  0% { transform: scale(1); }
  100% { transform: scale(1.05) translateY(-2px); }
}
@keyframes hst2-hand {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-10deg); }
  100% { transform: rotate(5deg); }
}
@keyframes hst2-hand2 {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes hst2-purse {
  0% { transform: translateY(0); }
  100% { transform: translateY(-3px) rotate(5deg); }
}
@keyframes hst2-candle {
  0% { opacity: 0.8; transform: scaleY(1); }
  100% { opacity: 1; transform: scaleY(1.1); }
}
@keyframes hst2-sparkle {
  0% { opacity: 0.6; transform: scale(1); }
  100% { opacity: 0.9; transform: scale(1.2); }
}

.scn-eastcheap-boars-head-did-i {
  background:
    radial-gradient(ellipse at 30% 50%, rgba(255,200,150,0.12) 0%, transparent 60%),
    linear-gradient(180deg, #3a2a1a 0%, #2a1e12 40%, #1a1208 100%);
}
.scn-eastcheap-boars-head-did-i .bg-wall {
  position: absolute; inset: 0; background:
    linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-eastcheap-boars-head-did-i .ring {
  position: absolute; top: 35%; left: 50%; width: 30px; height: 30px;
  border: 4px solid #b08040;
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(200,160,80,0.5);
  animation: didi3-ring 2s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-did-i .handpoint {
  position: absolute; bottom: 35%; left: 30%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: didi3-handpoint 3s ease-in-out infinite;
}
.scn-eastcheap-boars-head-did-i .prince-silhouette {
  position: absolute; bottom: 25%; right: 15%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: didi3-prince 4s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-did-i .falstaff-silhouette {
  position: absolute; bottom: 25%; left: 15%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #3a2218 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: didi3-falstaff 3s ease-in-out infinite;
}
.scn-eastcheap-boars-head-did-i .lion-whelp {
  position: absolute; bottom: 30%; left: 45%; width: 24px; height: 20px;
  background: linear-gradient(180deg, #c08040 0%, #8a6020 100%);
  border-radius: 50% 50% 30% 50% / 60% 50% 40% 50%;
  box-shadow: 0 0 6px 2px rgba(200,160,80,0.3);
  animation: didi3-lion 2.5s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-did-i .candleflame {
  position: absolute; top: 20%; left: 20%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #f0a050 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,200,100,0.3);
  animation: didi3-flame 1.5s ease-in-out infinite alternate;
}
@keyframes didi3-ring {
  0% { transform: scale(1) rotate(0deg); }
  100% { transform: scale(1.1) rotate(15deg); }
}
@keyframes didi3-handpoint {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-5px) rotate(-5deg); }
  75% { transform: translateY(-2px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes didi3-prince {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes didi3-falstaff {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes didi3-lion {
  0% { transform: scale(1) rotate(-5deg); }
  100% { transform: scale(1.08) rotate(5deg); }
}
@keyframes didi3-flame {
  0% { transform: scaleY(1); opacity: 0.8; }
  100% { transform: scaleY(1.2); opacity: 1; }
}

.scn-eastcheap-boars-head-lion-fear {
  background:
    radial-gradient(ellipse at 50% 30%, rgba(255,200,150,0.1) 0%, transparent 60%),
    linear-gradient(180deg, #3a2a1a 0%, #2a1e12 40%, #1a1208 100%);
}
.scn-eastcheap-boars-head-lion-fear .bg-wall {
  position: absolute; inset: 0; background:
    linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-eastcheap-boars-head-lion-fear .lion-head {
  position: absolute; top: 15%; left: 50%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #c08040 0%, #8a6020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 15px 5px rgba(200,160,80,0.4);
  animation: lion4-head 3s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-lion-fear .belt {
  position: absolute; bottom: 25%; left: 35%; right: 35%; height: 6px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%);
  border-radius: 3px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform-origin: center;
  animation: lion4-belt 2s ease-in-out infinite;
}
.scn-eastcheap-boars-head-lion-fear .guts-left {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #9a6030 0%, #6a4020 100%);
  border-radius: 50% 40% 50% 40% / 60% 50% 50% 40%;
  transform-origin: top center;
  animation: lion4-guts-left 1.5s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-lion-fear .guts-right {
  position: absolute; bottom: 18%; right: 30%; width: 18px; height: 22px;
  background: linear-gradient(180deg, #9a6030 0%, #6a4020 100%);
  border-radius: 40% 50% 40% 50% / 50% 60% 40% 50%;
  transform-origin: top center;
  animation: lion4-guts-right 1.8s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-lion-fear .falstaff-figure {
  position: absolute; bottom: 20%; left: 42%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lion4-falstaff 4s ease-in-out infinite;
}
.scn-eastcheap-boars-head-lion-fear .puddle {
  position: absolute; bottom: 8%; left: 25%; right: 25%; height: 12px;
  background: radial-gradient(ellipse, rgba(180,120,60,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: lion4-puddle 3s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-lion-fear .candle {
  position: absolute; top: 40%; right: 20%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 3px;
  box-shadow: 0 0 10px 3px rgba(255,200,100,0.3);
  animation: lion4-candle 2s ease-in-out infinite alternate;
}
@keyframes lion4-head {
  0% { transform: scale(1) rotate(-3deg); }
  50% { transform: scale(1.05) rotate(3deg); }
  100% { transform: scale(1) rotate(-2deg); }
}
@keyframes lion4-belt {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(0.9) translateY(2px); }
  100% { transform: scaleX(1) translateY(0); }
}
@keyframes lion4-guts-left {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(10px) rotate(20deg); }
}
@keyframes lion4-guts-right {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(8px) rotate(-15deg); }
}
@keyframes lion4-falstaff {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-2px) rotate(-2deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  75% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lion4-puddle {
  0% { transform: scaleY(1); opacity: 0.5; }
  100% { transform: scaleY(0.8); opacity: 0.3; }
}
@keyframes lion4-candle {
  0% { opacity: 0.7; transform: scaleY(1); }
  100% { opacity: 1; transform: scaleY(1.15); }
}

.scn-boars-head-tavern-francis-called-again {
  background: 
    linear-gradient(180deg, #3b2314 0%, #1f0f07 40%, #140a04 100%),
    radial-gradient(ellipse at 50% 30%, #654321 0%, transparent 70%);
}
.scn-boars-head-tavern-francis-called-again .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #2d1a0e 0%, #1f0f07 50%, #2d1a0e 100%); 
  border: 2px solid #4a3020; box-shadow: inset 0 0 60px #0a0502; animation: none; z-index: 0;
}
.scn-boars-head-tavern-francis-called-again .beam-left {
  position: absolute; top: 10%; left: 5%; width: 12%; height: 6%; background: #4a2e1a; 
  border-radius: 4px; box-shadow: 0 4px 8px #000; transform: rotate(-5deg); animation: bt1-beam 8s ease-in-out infinite;
}
.scn-boars-head-tavern-francis-called-again .beam-right {
  position: absolute; top: 8%; right: 8%; width: 15%; height: 5%; background: #4a2e1a; 
  border-radius: 4px; box-shadow: 0 4px 8px #000; transform: rotate(4deg); animation: bt1-beam 8s ease-in-out infinite reverse;
}
.scn-boars-head-tavern-francis-called-again .figure.francis {
  position: absolute; bottom: 22%; left: 50%; width: 22px; height: 48px; transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2214 0%, #1c0e06 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  animation: bt1-francis 4s ease-in-out infinite;
  z-index: 2;
}
.scn-boars-head-tavern-francis-called-again .call-left {
  position: absolute; top: 30%; left: 10%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,160,100,0.4) 0%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: bt1-call-left 3s ease-in-out infinite;
  z-index: 1;
}
.scn-boars-head-tavern-francis-called-again .call-right {
  position: absolute; top: 20%; right: 12%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at 70% 50%, rgba(200,160,100,0.3) 0%, transparent 70%);
  border-radius: 50%; filter: blur(10px);
  animation: bt1-call-right 3.5s ease-in-out infinite;
  z-index: 1;
}
.scn-boars-head-tavern-francis-called-again .table {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #5a3d24 0%, #3a2514 100%);
  border-radius: 8px; box-shadow: 0 6px 12px #0a0502;
  animation: bt1-table 12s ease-in-out infinite;
}
.scn-boars-head-tavern-francis-called-again .mug {
  position: absolute; bottom: 26%; left: 55%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #7a5535 0%, #4a2e18 100%);
  border-radius: 4px 4px 6px 6px; box-shadow: 0 2px 4px #000;
  animation: bt1-mug 5s ease-in-out infinite;
}
@keyframes bt1-beam {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-4deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes bt1-francis {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-45%) rotate(-3deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  75% { transform: translateX(-55%) rotate(3deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes bt1-call-left {
  0% { opacity: 0.3; transform: scale(0.8) translateX(0); }
  50% { opacity: 0.7; transform: scale(1.1) translateX(10px); }
  100% { opacity: 0.3; transform: scale(0.8) translateX(0); }
}
@keyframes bt1-call-right {
  0% { opacity: 0.2; transform: scale(0.9) translateX(0); }
  50% { opacity: 0.6; transform: scale(1.2) translateX(-10px); }
  100% { opacity: 0.2; transform: scale(0.9) translateX(0); }
}
@keyframes bt1-table {
  0% { transform: translateY(0); box-shadow: 0 6px 12px #0a0502; }
  50% { transform: translateY(-3px); box-shadow: 0 10px 20px #0a0502; }
  100% { transform: translateY(0); box-shadow: 0 6px 12px #0a0502; }
}
@keyframes bt1-mug {
  0%,100% { transform: rotate(0deg) translate(0,0); }
  25% { transform: rotate(5deg) translate(2px,-2px); }
  75% { transform: rotate(-5deg) translate(-2px,-1px); }
}

.scn-boars-head-tavern-francis-called-again-within {
  background: 
    linear-gradient(180deg, #302010 0%, #1a0c04 60%, #0d0602 100%),
    radial-gradient(ellipse at 60% 40%, #4a3020 0%, transparent 70%);
}
.scn-boars-head-tavern-francis-called-again-within .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #26160a 0%, #1a0c04 50%, #26160a 100%);
  box-shadow: inset 0 0 80px #050200; z-index: 0;
}
.scn-boars-head-tavern-francis-called-again-within .window-glow {
  position: absolute; top: 8%; right: 12%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at center, #b0805060 0%, transparent 70%);
  border-radius: 8px; filter: blur(12px); animation: bt2-window 8s ease-in-out infinite;
  z-index: 1;
}
.scn-boars-head-tavern-francis-called-again-within .figure.francis {
  position: absolute; bottom: 22%; left: 40%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0c04 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%;
  animation: bt2-francis 3s ease-in-out infinite;
  z-index: 2;
}
.scn-boars-head-tavern-francis-called-again-within .voice-within {
  position: absolute; top: 25%; right: 20%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 60% 40%, rgba(220,180,120,0.3) 0%, transparent 70%);
  border-radius: 50%; filter: blur(12px);
  animation: bt2-voice 2.5s ease-in-out infinite;
  z-index: 1;
}
.scn-boars-head-tavern-francis-called-again-within .table {
  position: absolute; bottom: 15%; left: 20%; width: 35%; height: 10%;
  background: linear-gradient(180deg, #4a3018 0%, #2a1a0c 100%);
  border-radius: 6px; box-shadow: 0 4px 8px #000;
  animation: bt2-table 15s ease-in-out infinite;
}
.scn-boars-head-tavern-francis-called-again-within .stool {
  position: absolute; bottom: 15%; left: 55%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%);
  border-radius: 6px; transform: rotate(2deg);
  animation: bt2-stool 6s ease-in-out infinite;
}
.scn-boars-head-tavern-francis-called-again-within .candle {
  position: absolute; bottom: 30%; left: 50%; width: 6px; height: 12px;
  background: linear-gradient(180deg, #ffd080 0%, #b07030 100%);
  border-radius: 2px; box-shadow: 0 0 20px 6px #d09050; animation: bt2-candle 2s ease-in-out infinite alternate;
}
@keyframes bt2-window {
  0% { opacity: 0.4; }
  50% { opacity: 0.9; }
  100% { opacity: 0.4; }
}
@keyframes bt2-francis {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(-8px) rotate(-4deg); }
  66% { transform: translateX(8px) rotate(4deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bt2-voice {
  0% { transform: scale(0.8) translateX(0); opacity: 0.3; }
  50% { transform: scale(1.3) translateX(-10px); opacity: 0.7; }
  100% { transform: scale(0.8) translateX(0); opacity: 0.3; }
}
@keyframes bt2-table {
  0% { transform: translateY(0); box-shadow: 0 4px 8px #000; }
  50% { transform: translateY(-2px); box-shadow: 0 8px 16px #000; }
  100% { transform: translateY(0); box-shadow: 0 4px 8px #000; }
}
@keyframes bt2-stool {
  0% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-3px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes bt2-candle {
  0% { opacity: 0.7; box-shadow: 0 0 15px 4px #d09050; }
  100% { opacity: 1; box-shadow: 0 0 30px 8px #ffb070; }
}

.scn-boars-head-tavern-what-sir {
  background: 
    linear-gradient(180deg, #331e0e 0%, #1a0e04 50%, #0d0602 100%),
    radial-gradient(ellipse at 40% 60%, #4a2a16 0%, transparent 70%);
}
.scn-boars-head-tavern-what-sir .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #2a1a0c 0%, #1a0c04 50%, #2a1a0c 100%);
  box-shadow: inset 0 0 70px #030100; z-index: 0;
}
.scn-boars-head-tavern-what-sir .arch {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #4a2e1e 0%, transparent 70%);
  border-radius: 50% 50% 0 0; opacity: 0.3;
  animation: bt3-arch 10s ease-in-out infinite; z-index: 1;
}
.scn-boars-head-tavern-what-sir .figure.francis-spread {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 50px; transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2010 0%, #1a0c04 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%;
  animation: bt3-francis 3.5s ease-in-out infinite;
  z-index: 2;
}
.scn-boars-head-tavern-what-sir .call-left {
  position: absolute; top: 30%; left: 8%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 30% 50%, rgba(180,140,90,0.5) 0%, transparent 60%);
  filter: blur(8px); animation: bt3-call-l 4s ease-in-out infinite; z-index: 1;
}
.scn-boars-head-tavern-what-sir .call-right {
  position: absolute; top: 25%; right: 10%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at 70% 50%, rgba(180,140,90,0.4) 0%, transparent 60%);
  filter: blur(10px); animation: bt3-call-r 4.5s ease-in-out infinite; z-index: 1;
}
.scn-boars-head-tavern-what-sir .table {
  position: absolute; bottom: 12%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #4a2e18 0%, #2a180c 100%);
  border-radius: 6px; box-shadow: 0 4px 12px #000; animation: bt3-table 14s ease-in-out infinite;
}
.scn-boars-head-tavern-what-sir .mug {
  position: absolute; bottom: 18%; left: 55%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%);
  border-radius: 4px; box-shadow: 0 2px 6px #000; animation: bt3-mug 6s ease-in-out infinite;
}
.scn-boars-head-tavern-what-sir .spilled-tankard {
  position: absolute; bottom: 16%; left: 40%; width: 30px; height: 8px;
  background: radial-gradient(ellipse at 50% 50%, #a0805530 0%, transparent 70%);
  border-radius: 50%; filter: blur(3px); animation: bt3-spill 9s ease-in-out infinite;
}
@keyframes bt3-arch {
  0% { opacity: 0.2; transform: scaleY(0.9); }
  50% { opacity: 0.4; transform: scaleY(1); }
  100% { opacity: 0.2; transform: scaleY(0.9); }
}
@keyframes bt3-francis {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-44%) rotate(-6deg) scaleX(1.1); }
  50% { transform: translateX(-50%) rotate(0deg) scaleX(1); }
  75% { transform: translateX(-56%) rotate(6deg) scaleX(1.1); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes bt3-call-l {
  0% { transform: scale(0.9) translateX(0); opacity: 0.5; }
  50% { transform: scale(1.2) translateX(15px); opacity: 0.9; }
  100% { transform: scale(0.9) translateX(0); opacity: 0.5; }
}
@keyframes bt3-call-r {
  0% { transform: scale(1) translateX(0); opacity: 0.4; }
  50% { transform: scale(1.3) translateX(-15px); opacity: 0.8; }
  100% { transform: scale(1) translateX(0); opacity: 0.4; }
}
@keyframes bt3-table {
  0% { transform: translateY(0); box-shadow: 0 4px 12px #000; }
  50% { transform: translateY(-2px); box-shadow: 0 8px 20px #000; }
  100% { transform: translateY(0); box-shadow: 0 4px 12px #000; }
}
@keyframes bt3-mug {
  0%,100% { transform: rotate(0deg) translate(0,0); }
  25% { transform: rotate(8deg) translate(3px,-2px); }
  75% { transform: rotate(-8deg) translate(-3px,-1px); }
}
@keyframes bt3-spill {
  0% { width: 30px; opacity: 0.4; }
  50% { width: 50px; opacity: 0.2; }
  100% { width: 30px; opacity: 0.4; }
}

.scn-boars-head-tavern-let-alone {
  background: 
    linear-gradient(180deg, #2a180c 0%, #160a04 50%, #0a0502 100%),
    radial-gradient(ellipse at 50% 35%, #3a2012 0%, transparent 70%);
}
.scn-boars-head-tavern-let-alone .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1f0f07 0%, #130904 50%, #1f0f07 100%);
  box-shadow: inset 0 0 100px #030100; z-index: 0;
}
.scn-boars-head-tavern-let-alone .door {
  position: absolute; top: 5%; left: 50%; width: 80px; height: 50%; transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2e1a 0%, #2a180c 100%);
  border-radius: 6px 6px 0 0; box-shadow: inset 0 0 20px #000; 
  animation: bt4-door 12s ease-in-out infinite; z-index: 1;
}
.scn-boars-head-tavern-let-alone .figure.hal {
  position: absolute; bottom: 18%; left: 30%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0c04 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  animation: bt4-hal 4s ease-in-out infinite; z-index: 2;
}
.scn-boars-head-tavern-let-alone .figure.poins {
  position: absolute; bottom: 18%; right: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0c04 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  animation: bt4-poins 4s ease-in-out infinite 0.5s; z-index: 2;
}
.scn-boars-head-tavern-let-alone .whisper-shape {
  position: absolute; top: 35%; left: 48%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,170,120,0.2) 0%, transparent 60%);
  border-radius: 50%; filter: blur(10px); animation: bt4-whisper 3s ease-in-out infinite; z-index: 1;
}
.scn-boars-head-tavern-let-alone .table {
  position: absolute; bottom: 10%; left: 25%; width: 50%; height: 12%;
  background: linear-gradient(180deg, #4a2e18 0%, #2a180c 100%);
  border-radius: 8px; box-shadow: 0 6px 16px #000; animation: bt4-table 18s ease-in-out infinite;
}
.scn-boars-head-tavern-let-alone .candle {
  position: absolute; bottom: 25%; left: 50%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #ffc080 0%, #b07030 100%);
  border-radius: 2px; box-shadow: 0 0 20px 6px #b07030; animation: bt4-candle 3s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-let-alone .shield {
  position: absolute; bottom: 35%; left: 15%; width: 24px; height: 28px;
  background: linear-gradient(135deg, #6a4a2a 40%, #4a2e18 60%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px #000; animation: bt4-shield 7s ease-in-out infinite; z-index: 2;
}
@keyframes bt4-door {
  0% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(0.98); }
  100% { transform: translateX(-50%) scaleX(1); }
}
@keyframes bt4-hal {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(-10px) rotate(-5deg); }
  66% { transform: translateX(10px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bt4-poins {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(10px) rotate(5deg); }
  66% { transform: translateX(-10px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bt4-whisper {
  0% { transform: scale(0.8); opacity: 0.3; }
  50% { transform: scale(1.4); opacity: 0.6; }
  100% { transform: scale(0.8); opacity: 0.3; }
}
@keyframes bt4-table {
  0% { transform: translateY(0); box-shadow: 0 6px 16px #000; }
  50% { transform: translateY(-3px); box-shadow: 0 12px 24px #000; }
  100% { transform: translateY(0); box-shadow: 0 6px 16px #000; }
}
@keyframes bt4-candle {
  0% { opacity: 0.6; box-shadow: 0 0 15px 4px #b07030; }
  100% { opacity: 1; box-shadow: 0 0 30px 8px #ffb070; }
}
@keyframes bt4-shield {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-3px); }
  100% { transform: rotate(0deg) translateY(0); }
}

/* Eastcheap Boar's Head – Newgate fashion */
.scn-eastcheap-boars-head-newgate {
  background: 
    radial-gradient(ellipse at 40% 60%, #4a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a0e0a 0%, #2c1a10 40%, #3a2018 80%, #2a1810 100%);
}
.scn-eastcheap-boars-head-newgate .fire {
  position: absolute; left: 10%; bottom: 30%; width: 60px; height: 90px;
  background: radial-gradient(circle at 50% 80%, #ff9a40 0%, #c86020 30%, #4a1a0a 70%);
  border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%;
  filter: blur(3px);
  animation: eb1-fire 4s ease-in-out infinite alternate;
  box-shadow: 0 0 40px 20px rgba(200,100,30,.3), 0 0 80px 40px rgba(150,60,10,.15);
}
.scn-eastcheap-boars-head-newgate .table {
  position: absolute; left: 35%; bottom: 20%; width: 40%; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 -4px 12px rgba(0,0,0,.6);
  animation: eb1-table 8s ease-in-out infinite;
}
.scn-eastcheap-boars-head-newgate .figure-back {
  position: absolute; left: 38%; bottom: 30%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 40% 40% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eb1-figure-back 6s ease-in-out infinite;
  z-index: 1;
}
.scn-eastcheap-boars-head-newgate .figure-front {
  position: absolute; left: 48%; bottom: 28%; width: 65px; height: 110px;
  background: linear-gradient(180deg, #201614 0%, #0c0a0a 100%);
  border-radius: 45% 40% 40% 45% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: eb1-figure-front 5s ease-in-out infinite alternate;
  z-index: 2;
}
.scn-eastcheap-boars-head-newgate .lantern {
  position: absolute; left: 50%; top: 20%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 50%, #ffd060 0%, #b08030 60%, transparent 80%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(255,200,80,.4), 0 0 60px 20px rgba(200,150,50,.2);
  animation: eb1-lantern 3s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-newgate .mug-a {
  position: absolute; left: 40%; bottom: 22%; width: 22px; height: 26px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: eb1-mug-a 7s ease-in-out infinite;
}
.scn-eastcheap-boars-head-newgate .mug-b {
  position: absolute; left: 55%; bottom: 22%; width: 22px; height: 26px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: eb1-mug-b 7s ease-in-out infinite 3.5s;
}
@keyframes eb1-fire { 0% { transform: scaleY(1) scaleX(1) rotate(-1deg); opacity: .9 } 50% { transform: scaleY(1.15) scaleX(1.05) rotate(1deg); opacity: 1 } 100% { transform: scaleY(.95) scaleX(1) rotate(-.5deg); opacity: .85 } }
@keyframes eb1-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes eb1-figure-back { 0% { transform: rotate(2deg) } 25% { transform: rotate(-2deg) translateX(4px) } 50% { transform: rotate(1deg) } 75% { transform: rotate(-3deg) translateX(-2px) } 100% { transform: rotate(0) } }
@keyframes eb1-figure-front { 0% { transform: rotate(-3deg) } 33% { transform: rotate(2deg) translateX(-5px) } 66% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes eb1-lantern { 0% { transform: rotate(-2deg) scale(1); opacity: .85 } 50% { transform: rotate(3deg) scale(1.05); opacity: 1 } 100% { transform: rotate(0) scale(.98); opacity: .9 } }
@keyframes eb1-mug-a { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(5deg) } }
@keyframes eb1-mug-b { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(-5deg) } }

/* Eastcheap Boar's Head – what lost */
.scn-eastcheap-boars-head-what-lost {
  background: 
    radial-gradient(ellipse at 50% 40%, #3a2018 0%, transparent 70%),
    linear-gradient(180deg, #1a0e0a 0%, #2c1a10 50%, #3a2018 100%);
}
.scn-eastcheap-boars-head-what-lost .table-top {
  position: absolute; left: 20%; bottom: 15%; width: 60%; height: 20%;
  background: linear-gradient(135deg, #4a2a1a 0%, #2a1810 50%, #3a2018 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%;
  transform: perspective(400px) rotateX(10deg);
  box-shadow: 0 -6px 20px rgba(0,0,0,.7);
  animation: eb2-table-top 9s ease-in-out infinite;
}
.scn-eastcheap-boars-head-what-lost .hand-left {
  position: absolute; left: 30%; bottom: 28%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #1a1412 0%, #0c0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: 30% 100%;
  animation: eb2-hand-left 6s ease-in-out infinite alternate;
  z-index: 2;
}
.scn-eastcheap-boars-head-what-lost .hand-right {
  position: absolute; left: 50%; bottom: 30%; width: 50px; height: 55px;
  background: linear-gradient(180deg, #1a1412 0%, #0c0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: 70% 100%;
  animation: eb2-hand-right 6s ease-in-out infinite alternate 2s;
  z-index: 2;
}
.scn-eastcheap-boars-head-what-lost .bonds {
  position: absolute; left: 38%; bottom: 20%; width: 70px; height: 50px;
  background: linear-gradient(135deg, #8a6a4a 0%, #6a4a2a 50%, #5a3a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 2px 8px rgba(0,0,0,.5);
  animation: eb2-bonds 8s ease-in-out infinite;
}
.scn-eastcheap-boars-head-what-lost .ring {
  position: absolute; left: 55%; bottom: 25%; width: 18px; height: 18px;
  background: radial-gradient(circle, #d0b080 0%, #a08050 60%, #705030 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(160,120,60,.3);
  animation: eb2-ring 5s ease-in-out infinite;
}
.scn-eastcheap-boars-head-what-lost .mug {
  position: absolute; left: 22%; bottom: 22%; width: 30px; height: 34px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: eb2-mug 7s ease-in-out infinite 1.5s;
}
@keyframes eb2-table-top { 0%,100% { transform: perspective(400px) rotateX(10deg) translateY(0) } 50% { transform: perspective(400px) rotateX(10deg) translateY(-2px) } }
@keyframes eb2-hand-left { 0% { transform: rotate(15deg) } 100% { transform: rotate(-10deg) translateY(-8px) } }
@keyframes eb2-hand-right { 0% { transform: rotate(-20deg) } 100% { transform: rotate(10deg) translateY(-5px) } }
@keyframes eb2-bonds { 0%,100% { transform: rotate(0) } 50% { transform: rotate(3deg) translateY(-3px) } }
@keyframes eb2-ring { 0% { transform: rotate(0) translate(0,0) } 30% { transform: rotate(45deg) translate(2px,-2px) } 60% { transform: rotate(-30deg) translate(-1px,1px) } 100% { transform: rotate(0) translate(0,0) } }
@keyframes eb2-mug { 0%,100% { transform: rotate(0) } 50% { transform: rotate(-8deg) } }

/* Eastcheap Boar's Head – did he not */
.scn-eastcheap-boars-head-did-he-not {
  background: 
    radial-gradient(ellipse at 70% 30%, #4a2a1a 0%, transparent 70%),
    linear-gradient(180deg, #1a0e0a 0%, #2c1a10 40%, #3a2018 80%, #2a1810 100%);
}
.scn-eastcheap-boars-head-did-he-not .hearth {
  position: absolute; right: 10%; bottom: 25%; width: 100px; height: 120px;
  background: radial-gradient(ellipse at 50% 80%, #ff9a40 0%, #c86020 20%, #4a1a0a 60%, #1a0e0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  filter: blur(4px);
  animation: eb3-hearth 5s ease-in-out infinite alternate;
  box-shadow: 0 0 80px 30px rgba(200,100,30,.25), 0 0 120px 60px rgba(150,60,10,.1);
}
.scn-eastcheap-boars-head-did-he-not .figure-a {
  position: absolute; left: 20%; bottom: 20%; width: 70px; height: 130px;
  background: linear-gradient(180deg, #1a1412 0%, #0c0a0a 100%);
  border-radius: 45% 45% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: eb3-figure-a 4s ease-in-out infinite alternate;
  z-index: 1;
}
.scn-eastcheap-boars-head-did-he-not .figure-b {
  position: absolute; left: 45%; bottom: 18%; width: 75px; height: 140px;
  background: linear-gradient(180deg, #1a1412 0%, #0c0a0a 100%);
  border-radius: 40% 40% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eb3-figure-b 4.5s ease-in-out infinite alternate;
  z-index: 2;
}
.scn-eastcheap-boars-head-did-he-not .prune-platter {
  position: absolute; left: 35%; bottom: 22%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 -2px 8px rgba(0,0,0,.5);
  animation: eb3-platter 10s ease-in-out infinite;
}
.scn-eastcheap-boars-head-did-he-not .wall-rack {
  position: absolute; left: 5%; top: 25%; width: 15%; height: 40%;
  background: linear-gradient(90deg, #3a2018 0%, #2a1810 50%, #1a0e0a 100%);
  border-radius: 5%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: eb3-rack 12s ease-in-out infinite;
}
.scn-eastcheap-boars-head-did-he-not .floor {
  position: absolute; left: 0; bottom: 0; width: 100%; height: 20%;
  background: linear-gradient(180deg, #2a1810 0%, #1a0e0a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: eb3-floor 15s ease-in-out infinite;
}
@keyframes eb3-hearth { 0% { opacity: .8; transform: scale(1) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: .7; transform: scale(.98) } }
@keyframes eb3-figure-a { 0% { transform: rotate(-5deg) } 33% { transform: rotate(3deg) translateX(-10px) } 66% { transform: rotate(-2deg) translateX(5px) } 100% { transform: rotate(1deg) } }
@keyframes eb3-figure-b { 0% { transform: rotate(4deg) } 50% { transform: rotate(-6deg) translateX(8px) } 100% { transform: rotate(2deg) } }
@keyframes eb3-platter { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes eb3-rack { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes eb3-floor { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }

/* Eastcheap Boar's Head – thing to thank */
.scn-eastcheap-boars-head-thing-to-thank {
  background: 
    radial-gradient(ellipse at 50% 30%, #3a2018 0%, transparent 80%),
    linear-gradient(180deg, #1a0e0a 0%, #2c1a10 50%, #3a2018 100%);
}
.scn-eastcheap-boars-head-thing-to-thank .table-oval {
  position: absolute; left: 10%; bottom: 20%; width: 80%; height: 50%;
  background: linear-gradient(135deg, #4a2a1a 0%, #2a1810 50%, #3a2018 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: perspective(600px) rotateX(30deg);
  box-shadow: 0 -8px 30px rgba(0,0,0,.7);
  animation: eb4-table-oval 10s ease-in-out infinite;
}
.scn-eastcheap-boars-head-thing-to-thank .mug-left {
  position: absolute; left: 25%; top: 45%; width: 30px; height: 34px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: eb4-mug-left 6s ease-in-out infinite;
}
.scn-eastcheap-boars-head-thing-to-thank .mug-right {
  position: absolute; left: 60%; top: 45%; width: 30px; height: 34px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: eb4-mug-right 6s ease-in-out infinite 2s;
}
.scn-eastcheap-boars-head-thing-to-thank .platter {
  position: absolute; left: 38%; top: 38%; width: 100px; height: 30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 2px 8px rgba(0,0,0,.5);
  animation: eb4-platter 8s ease-in-out infinite;
}
.scn-eastcheap-boars-head-thing-to-thank .ring-spill {
  position: absolute; left: 48%; top: 55%; width: 20px; height: 20px;
  background: radial-gradient(circle, #d0b080 0%, #a08050 60%, #705030 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(160,120,60,.3);
  animation: eb4-ring-spill 4s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-thing-to-thank .light-cone {
  position: absolute; left: 40%; top: 0; width: 20%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,200,80,.15) 0%, transparent 70%);
  filter: blur(10px);
  animation: eb4-light-cone 5s ease-in-out infinite alternate;
}
@keyframes eb4-table-oval { 0%,100% { transform: perspective(600px) rotateX(30deg) translateY(0) } 50% { transform: perspective(600px) rotateX(30deg) translateY(-3px) } }
@keyframes eb4-mug-left { 0%,100% { transform: rotate(0) } 50% { transform: rotate(-10deg) } }
@keyframes eb4-mug-right { 0%,100% { transform: rotate(0) } 50% { transform: rotate(10deg) } }
@keyframes eb4-platter { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes eb4-ring-spill { 0% { transform: rotate(0) } 100% { transform: rotate(20deg) translateX(5px) } }
@keyframes eb4-light-cone { 0% { opacity: .3; transform: scaleX(1) } 50% { opacity: .6; transform: scaleX(1.2) } 100% { opacity: .4; transform: scaleX(.9) } }

.scn-rebel-camp-shrewsbury-perilous-gash { background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 40%, #6a3a1a 100%), radial-gradient(ellipse at 50% 70%, #6a3a1a40 0%, transparent 80%); }
.scn-rebel-camp-shrewsbury-perilous-gash .tent-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); box-shadow: inset 0 0 40px #1a0a00; animation: pg-wall 20s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury-perilous-gash .gash { position:absolute; top:30%; left:45%; width:30px; height:80px; background: linear-gradient(90deg, transparent 0%, #1a0a00 20%, #1a0a00 80%, transparent 100%); transform: rotate(-20deg); box-shadow: inset 0 0 8px #8a4a2a; animation: pg-gash 4s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury-perilous-gash .map { position:absolute; bottom:25%; left:25%; width:100px; height:70px; background: linear-gradient(135deg, #c8a060 0%, #a08040 100%); border-radius: 4px; box-shadow: 0 4px 12px #1a0a00; transform: rotate(2deg); animation: pg-map 10s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury-perilous-gash .candle { position:absolute; bottom:30%; left:60%; width:8px; height:50px; background: linear-gradient(180deg, #e0b060 0%, #a08040 100%); border-radius: 4px 4px 0 0; box-shadow: 0 0 20px 6px #ffa04080; animation: pg-candle 3s ease-in-out infinite alternate; }
.scn-rebel-camp-shrewsbury-perilous-gash .figure-silhouette { position:absolute; bottom:22%; left:35%; width:30px; height:60px; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pg-figure 6s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury-perilous-gash .shadow { position:absolute; bottom:20%; left:30%; width:80px; height:20px; background: radial-gradient(ellipse, #0a0000 0%, transparent 70%); opacity:0.6; animation: pg-shadow 8s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury-perilous-gash .embers { position:absolute; bottom:15%; left:50%; width:12px; height:12px; background: #ff8040; border-radius: 50%; box-shadow: 0 0 16px 4px #ff6000, 0 0 32px 8px #ff400080, 0 6px 12px #ff600020; animation: pg-ember 1.5s ease-in-out infinite; }
@keyframes pg-wall { 0%,100% { opacity:0.9; } 50% { opacity:0.85; } }
@keyframes pg-gash { 0%,100% { transform: rotate(-20deg) scaleX(1); } 25% { transform: rotate(-18deg) scaleX(1.1); } 75% { transform: rotate(-22deg) scaleX(0.95); } }
@keyframes pg-map { 0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-3px); } }
@keyframes pg-candle { 0% { transform: scaleY(1); opacity:0.9; box-shadow: 0 0 15px 4px #ffa04080; } 50% { transform: scaleY(1.05); opacity:1; box-shadow: 0 0 25px 8px #ffc05090; } 100% { transform: scaleY(0.95); opacity:0.85; box-shadow: 0 0 10px 2px #ffa04060; } }
@keyframes pg-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(-2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-8px) rotate(-1deg); } }
@keyframes pg-shadow { 0%,100% { transform: scaleX(1); opacity:0.6; } 50% { transform: scaleX(1.2); opacity:0.4; } }
@keyframes pg-ember { 0%,100% { transform: translateY(0) scale(1); opacity:1; } 25% { transform: translateY(-6px) scale(1.2); opacity:0.8; } 50% { transform: translateY(-12px) scale(0.8); opacity:0.3; } 75% { transform: translateY(-6px) scale(1.1); opacity:0.6; } }

.scn-rebel-camp-shrewsbury-home-to-fly { background: linear-gradient(180deg, #1a1a0a 0%, #3a2a1a 40%, #4a3a2a 100%), radial-gradient(ellipse at 50% 60%, #6a4a2a40 0%, transparent 70%); }
.scn-rebel-camp-shrewsbury-home-to-fly .bg-tent { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1a0a80 0%, #3a2a1a 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: hf-tent 15s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury-home-to-fly .flag { position:absolute; top:10%; left:40%; width:60px; height:40px; background: linear-gradient(180deg, #8a4a3a 0%, #6a2a1a 100%); clip-path: polygon(0 0, 100% 0, 80% 50%, 100% 100%, 0 100%); transform-origin: left center; animation: hf-flag 4s ease-in-out infinite alternate; }
.scn-rebel-camp-shrewsbury-home-to-fly .fire { position:absolute; bottom:30%; left:50%; width:40px; height:60px; background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #ff4000 40%, #802000 70%, transparent 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 20px #ff6000; animation: hf-fire 2s ease-in-out infinite alternate; }
.scn-rebel-camp-shrewsbury-home-to-fly .path { position:absolute; bottom:20%; left:20%; right:20%; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); animation: hf-path 12s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury-home-to-fly .figure-approaching { position:absolute; bottom:22%; left:15%; width:24px; height:50px; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: hf-approach 8s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury-home-to-fly .banner { position:absolute; bottom:25%; left:55%; width:30px; height:50px; background: linear-gradient(180deg, #703020 0%, #4a1a0a 100%); transform: skewX(-10deg); animation: hf-banner 6s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury-home-to-fly .sparks { position:absolute; bottom:35%; left:48%; width:4px; height:4px; background: #ffc080; border-radius: 50%; box-shadow: 0 0 8px 2px #ffa040; animation: hf-spark 2.4s linear infinite; }
@keyframes hf-tent { 0%,100% { opacity:0.85; } 50% { opacity:0.9; } }
@keyframes hf-flag { 0% { transform: rotate(0deg); } 100% { transform: rotate(15deg); } }
@keyframes hf-fire { 0% { transform: scaleY(1) scaleX(1); opacity:0.9; } 50% { transform: scaleY(1.1) scaleX(0.95); opacity:1; } 100% { transform: scaleY(0.95) scaleX(1.05); opacity:0.8; } }
@keyframes hf-path { 0%,100% { transform: translateX(0); } 50% { transform: translateX(5px); } }
@keyframes hf-approach { 0% { transform: translateX(0) scale(1); } 25% { transform: translateX(20px) scale(1.05); } 50% { transform: translateX(40px) scale(1.1); } 75% { transform: translateX(60px) scale(1.05); } 100% { transform: translateX(80px) scale(1); } }
@keyframes hf-banner { 0%,100% { transform: skewX(-10deg) translateY(0); } 50% { transform: skewX(-12deg) translateY(-3px); } }
@keyframes hf-spark { 0% { transform: translateY(0) scale(1); opacity:1; } 50% { transform: translateY(-15px) scale(1.5); opacity:0.5; } 100% { transform: translateY(-30px) scale(0.5); opacity:0; } }

.scn-rebel-camp-shrewsbury-wish-father-here { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #4a3a2a 100%), radial-gradient(ellipse at 50% 50%, #5a3a2a40 0%, transparent 80%); }
.scn-rebel-camp-shrewsbury-wish-father-here .table { position:absolute; bottom:20%; left:10%; right:10%; height:40px; background: linear-gradient(180deg, #6a4a30 0%, #4a2a1a 100%); border-radius: 4px; box-shadow: 0 6px 20px #1a0a00; animation: wh-table 12s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury-wish-father-here .empty-chair { position:absolute; bottom:25%; left:55%; width:40px; height:60px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); clip-path: polygon(20% 0, 80% 0, 100% 100%, 0% 100%); border-radius: 10% 10% 0 0; animation: wh-chair 8s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury-wish-father-here .candle { position:absolute; bottom:30%; left:40%; width:6px; height:40px; background: linear-gradient(180deg, #e0b060 0%, #a08040 100%); border-radius: 3px; box-shadow: 0 0 20px 6px #ffa04080; animation: wh-candle 3s ease-in-out infinite alternate; }
.scn-rebel-camp-shrewsbury-wish-father-here .map { position:absolute; bottom:28%; left:20%; width:80px; height:50px; background: linear-gradient(135deg, #c8a060 0%, #a08040 100%); border-radius: 2px; transform: rotate(1deg); animation: wh-map 10s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury-wish-father-here .figure-standing { position:absolute; bottom:22%; left:28%; width:20px; height:55px; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius: 45% 45% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: wh-figure 7s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury-wish-father-here .goblet { position:absolute; bottom:32%; left:50%; width:12px; height:16px; background: linear-gradient(180deg, #b08050 0%, #805030 100%); border-radius: 0 0 4px 4px; box-shadow: inset 0 2px 4px #3a2010; animation: wh-goblet 4s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury-wish-father-here .letter { position:absolute; bottom:35%; left:35%; width:30px; height:20px; background: linear-gradient(135deg, #d4b080 0%, #b09070 100%); transform: rotate(-5deg); animation: wh-letter 6s ease-in-out infinite; }
@keyframes wh-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes wh-chair { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-3deg); } }
@keyframes wh-candle { 0% { transform: scaleY(1); opacity:0.9; box-shadow: 0 0 15px 4px #ffa04080; } 50% { transform: scaleY(1.05); opacity:1; box-shadow: 0 0 25px 8px #ffc05090; } 100% { transform: scaleY(0.95); opacity:0.85; box-shadow: 0 0 10px 2px #ffa04060; } }
@keyframes wh-map { 0%,100% { transform: rotate(1deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } }
@keyframes wh-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(-1deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-5px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes wh-goblet { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(-5deg); } 75% { transform: rotate(3deg); } }
@keyframes wh-letter { 0%,100% { transform: rotate(-5deg) translateY(0); opacity:0.9; } 50% { transform: rotate(-3deg) translateY(-2px); opacity:1; } }

.scn-rebel-camp-shrewsbury-strain-too-far { background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 40%, #4a2a1a 100%), radial-gradient(ellipse at 50% 60%, #4a2a1a60 0%, transparent 80%); }
.scn-rebel-camp-shrewsbury-strain-too-far .tent-low { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a1a0a80 0%, #3a2a1a 100%); clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); animation: st-tent 15s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury-strain-too-far .table-strain { position:absolute; bottom:25%; left:15%; right:15%; height:30px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: inset 0 4px 8px #1a0a00; animation: st-table 8s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury-strain-too-far .figure-left { position:absolute; bottom:28%; left:22%; width:24px; height:50px; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: st-figure-l 5s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury-strain-too-far .figure-right { position:absolute; bottom:28%; right:22%; width:24px; height:50px; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: st-figure-r 5s ease-in-out infinite reverse; }
.scn-rebel-camp-shrewsbury-strain-too-far .knife { position:absolute; bottom:32%; left:48%; width:6px; height:30px; background: linear-gradient(180deg, #a08070 0%, #806050 100%); transform: rotate(-30deg); border-radius: 2px 2px 1px 1px; box-shadow: 0 0 6px #4a2a1a; animation: st-knife 2s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury-strain-too-far .goblet-strain { position:absolute; bottom:30%; right:40%; width:14px; height:18px; background: linear-gradient(180deg, #b08050 0%, #805030 100%); border-radius: 0 0 4px 4px; animation: st-goblet 3s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury-strain-too-far .map-strain { position:absolute; bottom:32%; left:35%; width:60px; height:40px; background: linear-gradient(135deg, #c8a060 0%, #a08040 100%); transform: rotate(-4deg); animation: st-map 7s ease-in-out infinite; }
.scn-rebel-camp-shrewsbury-strain-too-far .lantern-strain { position:absolute; top:20%; left:10%; width:20px; height:30px; background: linear-gradient(180deg, #604020 0%, #402010 100%); border-radius: 4px; box-shadow: 0 0 30px 10px #ff804080; animation: st-lantern 4s ease-in-out infinite alternate; }
@keyframes st-tent { 0%,100% { opacity:0.9; } 50% { opacity:0.85; } }
@keyframes st-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes st-figure-l { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(-5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-10px) rotate(5deg); } }
@keyframes st-figure-r { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-10px) rotate(5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(10px) rotate(-5deg); } }
@keyframes st-knife { 0%,100% { transform: rotate(-30deg) translateY(0); } 25% { transform: rotate(-25deg) translateY(-3px); } 50% { transform: rotate(-35deg) translateY(0); } 75% { transform: rotate(-25deg) translateY(2px); } }
@keyframes st-goblet { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(8deg); } 50% { transform: rotate(-8deg); } 75% { transform: rotate(5deg); } }
@keyframes st-map { 0%,100% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-3px); } }
@keyframes st-lantern { 0% { transform: scaleY(1); opacity:0.8; box-shadow: 0 0 20px 6px #ff804060; } 50% { transform: scaleY(1.05); opacity:1; box-shadow: 0 0 30px 10px #ffa04080; } 100% { transform: scaleY(0.95); opacity:0.7; box-shadow: 0 0 15px 4px #ff804040; } }

/* eastcheap-boars-head-wish-horse */
.scn-eastcheap-boars-head-wish-horse {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1e14 30%, #3a2818 60%, #2a1a0e 100%),
    radial-gradient(ellipse at 50% 30%, #4a3018 0%, transparent 50%);
}
.scn-eastcheap-boars-head-wish-horse .bg-wall {
  position:absolute; inset:0;
  background: linear-gradient(90deg, transparent 0%, rgba(60,40,20,.3) 50%, transparent 100%);
  animation: ebh-wall 20s ease-in-out infinite;
}
.scn-eastcheap-boars-head-wish-horse .fire { 
  position:absolute; bottom:15%; left:45%; width:40px; height:60px;
  background: radial-gradient(ellipse at 50% 100%, #ff8820 0%, #ff4400 50%, transparent 80%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 40px 20px rgba(255,68,0,.5);
  animation: ebh-fire 2s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-wish-horse .table {
  position:absolute; bottom:10%; left:30%; right:30%; height:8px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,.8);
  animation: ebh-table 5s ease-in-out infinite;
}
.scn-eastcheap-boars-head-wish-horse .horse {
  position:absolute; bottom:12%; left:20%; width:50px; height:40px;
  background: #1a1010;
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: ebh-horse 2s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-wish-horse .figure {
  position:absolute; bottom:12%; left:48%; width:20px; height:50px;
  background: linear-gradient(180deg, #1a1a10 0%, #0a0a08 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ebh-figure 3s ease-in-out infinite;
}
.scn-eastcheap-boars-head-wish-horse .tankard {
  position:absolute; bottom:12%; left:60%; width:14px; height:20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2010 100%);
  border-radius: 4px;
  box-shadow: -2px 0 0 #8a6a3a inset, 0 0 8px rgba(0,0,0,.5);
  animation: ebh-tankard 4s ease-in-out infinite;
}
.scn-eastcheap-boars-head-wish-horse .sparks {
  position:absolute; top:30%; left:44%; width:4px; height:4px;
  background: #ffaa44;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #ffaa44;
  animation: ebh-sparks 1.5s ease-out infinite;
}
@keyframes ebh-wall { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes ebh-fire { 0% { transform: scaleY(1) scaleX(1); opacity:.9; } 50% { transform: scaleY(1.1) scaleX(.9); opacity:1; } 100% { transform: scaleY(1) scaleX(1.05); opacity:.8; } }
@keyframes ebh-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ebh-horse { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes ebh-figure { 0% { transform: rotate(-2deg) translateX(0); } 25% { transform: rotate(2deg) translateX(3px); } 50% { transform: rotate(-1deg) translateX(6px); } 75% { transform: rotate(1deg) translateX(3px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes ebh-tankard { 0% { transform: rotate(0) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes ebh-sparks { 0% { transform: translate(0,0) scale(1); opacity:1; } 100% { transform: translate(10px,-30px) scale(0); opacity:0; } }

/* eastcheap-boars-head-orders */
.scn-eastcheap-boars-head-orders {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1e14 30%, #3a2818 60%, #2a1a0e 100%),
    radial-gradient(ellipse at 50% 30%, #4a3018 0%, transparent 50%);
}
.scn-eastcheap-boars-head-orders .bg-wall {
  position:absolute; inset:0;
  background: linear-gradient(90deg, transparent 0%, rgba(40,30,20,.4) 50%, transparent 100%);
  animation: ebo-wall 18s ease-in-out infinite;
}
.scn-eastcheap-boars-head-orders .table {
  position:absolute; bottom:15%; left:25%; right:25%; height:10px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,.8);
  animation: ebo-table 6s ease-in-out infinite;
}
.scn-eastcheap-boars-head-orders .letter {
  position:absolute; bottom:25%; left:40%; width:30px; height:20px;
  background: linear-gradient(135deg, #d4b888 0%, #a88450 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,.5);
  transform: rotate(-10deg);
  animation: ebo-letter 4s ease-in-out infinite;
}
.scn-eastcheap-boars-head-orders .figure {
  position:absolute; bottom:15%; left:55%; width:22px; height:55px;
  background: linear-gradient(180deg, #1a1a10 0%, #0a0a08 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ebo-figure 3.5s ease-in-out infinite;
}
.scn-eastcheap-boars-head-orders .horse {
  position:absolute; bottom:15%; left:70%; width:45px; height:35px;
  background: #1a1010;
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(10deg) scaleX(-1);
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: ebo-horse 2s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-orders .lantern {
  position:absolute; bottom:35%; left:50%; width:12px; height:16px;
  background: radial-gradient(circle, #ffcc60 0%, #b08040 70%);
  border-radius: 4px;
  box-shadow: 0 0 20px 6px rgba(255,204,96,.4);
  animation: ebo-lantern 3s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-orders .sparks {
  position:absolute; top:35%; left:42%; width:3px; height:3px;
  background: #ffaa44;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #ffaa44;
  animation: ebo-sparks 2.1s ease-out infinite 0.2s;
}
@keyframes ebo-wall { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes ebo-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ebo-letter { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-7deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes ebo-figure { 0% { transform: rotate(-1deg) translateX(0); } 25% { transform: rotate(2deg) translateX(4px); } 50% { transform: rotate(-1deg) translateX(8px); } 75% { transform: rotate(1deg) translateX(4px); } 100% { transform: rotate(-1deg) translateX(0); } }
@keyframes ebo-horse { 0% { transform: rotate(10deg) scaleX(-1) translateX(0); } 50% { transform: rotate(12deg) scaleX(-1) translateX(3px); } 100% { transform: rotate(10deg) scaleX(-1) translateX(0); } }
@keyframes ebo-lantern { 0% { box-shadow: 0 0 12px 4px rgba(255,204,96,.3); opacity:.9; } 50% { box-shadow: 0 0 24px 8px rgba(255,204,96,.5); opacity:1; } 100% { box-shadow: 0 0 16px 5px rgba(255,204,96,.35); opacity:.85; } }
@keyframes ebo-sparks { 0% { transform: translate(0,0) scale(1); opacity:1; } 100% { transform: translate(8px,-25px) scale(0); opacity:0; } }

/* eastcheap-boars-head-temple-hall */
.scn-eastcheap-boars-head-temple-hall {
  background:
    linear-gradient(180deg, #1a1814 0%, #2a2218 30%, #3a2c1c 60%, #2a1e12 100%),
    radial-gradient(ellipse at 50% 50%, #4a3824 0%, transparent 60%);
}
.scn-eastcheap-boars-head-temple-hall .bg-columns {
  position:absolute; inset:0;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 30px, rgba(40,30,15,.15) 30px, rgba(40,30,15,.15) 32px);
  animation: ebt-columns 10s ease-in-out infinite;
}
.scn-eastcheap-boars-head-temple-hall .arch {
  position:absolute; top:10%; left:35%; right:35%; height:50%;
  background: linear-gradient(180deg, rgba(60,40,20,.3) 0%, transparent 80%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.5);
  animation: ebt-arch 8s ease-in-out infinite;
}
.scn-eastcheap-boars-head-temple-hall .figure-left {
  position:absolute; bottom:20%; left:30%; width:20px; height:50px;
  background: linear-gradient(180deg, #1a1a10 0%, #0a0a08 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ebt-figure-l 4s ease-in-out infinite;
}
.scn-eastcheap-boars-head-temple-hall .figure-right {
  position:absolute; bottom:20%; right:30%; width:20px; height:50px;
  background: linear-gradient(180deg, #1a1a10 0%, #0a0a08 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ebt-figure-r 4s ease-in-out infinite 0.5s;
}
.scn-eastcheap-boars-head-temple-hall .letter {
  position:absolute; bottom:30%; left:45%; width:28px; height:18px;
  background: linear-gradient(135deg, #d4b888 0%, #a88450 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,.5);
  transform: rotate(5deg);
  animation: ebt-letter 5s ease-in-out infinite;
}
.scn-eastcheap-boars-head-temple-hall .coins {
  position:absolute; bottom:22%; left:50%; width:20px; height:8px;
  background: radial-gradient(circle at 30% 40%, #d4b040 0%, #b08820 60%, #705010 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,160,50,.4);
  animation: ebt-coins 2s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-temple-hall .candle {
  position:absolute; bottom:28%; left:55%; width:6px; height:18px;
  background: linear-gradient(180deg, #e8d4a0 0%, #c8b080 50%, #a08050 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px 4px rgba(255,220,120,.3);
  animation: ebt-candle 3s ease-in-out infinite;
}
@keyframes ebt-columns { 0% { background-position:0 0; } 50% { background-position:-2px 0; } 100% { background-position:0 0; } }
@keyframes ebt-arch { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes ebt-figure-l { 0% { transform: rotate(-2deg) translateX(0); } 25% { transform: rotate(2deg) translateX(3px); } 50% { transform: rotate(-1deg) translateX(6px); } 75% { transform: rotate(1deg) translateX(3px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes ebt-figure-r { 0% { transform: rotate(2deg) translateX(0); } 25% { transform: rotate(-2deg) translateX(-3px); } 50% { transform: rotate(1deg) translateX(-6px); } 75% { transform: rotate(-1deg) translateX(-3px); } 100% { transform: rotate(2deg) translateX(0); } }
@keyframes ebt-letter { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes ebt-coins { 0% { transform: scaleX(1); opacity:.9; } 50% { transform: scaleX(1.2); opacity:1; } 100% { transform: scaleX(1); opacity:.9; } }
@keyframes ebt-candle { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.05) rotate(1deg); } 100% { transform: scaleY(1) rotate(0deg); } }

/* rebel-camp-shrewsbury-douglas-praised */
.scn-rebel-camp-shrewsbury-douglas-praised {
  background:
    linear-gradient(180deg, #8a6a3a 0%, #c8a060 30%, #e8c880 60%, #d4b060 100%),
    radial-gradient(ellipse at 50% 100%, #f0d890 0%, transparent 60%);
}
.scn-rebel-camp-shrewsbury-douglas-praised .bg-tent {
  position:absolute; inset:0;
  background: repeating-linear-gradient(0deg, transparent 0px, transparent 20px, rgba(100,60,20,.1) 20px, rgba(100,60,20,.1) 22px);
  animation: rcs-tent 15s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-douglas-praised .campfire {
  position:absolute; bottom:20%; left:50%; width:60px; height:50px;
  background: radial-gradient(ellipse at 50% 100%, #ffaa44 0%, #ff4400 40%, transparent 70%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 60px 30px rgba(255,170,68,.4);
  animation: rcs-fire 1.5s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-douglas-praised .figure-hotspur {
  position:absolute; bottom:15%; left:35%; width:22px; height:55px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: rcs-hotspur 3s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-douglas-praised .figure-douglas {
  position:absolute; bottom:15%; left:50%; width:22px; height:55px;
  background: linear-gradient(180deg, #3a2a18 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: rcs-douglas 3.5s ease-in-out infinite 0.3s;
}
.scn-rebel-camp-shrewsbury-douglas-praised .figure-worcester {
  position:absolute; bottom:15%; left:65%; width:20px; height:50px;
  background: linear-gradient(180deg, #2a1e12 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: rcs-worcester 4s ease-in-out infinite 0.6s;
}
.scn-rebel-camp-shrewsbury-douglas-praised .sword {
  position:absolute; bottom:25%; left:42%; width:6px; height:30px;
  background: linear-gradient(180deg, #d4c8a8 0%, #a89878 50%, #786858 100%);
  border-radius: 2px;
  box-shadow: 0 0 6px 2px rgba(200,180,140,.3);
  transform: rotate(-20deg);
  animation: rcs-sword 2s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-douglas-praised .banner {
  position:absolute; top:10%; left:45%; width:10px; height:40px;
  background: linear-gradient(180deg, #a0461a 0%, #702010 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px 2px rgba(160,70,26,.3);
  transform-origin: top;
  animation: rcs-banner 6s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-douglas-praised .embers {
  position:absolute; bottom:22%; left:48%; width:4px; height:4px;
  background: #ffaa44;
  border-radius: 50%;
  box-shadow: 0 0 8px 3px #ffaa44;
  animation: rcs-ember 1.6s ease-out infinite;
}
@keyframes rcs-tent { 0% { background-position:0 0; } 50% { background-position:0 -2px; } 100% { background-position:0 0; } }
@keyframes rcs-fire { 0% { transform: scaleY(1) scaleX(1); opacity:.9; } 50% { transform: scaleY(1.15) scaleX(.85); opacity:1; } 100% { transform: scaleY(1) scaleX(1.05); opacity:.8; } }
@keyframes rcs-hotspur { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-3px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes rcs-douglas { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes rcs-worcester { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-4px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-2deg) translateY(-4px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes rcs-sword { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(2px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes rcs-banner { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.05); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes rcs-ember { 0% { transform: translate(0,0) scale(1); opacity:1; } 100% { transform: translate(3px,-20px) scale(0); opacity:0; } }

.scn-london-palace-king-compares-richard {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 40%, #1a1010 100%),
              radial-gradient(ellipse at 20% 30%, #6a5a4a 0%, transparent 60%);
}
.scn-london-palace-king-compares-richard .bg-deep {
  position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, transparent 60%);
  animation: L1-bg 12s ease-in-out infinite alternate;
}
.scn-london-palace-king-compares-richard .floor-stone {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5); border-radius: 4% 4% 0 0;
}
.scn-london-palace-king-compares-richard .throne {
  position:absolute; bottom:24%; left:30%; width:80px; height:90px;
  background: linear-gradient(135deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,.6);
  animation: L1-throne 6s ease-in-out infinite;
}
.scn-london-palace-king-compares-richard .king-figure {
  position:absolute; bottom:24%; left:32%; width:24px; height:50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: L1-king 4s ease-in-out infinite;
}
.scn-london-palace-king-compares-richard .richard-shadow {
  position:absolute; bottom:24%; right:30%; width:20px; height:46px;
  background: linear-gradient(180deg, rgba(26,10,10,.8) 0%, rgba(10,0,0,.6) 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  opacity:0.5;
  animation: L1-ghost 6s ease-in-out infinite alternate;
}
.scn-london-palace-king-compares-richard .window-light {
  position:absolute; top:12%; right:10%; width:40px; height:60px;
  background: radial-gradient(circle at 50% 50%, #f0d080 0%, #c0a060 40%, transparent 70%);
  border-radius: 6% 6% 10% 10%;
  box-shadow: 0 0 40px 20px rgba(240,208,128,.3);
  animation: L1-window 8s ease-in-out infinite alternate;
}
.scn-london-palace-king-compares-richard .banner {
  position:absolute; top:8%; left:15%; width:30px; height:50px;
  background: linear-gradient(180deg, #a0461a 0%, #702243 100%);
  border-radius: 20% 20% 0 0 / 60% 60% 0 0;
  transform-origin: top center;
  animation: L1-banner 5s ease-in-out infinite;
}
@keyframes L1-bg { 0% {opacity:.8} 50%{opacity:1} 100%{opacity:.7} }
@keyframes L1-throne { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@keyframes L1-king { 0%{transform:translateX(0) rotate(-1deg)} 25%{transform:translateX(3px) rotate(1deg)} 50%{transform:translateX(6px) rotate(-1deg)} 75%{transform:translateX(9px) rotate(1deg)} 100%{transform:translateX(12px) rotate(0deg)} }
@keyframes L1-ghost { 0%{opacity:.3;transform:translateY(0) scaleY(1)} 50%{opacity:.5;transform:translateY(-4px) scaleY(.95)} 100%{opacity:.4;transform:translateY(2px) scaleY(1)} }
@keyframes L1-window { 0%{opacity:.6;box-shadow:0 0 30px 10px rgba(240,208,128,.2)} 50%{opacity:1;box-shadow:0 0 60px 30px rgba(240,208,128,.5)} 100%{opacity:.7;box-shadow:0 0 40px 15px rgba(240,208,128,.3)} }
@keyframes L1-banner { 0%{transform:rotate(-3deg)} 50%{transform:rotate(3deg)} 100%{transform:rotate(-2deg)} }

.scn-london-palace-king-praises-hotspur {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 40%, #1a1010 100%),
              radial-gradient(ellipse at 80% 20%, #7a6a4a 0%, transparent 70%);
}
.scn-london-palace-king-praises-hotspur .bg-deep {
  position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, transparent 60%);
  animation: L2-bg 14s ease-in-out infinite alternate;
}
.scn-london-palace-king-praises-hotspur .floor-stone {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5); border-radius: 4% 4% 0 0;
}
.scn-london-palace-king-praises-hotspur .king-figure {
  position:absolute; bottom:24%; left:20%; width:24px; height:48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: L2-king 4s ease-in-out infinite;
}
.scn-london-palace-king-praises-hotspur .hotspur-banner {
  position:absolute; top:10%; right:25%; width:35px; height:55px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 20% 20% 0 0 / 60% 60% 0 0;
  transform-origin: top center;
  animation: L2-banner 6s ease-in-out infinite;
}
.scn-london-palace-king-praises-hotspur .sword {
  position:absolute; bottom:28%; left:45%; width:6px; height:40px;
  background: linear-gradient(180deg, #e0d0a0 0%, #b0a080 100%);
  border-radius: 10% 10% 60% 60%;
  box-shadow: 0 0 8px 2px rgba(224,208,160,.4);
  transform-origin: bottom center;
  animation: L2-sword 3s ease-in-out infinite alternate;
}
.scn-london-palace-king-praises-hotspur .window-light {
  position:absolute; top:10%; right:5%; width:45px; height:65px;
  background: radial-gradient(circle at 50% 50%, #f0d080 0%, #c0a060 40%, transparent 70%);
  border-radius: 6% 6% 10% 10%;
  box-shadow: 0 0 40px 20px rgba(240,208,128,.3);
  animation: L2-window 9s ease-in-out infinite alternate;
}
.scn-london-palace-king-praises-hotspur .column {
  position:absolute; bottom:0; left:60%; width:20px; height:100%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -2px 0 6px rgba(0,0,0,.6);
  animation: L2-column 10s ease-in-out infinite alternate;
}
@keyframes L2-bg { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.6} }
@keyframes L2-king { 0%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-3px) rotate(2deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes L2-banner { 0%{transform:rotate(-4deg)} 50%{transform:rotate(4deg) scaleY(1.02)} 100%{transform:rotate(-3deg)} }
@keyframes L2-sword { 0%{transform:rotate(0deg)} 50%{transform:rotate(10deg)} 100%{transform:rotate(0deg)} }
@keyframes L2-window { 0%{opacity:.5;box-shadow:0 0 20px 8px rgba(240,208,128,.1)} 50%{opacity:1;box-shadow:0 0 60px 30px rgba(240,208,128,.6)} 100%{opacity:.6;box-shadow:0 0 30px 12px rgba(240,208,128,.2)} }
@keyframes L2-column { 0%{opacity:.9;transform:scaleX(1)} 50%{opacity:1;transform:scaleX(1.02)} 100%{opacity:.8;transform:scaleX(.98)} }

.scn-london-palace-king-asks-hal {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 40%, #1a1010 100%),
              radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, transparent 60%);
}
.scn-london-palace-king-asks-hal .bg-deep {
  position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, transparent 60%);
  animation: L3-bg 13s ease-in-out infinite alternate;
}
.scn-london-palace-king-asks-hal .floor-stone {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5); border-radius: 4% 4% 0 0;
}
.scn-london-palace-king-asks-hal .king-figure {
  position:absolute; bottom:24%; left:55%; width:22px; height:46px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: L3-king 4.5s ease-in-out infinite;
}
.scn-london-palace-king-asks-hal .hal-figure {
  position:absolute; bottom:24%; left:25%; width:20px; height:44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: L3-hal 4s ease-in-out infinite;
}
.scn-london-palace-king-asks-hal .throne {
  position:absolute; bottom:24%; left:50%; width:70px; height:85px;
  background: linear-gradient(135deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,.6);
  animation: L3-throne 8s ease-in-out infinite;
}
.scn-london-palace-king-asks-hal .sconce {
  position:absolute; bottom:35%; left:70%; width:8px; height:12px;
  background: radial-gradient(circle, #f0d080 0%, #c0a060 60%);
  border-radius: 50%; box-shadow: 0 0 20px 8px rgba(240,208,128,.4);
  animation: L3-sconce 3s ease-in-out infinite alternate;
}
.scn-london-palace-king-asks-hal .window-light {
  position:absolute; top:8%; right:8%; width:50px; height:70px;
  background: radial-gradient(circle at 50% 50%, #f0d080 0%, #c0a060 40%, transparent 70%);
  border-radius: 6% 6% 10% 10%;
  box-shadow: 0 0 50px 25px rgba(240,208,128,.25);
  animation: L3-window 10s ease-in-out infinite alternate;
}
@keyframes L3-bg { 0%{opacity:.85} 50%{opacity:1} 100%{opacity:.7} }
@keyframes L3-king { 0%{transform:translateY(0) rotate(1deg)} 25%{transform:translateY(-2px) rotate(-1deg)} 50%{transform:translateY(0) rotate(0deg)} 75%{transform:translateY(-3px) rotate(1deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes L3-hal { 0%{transform:translateX(0) scaleY(1)} 50%{transform:translateX(8px) scaleY(.98)} 100%{transform:translateX(0) scaleY(1)} }
@keyframes L3-throne { 0%,100%{transform:translateY(0) scaleX(1)} 50%{transform:translateY(-2px) scaleX(1.01)} }
@keyframes L3-sconce { 0%{box-shadow:0 0 15px 5px rgba(240,208,128,.3);opacity:.7} 50%{box-shadow:0 0 30px 15px rgba(240,208,128,.6);opacity:1} 100%{box-shadow:0 0 20px 8px rgba(240,208,128,.4);opacity:.8} }
@keyframes L3-window { 0%{opacity:.5;box-shadow:0 0 30px 12px rgba(240,208,128,.15)} 50%{opacity:1;box-shadow:0 0 80px 40px rgba(240,208,128,.5)} 100%{opacity:.6;box-shadow:0 0 40px 18px rgba(240,208,128,.2)} }

.scn-london-palace-hal-redeem-vow {
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 40%, #3a2a1a 100%),
              radial-gradient(ellipse at 30% 20%, #c0a060 0%, transparent 60%);
}
.scn-london-palace-hal-redeem-vow .bg-warm {
  position:absolute; inset:0; background: linear-gradient(180deg, #8a6a4a 0%, transparent 60%);
  animation: L4-bg 12s ease-in-out infinite alternate;
}
.scn-london-palace-hal-redeem-vow .floor-stone {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3); border-radius: 4% 4% 0 0;
}
.scn-london-palace-hal-redeem-vow .hal-figure {
  position:absolute; bottom:24%; left:40%; width:24px; height:50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: L4-hal 4s ease-in-out infinite;
}
.scn-london-palace-hal-redeem-vow .cloak-sweep {
  position:absolute; bottom:22%; left:32%; width:40px; height:30px;
  background: linear-gradient(135deg, #5e1a1d 0%, #a0461a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom right;
  opacity:.7;
  animation: L4-cloak 5s ease-in-out infinite;
}
.scn-london-palace-hal-redeem-vow .window-warm {
  position:absolute; top:10%; right:15%; width:45px; height:60px;
  background: radial-gradient(circle at 50% 50%, #f4d090 0%, #c8a060 40%, transparent 70%);
  border-radius: 6% 6% 10% 10%;
  box-shadow: 0 0 50px 30px rgba(244,208,144,.4);
  animation: L4-window 7s ease-in-out infinite alternate;
}
.scn-london-palace-hal-redeem-vow .emblem {
  position:absolute; bottom:35%; right:35%; width:20px; height:20px;
  background: radial-gradient(circle, #d4b078 0%, #b09058 100%);
  border-radius: 50%; border:2px solid #8a6a3a; box-shadow: 0 0 12px 4px rgba(180,144,88,.5);
  animation: L4-emblem 6s ease-in-out infinite alternate;
}
.scn-london-palace-hal-redeem-vow .crown {
  position:absolute; bottom:40%; left:45%; width:30px; height:20px;
  background: linear-gradient(180deg, #c8a060 0%, #b09058 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 0 10px 4px rgba(200,160,96,.4);
  transform-origin: bottom center;
  animation: L4-crown 8s ease-in-out infinite;
}
@keyframes L4-bg { 0%{opacity:.85} 50%{opacity:1} 100%{opacity:.7} }
@keyframes L4-hal { 0%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-3px) rotate(2deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes L4-cloak { 0%{transform:rotate(-5deg) scaleY(1)} 50%{transform:rotate(5deg) scaleY(1.05)} 100%{transform:rotate(-4deg) scaleY(.98)} }
@keyframes L4-window { 0%{opacity:.6;box-shadow:0 0 30px 15px rgba(244,208,144,.25)} 50%{opacity:1;box-shadow:0 0 80px 40px rgba(244,208,144,.6)} 100%{opacity:.7;box-shadow:0 0 40px 20px rgba(244,208,144,.3)} }
@keyframes L4-emblem { 0%{transform:scale(.95);opacity:.7} 50%{transform:scale(1.05);opacity:1} 100%{transform:scale(1);opacity:.8} }
@keyframes L4-crown { 0%,100%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-2px) rotate(2deg)} }

/* boars-head-tavern-corpulent-praise */
.scn-boars-head-tavern-corpulent-praise {
  background: linear-gradient(180deg, #2b1e10 0%, #3a2515 30%, #1f1208 70%, #140c05 100%), radial-gradient(ellipse at 30% 80%, #c45a1a 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-boars-head-tavern-corpulent-praise .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(0deg, #2b1e10 0%, #1f1208 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.7);
  animation: cp-wall 12s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-corpulent-praise .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a0e05 0%, #0f0802 100%);
  border-top: 2px solid #3a2515;
}
.scn-boars-head-tavern-corpulent-praise .table {
  position: absolute; bottom: 28%; left: 10%; width: 35%; height: 4%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform: perspective(400px) rotateX(10deg);
  animation: cp-table 6s ease-in-out infinite;
}
.scn-boars-head-tavern-corpulent-praise .fireplace-glow {
  position: absolute; bottom: 25%; right: 5%; width: 20%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #c45a1a 0%, #8a3505 40%, transparent 70%);
  filter: blur(10px);
  animation: cp-fire 3s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-corpulent-praise .falstaff-cp {
  position: absolute; bottom: 12%; left: 25%; width: 24%; height: 55%;
  background: radial-gradient(ellipse at 50% 30%, #5a3a2a 0%, #3a2210 70%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,.6), 0 8px 20px rgba(0,0,0,.4);
  animation: cp-falstaff 5s ease-in-out infinite;
}
.scn-boars-head-tavern-corpulent-praise .prince-cp {
  position: absolute; bottom: 18%; right: 20%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cp-prince 7s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-corpulent-praise .tankard-cp {
  position: absolute; bottom: 26%; left: 32%; width: 7%; height: 12%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: cp-tankard 4s ease-in-out infinite;
}
.scn-boars-head-tavern-corpulent-praise .sparkle {
  position: absolute; top: 20%; left: 60%; width: 3%; height: 3%;
  background: radial-gradient(circle, #ffd060 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: cp-sparkle 2s ease-in-out infinite alternate;
}
@keyframes cp-wall { 0% { opacity: .7; } 50% { opacity: .85; } 100% { opacity: .75; } }
@keyframes cp-table { 0%, 100% { transform: perspective(400px) rotateX(10deg) translateY(0); } 50% { transform: perspective(400px) rotateX(12deg) translateY(-2px); } }
@keyframes cp-fire { 0% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .7; transform: scale(.95); } }
@keyframes cp-falstaff { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(2deg) scaleX(1.02); } 50% { transform: rotate(-1deg) scaleY(1.01); } 75% { transform: rotate(3deg) scaleX(0.98); } }
@keyframes cp-prince { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes cp-tankard { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } }
@keyframes cp-sparkle { 0% { opacity: 0; } 50% { opacity: 1; } 100% { opacity: 0; } }

/* boars-head-tavern-half-so-gravely */
.scn-boars-head-tavern-half-so-gravely {
  background: linear-gradient(0deg, #1f1208 0%, #2b1e10 40%, #3a2515 70%, #2b1e10 100%), radial-gradient(ellipse at 40% 60%, #a64a1a 0%, transparent 50%);
  position: relative; overflow: hidden;
}
.scn-boars-head-tavern-half-so-gravely .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2b1e10 0%, #1f1208 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.8);
}
.scn-boars-head-tavern-half-so-gravely .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a0e05 0%, #0c0600 100%);
}
.scn-boars-head-tavern-half-so-gravely .bench {
  position: absolute; bottom: 30%; left: 5%; width: 45%; height: 5%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 10% 10% 5% 5%;
  transform: perspective(300px) rotateX(15deg);
}
.scn-boars-head-tavern-half-so-gravely .table-hs {
  position: absolute; bottom: 28%; left: 8%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #6a4a24 0%, #4a2c12 100%);
  border-radius: 20% 20% 8% 8%;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: hs-table 9s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-half-so-gravely .falstaff-hs {
  position: absolute; bottom: 10%; left: 10%; width: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 20%, #5a3a2a 0%, #3a2210 60%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  box-shadow: inset 0 -30px 40px rgba(0,0,0,.7), 0 10px 30px rgba(0,0,0,.5);
  animation: hs-fat 6s ease-in-out infinite;
}
.scn-boars-head-tavern-half-so-gravely .prince-hs {
  position: absolute; bottom: 20%; right: 15%; width: 14%; height: 42%;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: hs-prince 8s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-half-so-gravely .candle-hs {
  position: absolute; bottom: 32%; left: 20%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #e8c070 0%, #b08040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 12px 4px #ffd060, 0 0 24px 8px rgba(255,208,96,.4);
  animation: hs-candle 3s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-half-so-gravely .smoke {
  position: absolute; bottom: 38%; left: 18%; width: 20%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,180,160,.15) 0%, transparent 70%);
  filter: blur(12px);
  animation: hs-smoke 10s linear infinite;
}
@keyframes hs-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(-1px); } }
@keyframes hs-fat { 0%, 100% { transform: rotate(0deg) scaleX(1); } 25% { transform: rotate(3deg) scaleX(1.02); } 50% { transform: rotate(-2deg) scaleY(1.01); } 75% { transform: rotate(4deg) scaleX(.98); } }
@keyframes hs-prince { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hs-candle { 0% { opacity: .7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.03); } 100% { opacity: .8; transform: scaleY(1); } }
@keyframes hs-smoke { 0% { transform: translateY(0) scale(1); opacity: .3; } 50% { transform: translateY(-20px) scale(1.5); opacity: .1; } 100% { transform: translateY(-40px) scale(2); opacity: 0; } }

/* boars-head-tavern-false-complaints */
.scn-boars-head-tavern-false-complaints {
  background: linear-gradient(90deg, #1f1208 0%, #2b1e10 30%, #3a2515 60%, #1f1208 100%), radial-gradient(ellipse at 70% 50%, #a64a1a 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-boars-head-tavern-false-complaints .wall-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2b1e10 0%, #1f1208 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.9);
}
.scn-boars-head-tavern-false-complaints .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a0e05 0%, #0c0600 100%);
}
.scn-boars-head-tavern-false-complaints .arch {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(60,40,20,.6) 0%, transparent 70%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: fc-arch 15s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-false-complaints .falstaff-fc {
  position: absolute; bottom: 12%; left: 30%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 30%, #5a3a2a 0%, #3a2210 70%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  box-shadow: inset 0 -30px 40px rgba(0,0,0,.7), 0 10px 30px rgba(0,0,0,.5);
  animation: fc-falstaff 5s ease-in-out infinite;
}
.scn-boars-head-tavern-false-complaints .prince-fc {
  position: absolute; bottom: 25%; right: 10%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fc-prince 7s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-false-complaints .hand-fc {
  position: absolute; bottom: 35%; left: 55%; width: 8%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, #4a3220 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  animation: fc-hand 3s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-false-complaints .chain {
  position: absolute; top: 8%; left: 45%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 20%;
  box-shadow: 0 0 4px rgba(0,0,0,.5);
  animation: fc-chain 4s ease-in-out infinite alternate;
}
@keyframes fc-arch { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .6; } }
@keyframes fc-falstaff { 0%, 100% { transform: rotate(0deg) scaleX(1); } 25% { transform: rotate(4deg) scaleX(1.03); } 50% { transform: rotate(-3deg) scaleY(1.02); } 75% { transform: rotate(2deg) scaleX(.97); } }
@keyframes fc-prince { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes fc-hand { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-3px); } 100% { transform: rotate(-25deg) translateY(0); } }
@keyframes fc-chain { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }

/* boars-head-tavern-swear-not */
.scn-boars-head-tavern-swear-not {
  background: linear-gradient(180deg, #1f1208 0%, #2b1e10 40%, #3a2515 70%, #1f1208 100%), radial-gradient(ellipse at 60% 30%, #b84a1a 0%, transparent 50%);
  position: relative; overflow: hidden;
}
.scn-boars-head-tavern-swear-not .wall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2b1e10 0%, #1f1208 100%);
  box-shadow: inset 0 0 70px rgba(0,0,0,.85);
}
.scn-boars-head-tavern-swear-not .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a0e05 0%, #0c0600 100%);
}
.scn-boars-head-tavern-swear-not .stool-sn {
  position: absolute; bottom: 15%; left: 15%; width: 25%; height: 20%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 10% 10% 5% 5%;
  transform: perspective(200px) rotateX(10deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: sn-stool 5s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-swear-not .falstaff-sn {
  position: absolute; bottom: 8%; left: 20%; width: 35%; height: 55%;
  background: radial-gradient(ellipse at 50% 30%, #5a3a2a 0%, #3a2210 70%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  box-shadow: inset 0 -40px 50px rgba(0,0,0,.7), 0 15px 35px rgba(0,0,0,.5);
  animation: sn-falstaff 4s ease-in-out infinite;
}
.scn-boars-head-tavern-swear-not .prince-sn {
  position: absolute; bottom: 20%; right: 10%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sn-prince 8s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-swear-not .boot-sn {
  position: absolute; bottom: 12%; left: 45%; width: 10%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(10deg);
  animation: sn-boot 3s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-swear-not .mug-sn {
  position: absolute; bottom: 25%; left: 12%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.6);
  animation: sn-mug 2s ease-in-out infinite alternate;
}
.scn-boars-head-tavern-swear-not .fume {
  position: absolute; bottom: 28%; left: 10%; width: 15%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,200,150,.15) 0%, transparent 70%);
  filter: blur(10px);
  animation: sn-fume 6s linear infinite;
}
@keyframes sn-stool { 0% { transform: perspective(200px) rotateX(10deg) translateY(0); } 50% { transform: perspective(200px) rotateX(12deg) translateY(-2px); } 100% { transform: perspective(200px) rotateX(10deg) translateY(0); } }
@keyframes sn-falstaff { 0%, 100% { transform: rotate(0deg) scaleX(1); } 25% { transform: rotate(-5deg) scaleX(1.04); } 50% { transform: rotate(3deg) scaleY(1.02); } 75% { transform: rotate(-2deg) scaleX(.97); } }
@keyframes sn-prince { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sn-boot { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes sn-mug { 0% { opacity: .8; transform: rotate(0deg); } 50% { opacity: 1; transform: rotate(10deg); } 100% { opacity: .9; transform: rotate(-5deg); } }
@keyframes sn-fume { 0% { transform: translateY(0) scale(1); opacity: .2; } 50% { transform: translateY(-15px) scale(1.3); opacity: .1; } 100% { transform: translateY(-30px) scale(1.6); opacity: 0; } }

/* ---- Scene: shorter-time ---- */
.scn-bangor-archdeacon-house-shorter-time {
  background:
    linear-gradient(180deg, #e8d4b0 0%, #d4b88a 50%, #b8966a 100%),
    radial-gradient(ellipse at 50% 0%, #f5e8d0 0%, transparent 60%);
}
.scn-bangor-archdeacon-house-shorter-time .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #c8b290 0%, #dac4a4 50%, #c8b290 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.15);
  animation: sh-wall 12s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-shorter-time .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b09070 0%, #8a7054 100%);
  border-radius: 20% 20% 0 0 / 60% 60% 0 0;
  animation: sh-floor 8s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-shorter-time .window {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 50%;
  background: radial-gradient(circle at 50% 40%, #ffedc0 0%, #dfc090 60%, #8a7a5a 100%);
  border: 8px solid #5a3a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(255,200,100,0.6);
  animation: sh-window 10s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-shorter-time .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 14%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-bangor-archdeacon-house-shorter-time .figure-l {
  position: absolute; bottom: 28%; left: 18%; width: 20px; 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: sh-fig-l 4s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-shorter-time .figure-r {
  position: absolute; bottom: 28%; right: 18%; width: 20px; height: 52px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sh-fig-r 4.5s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-shorter-time .candle {
  position: absolute; bottom: 30%; left: 48%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ffe088 0%, #d4a040 100%);
  border-radius: 2px;
  box-shadow: 0 0 18px 6px #f0c060, 0 0 40px 15px rgba(240,192,96,0.4);
  animation: sh-candle 3s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-shorter-time .shadow {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 10%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.15) 20%, transparent 40%, rgba(0,0,0,0.1) 60%, transparent 80%, rgba(0,0,0,0.12) 100%);
  animation: sh-shadow 5s ease-in-out infinite alternate;
}
@keyframes sh-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes sh-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes sh-window { 0% { box-shadow: inset 0 0 30px rgba(255,200,100,0.5) } 50% { box-shadow: inset 0 0 60px rgba(255,220,120,0.8) } 100% { box-shadow: inset 0 0 40px rgba(255,200,100,0.6) } }
@keyframes sh-fig-l { 0%,100% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1.5deg) } 75% { transform: translateY(-1px) rotate(1deg) } }
@keyframes sh-fig-r { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(1.5deg) } 75% { transform: translateX(2px) rotate(0) } }
@keyframes sh-candle { 0% { opacity:0.7; box-shadow: 0 0 12px 4px #f0c060 } 50% { opacity:1; box-shadow: 0 0 25px 10px #ffd080 } 100% { opacity:0.75; box-shadow: 0 0 15px 5px #e0a040 } }
@keyframes sh-shadow { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

/* ---- Scene: moiay-dispute ---- */
.scn-bangor-archdeacon-house-moiety-dispute {
  background:
    linear-gradient(180deg, #d0b898 0%, #b89878 50%, #a08060 100%),
    radial-gradient(ellipse at 50% 0%, #e8d0b0 0%, transparent 70%);
}
.scn-bangor-archdeacon-house-moiety-dispute .bg-div {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #c0a888 0%, #d8c0a0 50%, #c0a888 100%);
  box-shadow: inset 0 -10px 25px rgba(0,0,0,0.1);
  animation: md-bg 14s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-moiety-dispute .table {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 18%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%);
  border-radius: 10px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-bangor-archdeacon-house-moiety-dispute .map {
  position: absolute; bottom: 22%; left: 25%; width: 50%; height: 24%;
  background: linear-gradient(135deg, #e8d4a0 0%, #c4ac78 40%, #a08c5a 100%);
  border-radius: 4px;
  transform: rotate(-2deg);
  box-shadow: 1px 1px 4px rgba(0,0,0,0.3);
  animation: md-map 12s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-moiety-dispute .river {
  position: absolute; bottom: 28%; left: 30%; width: 40%; height: 8px;
  background: linear-gradient(90deg, #4a6a8a 0%, #6a8aaa 50%, #4a6a8a 100%);
  border-radius: 50%;
  filter: blur(1px);
  transform: rotate(-15deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: md-river 6s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-moiety-dispute .figure-a {
  position: absolute; bottom: 30%; left: 12%; 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: md-fig-a 3.5s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-moiety-dispute .figure-b {
  position: absolute; bottom: 30%; right: 12%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2210 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: md-fig-b 4s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-moiety-dispute .candle {
  position: absolute; bottom: 26%; left: 48%; width: 6px; height: 22px;
  background: linear-gradient(180deg, #ffe080 0%, #d49a30 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px #f0b040, 0 0 45px 18px rgba(240,176,64,0.4);
  animation: md-candle 3s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-moiety-dispute .document {
  position: absolute; bottom: 22%; left: 42%; width: 16%; height: 10%;
  background: linear-gradient(135deg, #f0e0c0 0%, #c8b898 100%);
  border-radius: 2px;
  transform: rotate(3deg);
  box-shadow: 1px 1px 3px rgba(0,0,0,0.2);
  animation: md-doc 8s ease-in-out infinite alternate;
}
@keyframes md-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes md-map { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes md-river { 0% { opacity:0.6; transform: rotate(-18deg) } 50% { opacity:1; transform: rotate(-12deg) } 100% { opacity:0.7; transform: rotate(-15deg) } }
@keyframes md-fig-a { 0%,100% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-3px) rotate(1deg) } }
@keyframes md-fig-b { 0%,100% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-4px) rotate(-2deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(3px) rotate(-1deg) } }
@keyframes md-candle { 0% { opacity:0.7; box-shadow: 0 0 15px 5px #f0b040 } 50% { opacity:1; box-shadow: 0 0 30px 12px #ffc860 } 100% { opacity:0.8; box-shadow: 0 0 18px 6px #d49030 } }
@keyframes md-doc { 0% { transform: rotate(3deg) scale(0.95) } 50% { transform: rotate(5deg) scale(1.02) } 100% { transform: rotate(1deg) scale(0.98) } }

/* ---- Scene: bears-course ---- */
.scn-bangor-archdeacon-house-bears-course {
  background:
    linear-gradient(180deg, #d4b898 0%, #b89878 40%, #a08060 100%),
    radial-gradient(ellipse at 50% 0%, #e0c8a8 0%, transparent 60%);
}
.scn-bangor-archdeacon-house-bears-course .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(90deg, #c0a888 0%, #d0b898 50%, #c0a888 100%);
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.1);
  animation: bc-wall 18s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-bears-course .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #a08060 0%, #7a5a3a 100%);
  border-radius: 10% 10% 0 0 / 40% 40% 0 0;
  animation: bc-floor 10s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-bears-course .map-on-wall {
  position: absolute; top: 12%; left: 25%; width: 50%; height: 35%;
  background: linear-gradient(135deg, #e8d4a0 0%, #b89868 100%);
  border: 6px solid #5a3a1a;
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: bc-map 15s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-bears-course .arm-gesture {
  position: absolute; bottom: 40%; left: 30%; width: 30%; height: 20%;
  background: linear-gradient(135deg, #2a1a0a 0%, transparent 60%);
  border-radius: 80% 0% 0% 80% / 60% 0% 0% 60%;
  transform-origin: bottom right;
  animation: bc-arm 3s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-bears-course .figure-speaker {
  position: absolute; bottom: 32%; left: 22%; 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: bc-speak 4.5s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-bears-course .figure-listener {
  position: absolute; bottom: 32%; right: 18%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2210 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bc-listen 4s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-bears-course .inkwell {
  position: absolute; bottom: 28%; left: 50%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1208 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: bc-ink 6s ease-in-out infinite alternate;
}
@keyframes bc-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes bc-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } 100% { transform: scaleY(1) } }
@keyframes bc-map { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.02) rotate(1deg) } 100% { transform: scale(0.98) rotate(-1deg) } }
@keyframes bc-arm { 0% { transform: rotate(0) translateX(0) } 25% { transform: rotate(-15deg) translateX(5px) } 50% { transform: rotate(0) translateX(10px) } 75% { transform: rotate(10deg) translateX(5px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes bc-speak { 0%,100% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(2deg) } }
@keyframes bc-listen { 0%,100% { transform: translateX(0) } 25% { transform: translateX(-2px) } 50% { transform: translateX(0) } 75% { transform: translateX(1px) } }
@keyframes bc-ink { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }

/* ---- Scene: ill-have-it-so ---- */
.scn-bangor-archdeacon-house-ill-have-it-so {
  background:
    linear-gradient(180deg, #d0a880 0%, #b89878 40%, #98705a 100%),
    radial-gradient(ellipse at 50% 0%, #e8c898 0%, transparent 70%);
}
.scn-bangor-archdeacon-house-ill-have-it-so .bg-room {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #b89878 0%, #d0b090 50%, #b89878 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.15);
  animation: is-bg 16s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-ill-have-it-so .table {
  position: absolute; bottom: 18%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%);
  border-radius: 12px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-bangor-archdeacon-house-ill-have-it-so .figure-challenger {
  position: absolute; bottom: 28%; left: 15%; 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 left;
  animation: is-chal 3s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-ill-have-it-so .figure-opponent {
  position: absolute; bottom: 28%; right: 15%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2210 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom right;
  animation: is-opp 4s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-ill-have-it-so .document {
  position: absolute; bottom: 22%; left: 40%; width: 20%; height: 12%;
  background: linear-gradient(135deg, #f0e0c0 0%, #c8b898 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 1px 1px 4px rgba(0,0,0,0.3);
  animation: is-doc 7s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-ill-have-it-so .chair-overturned {
  position: absolute; bottom: 16%; right: 8%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 4px;
  transform: rotate(40deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: is-chair 5s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-ill-have-it-so .candle-alt {
  position: absolute; bottom: 26%; left: 48%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #ffd060 0%, #c88a20 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px #e0a030, 0 0 40px 15px rgba(224,160,48,0.4);
  animation: is-candle 2.5s ease-in-out infinite alternate;
}
@keyframes is-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes is-chal { 0%,100% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8px) rotate(3deg) } 50% { transform: translateX(0) rotate(-4deg) } 75% { transform: translateX(-4px) rotate(2deg) } }
@keyframes is-opp { 0%,100% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-6px) rotate(-3deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(4px) rotate(-1deg) } }
@keyframes is-doc { 0% { transform: rotate(5deg) scale(1) } 50% { transform: rotate(7deg) scale(1.02) } 100% { transform: rotate(3deg) scale(0.98) } }
@keyframes is-chair { 0% { transform: rotate(40deg) } 50% { transform: rotate(50deg) } 100% { transform: rotate(35deg) } }
@keyframes is-candle { 0% { opacity:0.6; box-shadow: 0 0 12px 4px #e0a030 } 50% { opacity:1; box-shadow: 0 0 30px 12px #ffc040 } 100% { opacity:0.7; box-shadow: 0 0 15px 5px #c08020 } }

/* bangor-archdeacon-house-schooled – moonlit exterior */
.scn-bangor-archdeacon-house-schooled {
  background: linear-gradient(180deg, #0f1a2e 0%, #1b2a40 40%, #2a3d55 70%, #3c5270 100%),
              radial-gradient(ellipse at 70% 20%, #e0eaff 0%, transparent 60%);
}
.scn-bangor-archdeacon-house-schooled .sky-night {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #0f1a2e 0%, #1b2a40 80%, transparent);
  animation: ba1-skynight 18s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-schooled .moon {
  position:absolute; top:8%; right:22%; width:60px; height:60px;
  background: radial-gradient(circle at 40% 40%, #f0f4ff 0%, #d0d8f0 60%, #a0b0d0 100%);
  border-radius:50%;
  box-shadow: 0 0 40px 20px rgba(200,210,255,0.3), 0 0 80px 40px rgba(200,210,255,0.1);
  animation: ba1-moon 8s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-schooled .cloud-drift {
  position:absolute; height:8px;
  background: linear-gradient(90deg, transparent, rgba(200,210,240,0.3), transparent);
  border-radius:50%;
  filter: blur(3px);
}
.scn-bangor-archdeacon-house-schooled .cloud-d1 {
  top:12%; left:-10%; width:120px;
  animation: ba1-drift1 45s linear infinite;
}
.scn-bangor-archdeacon-house-schooled .cloud-d2 {
  top:20%; left:-15%; width:80px;
  animation: ba1-drift2 60s linear infinite reverse;
}
.scn-bangor-archdeacon-house-schooled .house-shape {
  position:absolute; bottom:20%; left:50%; transform:translateX(-50%);
  width:140px; height:100px;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 60%, #1a2a3a 100%);
  border-radius:6% 6% 0 0;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.5);
  animation: ba1-house 12s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-schooled .doorway-light {
  position:absolute; bottom:20%; left:50%; transform:translateX(-50%);
  width:30px; height:50px;
  background: radial-gradient(ellipse at 50% 70%, #ffe0a0 0%, #cc8844 60%, transparent);
  border-radius:40% 40% 10% 10%;
  box-shadow: 0 0 30px 15px rgba(255,200,100,0.4);
  animation: ba1-doorlight 4s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-schooled .figure-leaving {
  position:absolute; bottom:21%; left:38%; width:16px; height:40px;
  background: linear-gradient(180deg, #2a3340 0%, #1a202a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ba1-figure 6s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-schooled .lantern-post {
  position:absolute; bottom:18%; left:28%; width:4px; height:30px;
  background:#2a3a4a;
}
.scn-bangor-archdeacon-house-schooled .lantern-post::after {
  content:''; position:absolute; top:-6px; left:-4px; width:12px; height:12px;
  background: radial-gradient(circle, #ffd080 0%, #cc8833 60%, transparent);
  border-radius:50%;
  box-shadow: 0 0 20px 8px rgba(255,200,80,0.4);
  animation: ba1-lantern 3s ease-in-out infinite alternate;
}
@keyframes ba1-skynight {
  0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; }
}
@keyframes ba1-moon {
  0% { transform: translateY(0) scale(0.95); opacity:0.9; }
  50% { transform: translateY(-4px) scale(1.05); opacity:1; }
  100% { transform: translateY(0) scale(0.95); opacity:0.9; }
}
@keyframes ba1-drift1 {
  0% { transform: translateX(-130px); } 100% { transform: translateX(120vw); }
}
@keyframes ba1-drift2 {
  0% { transform: translateX(-100px); } 100% { transform: translateX(130vw); }
}
@keyframes ba1-house {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes ba1-doorlight {
  0% { opacity:0.7; box-shadow: 0 0 20px 10px rgba(255,200,100,0.3); }
  50% { opacity:1; box-shadow: 0 0 40px 20px rgba(255,200,100,0.5); }
  100% { opacity:0.8; box-shadow: 0 0 25px 12px rgba(255,200,100,0.35); }
}
@keyframes ba1-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0deg); }
}
@keyframes ba1-lantern {
  0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; }
}

/* bangor-archdeacon-house-conduct-promise – moonlit interior */
.scn-bangor-archdeacon-house-conduct-promise {
  background: linear-gradient(135deg, #1a2538 0%, #2a3a50 40%, #1c2d42 70%, #0d1b2a 100%),
              radial-gradient(ellipse at 15% 60%, #3a4a60 0%, transparent 70%);
}
.scn-bangor-archdeacon-house-conduct-promise .room-wall {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #1e2d40 0%, #2a3d55 50%, #1a2a3a 100%);
  border-radius:10% 10% 0 0 / 8% 8% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
  animation: ba2-wall 20s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-conduct-promise .window-moon {
  position:absolute; top:10%; left:15%; width:60px; height:80px;
  background: linear-gradient(180deg, #c0d0e8 0%, #a0b8d0 100%);
  border-radius:10% 10% 5% 5%;
  box-shadow: inset 0 0 20px #b0c4e0, 0 0 30px rgba(160,180,220,0.3);
  animation: ba2-window 9s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-conduct-promise .moonbeam {
  position:absolute; top:20%; left:18%; width:80px; height:150px;
  background: linear-gradient(180deg, rgba(200,210,240,0.15) 0%, transparent);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: ba2-beam 12s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-conduct-promise .figure-mother {
  position:absolute; bottom:25%; left:30%; width:18px; height:42px;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 60%, #1a2a3a 100%);
  border-radius: 50% 50% 45% 45% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: ba2-mother 5s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-conduct-promise .figure-father {
  position:absolute; bottom:25%; left:55%; width:20px; height:44px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ba2-father 5.5s ease-in-out infinite reverse;
}
.scn-bangor-archdeacon-house-conduct-promise .table-shape {
  position:absolute; bottom:30%; left:35%; width:70px; height:12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius:20% 20% 0 0;
  box-shadow: 0 6px 10px rgba(0,0,0,0.4);
  animation: ba2-table 14s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-conduct-promise .candle-glow {
  position:absolute; bottom:35%; left:45%; width:8px; height:8px;
  background: radial-gradient(circle, #ffe080 0%, #cc8833 60%, transparent);
  border-radius:50%;
  box-shadow: 0 0 25px 12px rgba(255,200,80,0.5);
  animation: ba2-candle 2.5s ease-in-out infinite alternate;
}
@keyframes ba2-wall {
  0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; }
}
@keyframes ba2-window {
  0% { transform: scale(0.98); box-shadow: inset 0 0 15px #b0c4e0, 0 0 20px rgba(160,180,220,0.2); }
  50% { transform: scale(1.02); box-shadow: inset 0 0 25px #c0d4f0, 0 0 40px rgba(160,180,220,0.5); }
  100% { transform: scale(0.98); box-shadow: inset 0 0 15px #b0c4e0, 0 0 20px rgba(160,180,220,0.2); }
}
@keyframes ba2-beam {
  0% { opacity:0.3; transform: scaleY(0.9); } 50% { opacity:0.6; transform: scaleY(1.1); } 100% { opacity:0.4; transform: scaleY(0.95); }
}
@keyframes ba2-mother {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes ba2-father {
  0% { transform: translateY(0) rotate(2deg); }
  25% { transform: translateY(-1px) rotate(-1deg); }
  50% { transform: translateY(0) rotate(1deg); }
  75% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes ba2-table {
  0%,100% { transform: scaleX(0.95); } 50% { transform: scaleX(1.05); }
}
@keyframes ba2-candle {
  0% { opacity:0.7; transform: scale(0.9); }
  50% { opacity:1; transform: scale(1.1); }
  100% { opacity:0.8; transform: scale(0.95); }
}

/* bangor-archdeacon-house-understand-looks – warm close‑up of two profiles */
.scn-bangor-archdeacon-house-understand-looks {
  background: linear-gradient(180deg, #1b2230 0%, #2a3040 40%, #3c4050 70%, #2a3040 100%),
              radial-gradient(ellipse at 50% 80%, #5a4a3a 0%, transparent 70%);
}
.scn-bangor-archdeacon-house-understand-looks .bg-arch {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 30%, #4a4050 0%, #1a2030 100%);
  border-radius:20% 20% 0 0;
  animation: ba3-bg 15s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-understand-looks .profile-left {
  position:absolute; bottom:25%; left:28%; width:35px; height:50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 60%, #1a1a2a 100%);
  border-radius: 60% 40% 50% 50% / 70% 50% 50% 30%; /* left profile */
  transform-origin: bottom center;
  animation: ba3-left 6s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-understand-looks .profile-right {
  position:absolute; bottom:25%; right:28%; width:35px; height:50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 60%, #1a1a2a 100%);
  border-radius: 40% 60% 50% 50% / 50% 70% 30% 50%; /* right profile */
  transform-origin: bottom center;
  animation: ba3-right 6.5s ease-in-out infinite reverse;
}
.scn-bangor-archdeacon-house-understand-looks .candle-flame {
  position:absolute; bottom:35%; left:50%; transform:translateX(-50%);
  width:12px; height:18px;
  background: radial-gradient(ellipse at 50% 20%, #fff0c0 0%, #ffb060 50%, transparent);
  border-radius:50% 50% 40% 40% / 80% 80% 20% 20%;
  box-shadow: 0 0 30px 15px rgba(255,200,100,0.6);
  animation: ba3-flame 2s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-understand-looks .candle-base {
  position:absolute; bottom:30%; left:50%; transform:translateX(-50%);
  width:10px; height:20px;
  background: linear-gradient(180deg, #c8b088 0%, #a08860 100%);
  border-radius:20% 20% 0 0;
}
.scn-bangor-archdeacon-house-understand-looks .warm-halo {
  position:absolute; bottom:20%; left:30%; right:30%; top:20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,200,150,0.15) 0%, transparent 70%);
  animation: ba3-halo 8s ease-in-out infinite alternate;
}
@keyframes ba3-bg {
  0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; }
}
@keyframes ba3-left {
  0% { transform: translateX(-2px) translateY(0) rotate(-2deg); }
  25% { transform: translateX(0) translateY(-1px) rotate(0deg); }
  50% { transform: translateX(2px) translateY(0) rotate(2deg); }
  75% { transform: translateX(0) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(-2px) translateY(0) rotate(-2deg); }
}
@keyframes ba3-right {
  0% { transform: translateX(2px) translateY(0) rotate(2deg); }
  25% { transform: translateX(0) translateY(-1px) rotate(0deg); }
  50% { transform: translateX(-2px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(0) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(2px) translateY(0) rotate(2deg); }
}
@keyframes ba3-flame {
  0% { transform: translateX(-50%) scale(1) rotate(-5deg); opacity:0.8; }
  50% { transform: translateX(-50%) scale(1.2) rotate(3deg); opacity:1; }
  100% { transform: translateX(-50%) scale(0.95) rotate(-2deg); opacity:0.9; }
}
@keyframes ba3-halo {
  0% { opacity:0.5; transform: scale(0.95); } 50% { opacity:0.8; transform: scale(1.05); } 100% { opacity:0.6; transform: scale(0.98); }
}

/* bangor-archdeacon-house-kisses-understand – warm moonlit embrace */
.scn-bangor-archdeacon-house-kisses-understand {
  background: linear-gradient(90deg, #1e2838 0%, #2a3a4a 50%, #1e2838 100%),
              radial-gradient(ellipse at 30% 60%, #4a3a3a 0%, transparent 60%);
}
.scn-bangor-archdeacon-house-kisses-understand .wall-interior {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #2a3040 0%, #1a2030 50%, #0d1520 100%);
  border-radius:20% 20% 10% 10% / 10% 10% 5% 5%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: ba4-wall 20s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-kisses-understand .window-arch {
  position:absolute; top:8%; left:10%; width:70px; height:90px;
  background: linear-gradient(180deg, #c0d0e8 0%, #9ab0cc 100%);
  border-radius:50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: inset 0 0 20px #b0c4e0, 0 0 30px rgba(160,180,220,0.25);
  animation: ba4-window 10s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-kisses-understand .moonlite {
  position:absolute; top:15%; left:12%; width:50px; height:80px;
  background: linear-gradient(180deg, rgba(200,210,240,0.1) 0%, transparent);
  clip-path: polygon(0 0, 100% 0, 60% 100%, 40% 100%);
  animation: ba4-moonlite 14s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-kisses-understand .couple-embrace {
  position:absolute; bottom:28%; left:50%; transform:translateX(-50%);
  width:40px; height:55px;
  background: linear-gradient(180deg, #2a3340 0%, #1a202a 60%, #0e141a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 0 20px rgba(0,0,0,0.4);
  animation: ba4-couple 7s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-kisses-understand .love-glow {
  position:absolute; bottom:28%; left:50%; transform:translateX(-50%);
  width:60px; height:60px;
  background: radial-gradient(ellipse, rgba(255,200,150,0.2) 0%, transparent 70%);
  animation: ba4-glow 4s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-kisses-understand .curtain-left {
  position:absolute; top:0; left:0; width:15%; height:100%;
  background: linear-gradient(90deg, #3a2a2a 0%, #2a1a1a 50%, transparent);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
  animation: ba4-curtain 16s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-kisses-understand .curtain-right {
  position:absolute; top:0; right:0; width:15%; height:100%;
  background: linear-gradient(270deg, #3a2a2a 0%, #2a1a1a 50%, transparent);
  clip-path: polygon(100% 0, 0 0, 20% 100%, 100% 100%);
  animation: ba4-curtain 16s ease-in-out infinite alternate-reverse;
}
@keyframes ba4-wall {
  0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; }
}
@keyframes ba4-window {
  0% { transform: scale(0.97); box-shadow: inset 0 0 15px #b0c4e0, 0 0 20px rgba(160,180,220,0.15); }
  50% { transform: scale(1.03); box-shadow: inset 0 0 25px #c0d4f0, 0 0 40px rgba(160,180,220,0.4); }
  100% { transform: scale(0.97); box-shadow: inset 0 0 15px #b0c4e0, 0 0 20px rgba(160,180,220,0.15); }
}
@keyframes ba4-moonlite {
  0% { opacity:0.2; transform: scaleY(0.9); } 50% { opacity:0.5; transform: scaleY(1.1); } 100% { opacity:0.3; transform: scaleY(0.95); }
}
@keyframes ba4-couple {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); }
  75% { transform: translateX(-50%) translateY(-3px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes ba4-glow {
  0% { opacity:0.3; transform: translateX(-50%) scale(0.9); }
  50% { opacity:0.7; transform: translateX(-50%) scale(1.1); }
  100% { opacity:0.4; transform: translateX(-50%) scale(0.95); }
}
@keyframes ba4-curtain {
  0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; }
}

.scn-prince-apartment-cowards-assurance {
  background: linear-gradient(180deg, #2a1e12 0%, #1c140e 50%, #0f0a06 100%),
              radial-gradient(ellipse at 50% 100%, #4a3220 0%, transparent 80%);
}
.scn-prince-apartment-cowards-assurance .wall-back {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #3a2818 0%, #2e1e10 50%, #3a2818 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  animation: pa1-wall 15s ease-in-out infinite alternate;
}
.scn-prince-apartment-cowards-assurance .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a100a 0%, #2a1c10 30%, #3a2818 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-prince-apartment-cowards-assurance .table {
  position: absolute; bottom: 18%; left: 50%; width: 120px; height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #5a3a1a, #4a2a0a, #5a3a1a);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-prince-apartment-cowards-assurance .chair-left {
  position: absolute; bottom: 18%; left: 35%; width: 28px; height: 36px;
  background: linear-gradient(180deg, #4a3010 0%, #2a1a08 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(5deg);
  animation: pa1-chair 8s ease-in-out infinite;
}
.scn-prince-apartment-cowards-assurance .chair-right {
  position: absolute; bottom: 18%; right: 35%; width: 28px; height: 36px;
  background: linear-gradient(180deg, #4a3010 0%, #2a1a08 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(-5deg);
  animation: pa1-chair 8s ease-in-out infinite reverse;
}
.scn-prince-apartment-cowards-assurance .figure-left {
  position: absolute; bottom: 24%; left: 38%; width: 20px; height: 40px;
  background: radial-gradient(ellipse at 50% 20%, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pa1-gesture 4s ease-in-out infinite;
}
.scn-prince-apartment-cowards-assurance .figure-right {
  position: absolute; bottom: 24%; right: 38%; width: 20px; height: 40px;
  background: radial-gradient(ellipse at 50% 20%, #3a2010 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pa1-gesture 4s ease-in-out infinite 2s;
  transform: scaleX(-1);
}
.scn-prince-apartment-cowards-assurance .candle {
  position: absolute; bottom: 22%; left: 50%; width: 6px; height: 28px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8d088 0%, #c8a868 60%, #a08050 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-prince-apartment-cowards-assurance .flame {
  position: absolute; bottom: 46%; left: 50%; width: 10px; height: 16px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd060 0%, #ffa030 60%, #ff6010 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px #ff8020, 0 0 40px 12px rgba(255,128,32,0.4);
  animation: pa1-flicker 1.5s ease-in-out infinite alternate;
}
@keyframes pa1-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pa1-chair { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes pa1-gesture { 0% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(6px, -3px) rotate(10deg); } 50% { transform: translate(-2px, -5px) rotate(-5deg); } 75% { transform: translate(8px, -1px) rotate(15deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes pa1-flicker { 0% { transform: translateX(-50%) scaleY(1); opacity: 0.8; } 25% { transform: translateX(-50%) scaleY(1.1) scaleX(0.9); opacity: 1; } 75% { transform: translateX(-50%) scaleY(0.9) scaleX(1.1); opacity: 0.9; } 100% { transform: translateX(-50%) scaleY(1); opacity: 0.85; } }

.scn-prince-apartment-hal-agrees {
  background: linear-gradient(180deg, #1e1610 0%, #140e0a 50%, #0a0805 100%),
              radial-gradient(ellipse at 30% 70%, #3a2818 0%, transparent 70%);
}
.scn-prince-apartment-hal-agrees .wall-corner {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2a1a0e 0%, #1c1008 50%, #2a1a0e 100%);
  border-radius: 0 0 40% 40% / 0 0 15% 15%;
}
.scn-prince-apartment-hal-agrees .floor-plank {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #0a0604 0%, #1a0e08 50%, #2a1810 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.8);
}
.scn-prince-apartment-hal-agrees .doorway {
  position: absolute; bottom: 12%; left: 70%; width: 50px; height: 80px;
  background: #040202;
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.9);
  transform: rotateY(10deg);
}
.scn-prince-apartment-hal-agrees .hal-silhouette {
  position: absolute; bottom: 18%; left: 50%; width: 22px; height: 50px;
  background: radial-gradient(ellipse at 50% 30%, #1a0e08 0%, #080404 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pa2-walk 5s ease-in-out infinite;
}
.scn-prince-apartment-hal-agrees .cloak {
  position: absolute; bottom: 18%; left: 42%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #140a04 100%);
  border-radius: 80% 20% 40% 60% / 70% 30% 60% 40%;
  animation: pa2-sway 5s ease-in-out infinite alternate;
  transform-origin: top center;
}
.scn-prince-apartment-hal-agrees .lantern {
  position: absolute; bottom: 26%; left: 60%; width: 10px; height: 14px;
  background: #a08040;
  border-radius: 30% 30% 10% 10%;
  animation: pa2-swing 3s ease-in-out infinite alternate;
}
.scn-prince-apartment-hal-agrees .lantern-light {
  position: absolute; bottom: 28%; left: 60%; width: 30px; height: 30px;
  transform: translate(-30%, 20%);
  background: radial-gradient(circle, rgba(255,200,100,0.8) 0%, rgba(255,200,100,0) 70%);
  border-radius: 50%;
  animation: pa2-glow 3s ease-in-out infinite alternate;
}
.scn-prince-apartment-hal-agrees .shadow-shaft {
  position: absolute; bottom: 12%; left: 55%; width: 8px; height: 40px;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  transform: rotate(5deg);
  animation: pa2-shift 6s ease-in-out infinite alternate;
}
@keyframes pa2-walk { 0% { transform: translate(0, 0) rotate(-2deg); } 25% { transform: translate(5px, -2px) rotate(2deg); } 50% { transform: translate(10px, 0) rotate(-1deg); } 75% { transform: translate(15px, -1px) rotate(1deg); } 100% { transform: translate(20px, 0) rotate(0deg); } }
@keyframes pa2-sway { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes pa2-swing { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-8deg); } }
@keyframes pa2-glow { 0% { opacity: 0.7; transform: translate(-30%, 20%) scale(0.9); } 50% { opacity: 1; transform: translate(-30%, 20%) scale(1.1); } 100% { opacity: 0.8; transform: translate(-30%, 20%) scale(1); } }
@keyframes pa2-shift { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(8deg) translateX(3px); } 100% { transform: rotate(5deg) translateX(0); } }

.scn-prince-apartment-hal-soliloquy {
  background: linear-gradient(180deg, #1e1a14 0%, #16100a 50%, #0e0804 100%),
              radial-gradient(ellipse at 30% 40%, #4a3a20 0%, transparent 70%);
}
.scn-prince-apartment-hal-soliloquy .wall-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a2010 0%, #1e1408 50%, #2a2010 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-prince-apartment-hal-soliloquy .floor-wide {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #0a0602 0%, #1a1006 50%, #2a1a0a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.7);
}
.scn-prince-apartment-hal-soliloquy .window-arch {
  position: absolute; top: 12%; left: 30%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 30%, #a08050 0%, #3a2810 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-prince-apartment-hal-soliloquy .window-pane {
  position: absolute; top: 14%; left: 33%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #c8a870 0%, #a08050 100%);
  border-radius: 40% 40% 10% 10%;
  opacity: 0.8;
  animation: pa3-pane 12s ease-in-out infinite alternate;
}
.scn-prince-apartment-hal-soliloquy .sun-rays {
  position: absolute; top: 14%; left: 33%; width: 60px; height: 70px;
  background: radial-gradient(ellipse at 50% 20%, rgba(255,200,100,0.3) 0%, transparent 70%);
  border-radius: 40% 40% 10% 10%;
  animation: pa3-rays 8s ease-in-out infinite alternate;
}
.scn-prince-apartment-hal-soliloquy .hal-figure {
  position: absolute; bottom: 22%; left: 45%; width: 20px; height: 46px;
  background: radial-gradient(ellipse at 50% 20%, #1a1008 0%, #080402 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pa3-speak 5s ease-in-out infinite;
}
.scn-prince-apartment-hal-soliloquy .chair-low {
  position: absolute; bottom: 22%; left: 55%; width: 30px; height: 28px;
  background: linear-gradient(180deg, #3a2810 0%, #1a0e04 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-3deg);
}
.scn-prince-apartment-hal-soliloquy .dust-motes {
  position: absolute; top: 20%; left: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,220,160,0.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: pa3-dust 20s linear infinite;
  filter: blur(2px);
}
@keyframes pa3-pane { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pa3-rays { 0% { transform: rotate(0deg) scale(1); opacity: 0.3; } 50% { transform: rotate(3deg) scale(1.05); opacity: 0.5; } 100% { transform: rotate(-2deg) scale(0.95); opacity: 0.3; } }
@keyframes pa3-speak { 0% { transform: translate(0, 0) rotate(0deg); } 20% { transform: translate(-2px, -3px) rotate(-5deg); } 40% { transform: translate(1px, -1px) rotate(3deg); } 60% { transform: translate(3px, -4px) rotate(-2deg); } 80% { transform: translate(-1px, -2px) rotate(6deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes pa3-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 20% { opacity: 0.3; } 80% { opacity: 0.2; } 100% { transform: translate(30px, -20px) scale(0.8); opacity: 0; } }

.scn-prince-apartment-hal-reformation {
  background: linear-gradient(180deg, #1e160e 0%, #140c06 50%, #0a0602 100%),
              radial-gradient(ellipse at 50% 80%, #3a2818 0%, transparent 80%);
}
.scn-prince-apartment-hal-reformation .wall-dim {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #2a1a0a 0%, #1e1006 50%, #2a1a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 12% 12%;
}
.scn-prince-apartment-hal-reformation .floor-board {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #0a0602 0%, #1a0e06 50%, #281810 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.8);
}
.scn-prince-apartment-hal-reformation .desk {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 8px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #4a3010, #3a2008, #4a3010);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-prince-apartment-hal-reformation .book-stack {
  position: absolute; bottom: 28%; left: 42%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #6a4a1a 0%, #4a2a0a 100%);
  border-radius: 8% 8% 4% 4%;
  transform: rotate(5deg);
  animation: pa4-tilt 10s ease-in-out infinite alternate;
}
.scn-prince-apartment-hal-reformation .candle-stick {
  position: absolute; bottom: 27%; left: 55%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #d0a060 0%, #a08040 60%, #806030 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-prince-apartment-hal-reformation .flame-high {
  position: absolute; bottom: 46%; left: 55%; width: 12px; height: 18px;
  background: radial-gradient(circle, #ffd080 0%, #ffa030 60%, #ff6000 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 24px 8px #ff8020, 0 0 48px 16px rgba(255,128,32,0.3);
  animation: pa4-flame 2s ease-in-out infinite alternate;
}
.scn-prince-apartment-hal-reformation .hal-shadow {
  position: absolute; bottom: 22%; left: 48%; width: 18px; height: 42px;
  background: radial-gradient(ellipse at 50% 20%, #1a0e06 0%, #080402 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pa4-sit 6s ease-in-out infinite;
}
.scn-prince-apartment-hal-reformation .scroll-open {
  position: absolute; bottom: 26%; left: 38%; width: 20px; height: 8px;
  background: linear-gradient(90deg, #d0b080 0%, #c09860 50%, #d0b080 100%);
  border-radius: 50%;
  transform: rotate(-10deg);
  animation: pa4-unfold 8s ease-in-out infinite alternate;
}
@keyframes pa4-tilt { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-3px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes pa4-flame { 0% { transform: scaleY(1) scaleX(1); opacity: 0.9; } 30% { transform: scaleY(1.15) scaleX(0.9); opacity: 1; } 60% { transform: scaleY(0.95) scaleX(1.1); opacity: 0.85; } 100% { transform: scaleY(1.05) scaleX(0.95); opacity: 0.9; } }
@keyframes pa4-sit { 0% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(1px, -2px) rotate(2deg); } 50% { transform: translate(-1px, -3px) rotate(-2deg); } 75% { transform: translate(2px, -1px) rotate(1deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes pa4-unfold { 0% { transform: rotate(-10deg) scaleX(0.8); } 50% { transform: rotate(-8deg) scaleX(1.1); } 100% { transform: rotate(-10deg) scaleX(0.9); } }

/* rebel-camp-night-blunt-interrupts */
.scn-rebel-camp-night-blunt-interrupts {
  background: linear-gradient(180deg, #2b2b3a 0%, #1f1f2e 40%, #141420 100%), radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 60%);
  overflow: hidden;
}
.scn-rebel-camp-night-blunt-interrupts .overcast-sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 60%, transparent 100%);
  animation: rcn1-sky 15s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-blunt-interrupts .ground-mist {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(0deg, #1a1a2a 0%, #2a2a3e 50%, transparent 100%);
  filter: blur(10px);
  animation: rcn1-mist 12s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-blunt-interrupts .tent {
  position:absolute; bottom:20%; width:80px; height:65px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: inset 0 -10px 15px rgba(0,0,0,.6);
}
.scn-rebel-camp-night-blunt-interrupts .left-tent { left:10%; transform: rotate(-2deg); animation: rcn1-tent 8s ease-in-out infinite; }
.scn-rebel-camp-night-blunt-interrupts .right-tent { right:10%; transform: rotate(1deg) scaleX(-1); animation: rcn1-tent 9s ease-in-out infinite; }
.scn-rebel-camp-night-blunt-interrupts .figure {
  position:absolute; bottom:25%; width:20px; height:40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-rebel-camp-night-blunt-interrupts .figure-a { left:35%; animation: rcn1-figure-a 4s ease-in-out infinite; }
.scn-rebel-camp-night-blunt-interrupts .figure-b { left:55%; animation: rcn1-figure-b 5s ease-in-out infinite; }
.scn-rebel-camp-night-blunt-interrupts .campfire {
  position:absolute; bottom:28%; left:45%; width:14px; height:20px;
  background: radial-gradient(circle at 50% 80%, #c07a40 0%, #a05a20 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(192,122,64,.5), 0 0 40px 15px rgba(192,122,64,.2);
  animation: rcn1-fire 3s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-blunt-interrupts .spark {
  position:absolute; bottom:45%; width:4px; height:4px;
  background: #c88a50;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #c88a50;
  filter: blur(1px);
}
.scn-rebel-camp-night-blunt-interrupts .spark-1 { left:44%; animation: rcn1-spark1 2.5s linear infinite; }
.scn-rebel-camp-night-blunt-interrupts .spark-2 { left:48%; animation: rcn1-spark2 3.2s linear infinite; animation-delay: 0.7s; }
@keyframes rcn1-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes rcn1-mist { 0% { opacity:0.4; transform: translateY(0); } 50% { opacity:0.7; transform: translateY(-5px); } 100% { opacity:0.3; transform: translateY(0); } }
@keyframes rcn1-tent { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes rcn1-figure-a { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(-3deg); } 50% { transform: translateX(16px) rotate(3deg); } 75% { transform: translateX(8px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rcn1-figure-b { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-10px) rotate(2deg); } 66% { transform: translateX(-5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rcn1-fire { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.15); opacity:1; } 100% { transform: scale(0.95); opacity:0.7; } }
@keyframes rcn1-spark1 { 0% { bottom:45%; opacity:1; transform: translateX(0); } 50% { bottom:70%; opacity:0.8; transform: translateX(15px); } 100% { bottom:95%; opacity:0; transform: translateX(-10px); } }
@keyframes rcn1-spark2 { 0% { bottom:45%; opacity:1; transform: translateX(0); } 50% { bottom:65%; opacity:0.6; transform: translateX(-10px); } 100% { bottom:90%; opacity:0; transform: translateX(20px); } }

/* rebel-camp-night-hotspur-continues */
.scn-rebel-camp-night-hotspur-continues {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 50%, #080810 100%), radial-gradient(ellipse at 50% 30%, #2a2a3e 0%, transparent 70%);
  overflow: hidden;
}
.scn-rebel-camp-night-hotspur-continues .night-bg {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  animation: rcn2-bg 20s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-hotspur-continues .hills-dark {
  position:absolute; bottom:30%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.7);
  animation: rcn2-hills 16s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-hotspur-continues .speaker-figure {
  position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:28px; height:55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rcn2-speaker 6s ease-in-out infinite;
}
.scn-rebel-camp-night-hotspur-continues .banner {
  position:absolute; bottom:25%; left:40%; width:40px; height:30px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0c 100%);
  border-radius: 4% 4% 20% 20% / 10% 10% 30% 30%;
  clip-path: polygon(0% 0%, 100% 0%, 100% 80%, 50% 100%, 0% 80%);
  animation: rcn2-banner 7s ease-in-out infinite;
}
.scn-rebel-camp-night-hotspur-continues .listeners {
  position:absolute; bottom:25%; width:18px; height:35px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-rebel-camp-night-hotspur-continues .listeners-1 { left:25%; animation: rcn2-listen1 5s ease-in-out infinite; }
.scn-rebel-camp-night-hotspur-continues .listeners-2 { right:25%; animation: rcn2-listen2 6s ease-in-out infinite; }
.scn-rebel-camp-night-hotspur-continues .torch {
  position:absolute; bottom:30%; left:65%; width:8px; height:30px;
  background: linear-gradient(180deg, #8a6a3a 0%, #4a3a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  animation: rcn2-torch 4s ease-in-out infinite;
}
.scn-rebel-camp-night-hotspur-continues .torch-glow {
  position:absolute; bottom:35%; left:65%; width:30px; height:30px;
  background: radial-gradient(circle, #c08040 0%, transparent 100%);
  transform: translate(-50%, 50%);
  border-radius: 50%;
  filter: blur(6px);
  animation: rcn2-glow 3s ease-in-out infinite alternate;
}
@keyframes rcn2-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes rcn2-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes rcn2-speaker { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(-3deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(3deg) translateY(0); } 75% { transform: translateX(-50%) rotate(-1deg) translateY(-1px); } }
@keyframes rcn2-banner { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rcn2-listen1 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rcn2-listen2 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rcn2-torch { 0% { transform: skewX(0deg) scaleY(1); } 50% { transform: skewX(2deg) scaleY(1.1); } 100% { transform: skewX(-2deg) scaleY(1); } }
@keyframes rcn2-glow { 0% { opacity:0.6; transform: translate(-50%, 50%) scale(0.9); } 50% { opacity:1; transform: translate(-50%, 50%) scale(1.2); } 100% { opacity:0.7; transform: translate(-50%, 50%) scale(1); } }

/* rebel-camp-night-blunt-return */
.scn-rebel-camp-night-blunt-return {
  background: linear-gradient(180deg, #2e2e3e 0%, #1e1e2e 30%, #141428 100%), radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 70%);
  overflow: hidden;
}
.scn-rebel-camp-night-blunt-return .dusk-sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #3e3e5e 0%, #2e2e4e 60%, transparent 100%);
  animation: rcn3-sky 18s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-blunt-return .far-ridge {
  position:absolute; bottom:35%; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,.5);
  animation: rcn3-ridge 22s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-blunt-return .near-path {
  position:absolute; bottom:20%; left:10%; right:10%; height:15%;
  background: linear-gradient(180deg, #2a2218 0%, #1a1208 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,.6);
  animation: rcn3-path 14s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-blunt-return .figure-retreat {
  position:absolute; bottom:18%; left:20%; width:22px; height:42px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rcn3-retreat 8s ease-in-out infinite;
}
.scn-rebel-camp-night-blunt-return .figure-blunt {
  position:absolute; bottom:18%; left:45%; width:22px; height:42px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rcn3-blunt 6s ease-in-out infinite;
}
.scn-rebel-camp-night-blunt-return .campfire-dying {
  position:absolute; bottom:25%; left:65%; width:12px; height:16px;
  background: radial-gradient(circle at 50% 80%, #8a5a30 0%, #5a3a1a 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 3px rgba(138,90,48,.4);
  animation: rcn3-fire 4s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-blunt-return .smoke {
  position:absolute; bottom:30%; width:30px; height:50px;
  background: radial-gradient(ellipse, rgba(180,170,160,0.3) 0%, transparent 100%);
  filter: blur(8px);
  transform-origin: bottom center;
}
.scn-rebel-camp-night-blunt-return .smoke-a { left:63%; animation: rcn3-smoke-a 9s ease-in-out infinite; }
.scn-rebel-camp-night-blunt-return .smoke-b { left:68%; animation: rcn3-smoke-b 11s ease-in-out infinite; animation-delay: 3s; }
@keyframes rcn3-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes rcn3-ridge { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes rcn3-path { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes rcn3-retreat { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-15px) rotate(-2deg); } 50% { transform: translateX(-30px) rotate(0deg); } 75% { transform: translateX(-15px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rcn3-blunt { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(3px) rotate(2deg); } 66% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rcn3-fire { 0% { transform: scale(1); opacity:0.6; } 50% { transform: scale(0.9); opacity:0.4; } 100% { transform: scale(1.1); opacity:0.7; } }
@keyframes rcn3-smoke-a { 0% { transform: translateY(0) scale(1); opacity:0.5; } 50% { transform: translateY(-30px) scale(1.5); opacity:0.2; } 100% { transform: translateY(-60px) scale(2); opacity:0; } }
@keyframes rcn3-smoke-b { 0% { transform: translateY(0) scale(1); opacity:0.5; } 50% { transform: translateY(-25px) scale(1.3); opacity:0.3; } 100% { transform: translateY(-50px) scale(1.8); opacity:0; } }

/* rebel-camp-night-may-be-so */
.scn-rebel-camp-night-may-be-so {
  background: linear-gradient(180deg, #16162e 0%, #0e0e1e 40%, #080810 100%), radial-gradient(ellipse at 50% 80%, #2a2a4a 0%, transparent 70%);
  overflow: hidden;
}
.scn-rebel-camp-night-may-be-so .deep-night {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #1e1e3e 0%, #0e0e2e 100%);
  animation: rcn4-night 25s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-may-be-so .moon-halo {
  position:absolute; top:8%; right:12%; width:40px; height:40px;
  background: radial-gradient(circle, #c8c8d8 0%, #a0a0b0 40%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: rcn4-moon 20s ease-in-out infinite;
}
.scn-rebel-camp-night-may-be-so .arch-stone {
  position:absolute; bottom:15%; left:10%; right:10%; height:50%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,.8);
  animation: rcn4-arch 18s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-may-be-so .kneeling-figure {
  position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:20px; height:45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rcn4-kneel 10s ease-in-out infinite;
}
.scn-rebel-camp-night-may-be-so .prayer-hands {
  position:absolute; bottom:38%; left:50%; transform:translateX(-50%); width:12px; height:18px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,.5);
  animation: rcn4-hands 6s ease-in-out infinite;
}
.scn-rebel-camp-night-may-be-so .candle {
  position:absolute; bottom:30%; left:38%; width:6px; height:20px;
  background: linear-gradient(180deg, #c8a050 0%, #a08030 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%;
  box-shadow: 0 0 2px 1px #a08030;
  animation: rcn4-candle 4s ease-in-out infinite;
}
.scn-rebel-camp-night-may-be-so .candle-glow {
  position:absolute; bottom:32%; left:38%; width:24px; height:24px;
  background: radial-gradient(circle, #c8a050 0%, transparent 100%);
  transform: translate(-50%, 50%);
  border-radius: 50%;
  filter: blur(5px);
  animation: rcn4-glow 3s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-may-be-so .dust {
  position:absolute; bottom:30%; width:4px; height:4px;
  background: #c0c0d0;
  border-radius: 50%;
  filter: blur(2px);
  opacity:0.4;
}
.scn-rebel-camp-night-may-be-so .motes {
  left:45%; top:40%;
  animation: rcn4-mote 12s linear infinite;
}
@keyframes rcn4-night { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes rcn4-moon { 0% { transform: translate(0,0); } 50% { transform: translate(5px,-3px); } 100% { transform: translate(-2px,2px); } }
@keyframes rcn4-arch { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes rcn4-kneel { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(1deg); } 75% { transform: translateX(-50%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes rcn4-hands { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes rcn4-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(1); } }
@keyframes rcn4-glow { 0% { opacity:0.5; transform: translate(-50%, 50%) scale(0.9); } 50% { opacity:0.8; transform: translate(-50%, 50%) scale(1.1); } 100% { opacity:0.6; transform: translate(-50%, 50%) scale(1); } }
@keyframes rcn4-mote { 0% { transform: translate(0,0); opacity:0.4; } 25% { transform: translate(10px,-15px); opacity:0.6; } 50% { transform: translate(5px,-30px); opacity:0.3; } 75% { transform: translate(15px,-45px); opacity:0.5; } 100% { transform: translate(0,-60px); opacity:0; } }

/* Scene 1: Warkworth Castle – Lady Percy enters (dim interior, tense) */
.scn-warkworth-castle-lady-percy-enters {
  background: 
    linear-gradient(180deg, #1a1210 0%, #2b1e1a 30%, #3d2a24 100%),
    radial-gradient(ellipse at 50% 100%, #4a3228 0%, transparent 70%);
}

.scn-warkworth-castle-lady-percy-enters .door-frame {
  position: absolute;
  left: 15%;
  bottom: 10%;
  width: 45%;
  height: 70%;
  background: linear-gradient(90deg, #2c1f1a 0%, #3d2a22 40%, #2c1f1a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset -8px 0 20px rgba(0,0,0,0.6), inset 8px 0 20px rgba(0,0,0,0.6);
  transform: perspective(800px) rotateY(-5deg);
}

.scn-warkworth-castle-lady-percy-enters .shadow-floor {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 18%;
  background: linear-gradient(180deg, #1a1210 0%, #0d0808 100%);
  transform: skewY(-2deg);
  filter: blur(3px);
  animation: wcle-shadow 6s ease-in-out infinite alternate;
}

.scn-warkworth-castle-lady-percy-enters .figure-enter {
  position: absolute;
  left: 30%;
  bottom: 14%;
  width: 20px;
  height: 60px;
  background: linear-gradient(180deg, #261b15 0%, #120b08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: wcle-enter 2s ease-in-out infinite, wcle-tremble 0.3s ease-in-out infinite;
}

.scn-warkworth-castle-lady-percy-enters .candle-glow {
  position: absolute;
  right: 22%;
  bottom: 28%;
  width: 30px;
  height: 30px;
  background: radial-gradient(circle, #e8b060 0%, #c08030 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: wcle-glow 2.5s ease-in-out infinite alternate;
}

.scn-warkworth-castle-lady-percy-enters .candle-flame {
  position: absolute;
  right: 23%;
  bottom: 40%;
  width: 6px;
  height: 14px;
  background: linear-gradient(180deg, #ffd080 0%, #e08020 50%, #802010 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: wcle-flame 2s ease-in-out infinite alternate;
}

.scn-warkworth-castle-lady-percy-enters .wall-shadow {
  position: absolute;
  left: 10%;
  right: 10%;
  top: 10%;
  height: 30%;
  background: linear-gradient(180deg, #2b1e1a 0%, transparent 100%);
  filter: blur(10px);
  opacity: 0.4;
  animation: wcle-wall 4s ease-in-out infinite alternate;
}

.scn-warkworth-castle-lady-percy-enters .arch {
  position: absolute;
  left: 20%;
  top: 0;
  width: 50%;
  height: 20%;
  background: linear-gradient(180deg, #3a2a22 0%, transparent 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 6px 16px rgba(0,0,0,0.5);
}

@keyframes wcle-shadow {
  0% { opacity: 0.7; transform: skewY(-2deg) translateY(0); }
  50% { opacity: 1; transform: skewY(-3deg) translateY(2px); }
  100% { opacity: 0.6; transform: skewY(-1deg) translateY(0); }
}

@keyframes wcle-enter {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(4px) rotate(2deg); }
}

@keyframes wcle-tremble {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(2px); }
}

@keyframes wcle-glow {
  0% { opacity: 0.7; filter: blur(8px); }
  50% { opacity: 1; filter: blur(12px); }
  100% { opacity: 0.5; filter: blur(6px); }
}

@keyframes wcle-flame {
  0% { transform: scaleY(1) scaleX(1); }
  50% { transform: scaleY(1.3) scaleX(0.8); }
  100% { transform: scaleY(0.8) scaleX(1.2); }
}

@keyframes wcle-wall {
  0% { opacity: 0.4; transform: translateY(0); }
  50% { opacity: 0.6; transform: translateY(-3px); }
  100% { opacity: 0.3; transform: translateY(2px); }
}

/* Scene 2: Warkworth Castle – Lady Percy watches sleep (dim interior, tense) */
.scn-warkworth-castle-lady-percy-tales {
  background: 
    linear-gradient(180deg, #141012 0%, #221a1c 40%, #34282a 100%),
    radial-gradient(ellipse at 30% 80%, #3a2c2e 0%, transparent 60%);
}

.scn-warkworth-castle-lady-percy-tales .bed-base {
  position: absolute;
  left: 12%;
  bottom: 8%;
  width: 70%;
  height: 30%;
  background: linear-gradient(180deg, #3a2a24 0%, #1e1410 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
}

.scn-warkworth-castle-lady-percy-tales .bed-cover {
  position: absolute;
  left: 15%;
  bottom: 12%;
  width: 60%;
  height: 20%;
  background: linear-gradient(180deg, #4a3a32 0%, #2a1e1a 100%);
  border-radius: 30% 30% 10% 10%;
  filter: blur(2px);
  animation: wclt-cover 8s ease-in-out infinite alternate;
}

.scn-warkworth-castle-lady-percy-tales .sleeping-figure {
  position: absolute;
  left: 30%;
  bottom: 15%;
  width: 40px;
  height: 30px;
  background: linear-gradient(180deg, #2a1e1a 0%, #140e0c 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(10deg);
  filter: blur(1px);
  animation: wclt-sleep 4s ease-in-out infinite;
}

.scn-warkworth-castle-lady-percy-tales .watcher-figure {
  position: absolute;
  right: 12%;
  bottom: 15%;
  width: 18px;
  height: 50px;
  background: linear-gradient(180deg, #221813 0%, #100b08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: wclt-watch 6s ease-in-out infinite alternate;
}

.scn-warkworth-castle-lady-percy-tales .window-frame {
  position: absolute;
  left: 5%;
  top: 15%;
  width: 20%;
  height: 35%;
  background: linear-gradient(180deg, #2c2220 0%, #1a1210 100%);
  border: 4px solid #1a1210;
  border-radius: 4% 4% 6% 6%;
  box-shadow: inset 0 0 20px #0a0808;
}

.scn-warkworth-castle-lady-percy-tales .moon-beam {
  position: absolute;
  left: 5%;
  top: 15%;
  width: 20%;
  height: 35%;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,220,240,0.2) 0%, transparent 70%);
  filter: blur(10px);
  mix-blend-mode: screen;
  animation: wclt-moon 12s ease-in-out infinite alternate;
}

.scn-warkworth-castle-lady-percy-tales .candle {
  position: absolute;
  right: 25%;
  bottom: 30%;
  width: 8px;
  height: 20px;
  background: linear-gradient(180deg, #b08040 0%, #5a3018 100%);
  border-radius: 2px;
}

.scn-warkworth-castle-lady-percy-tales .curtain {
  position: absolute;
  left: 5%;
  top: 12%;
  width: 22%;
  height: 40%;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 50%, #0a0808 100%);
  border-radius: 0 20% 20% 0 / 0 40% 40% 0;
  filter: blur(3px);
  animation: wclt-curtain 5s ease-in-out infinite alternate;
}

@keyframes wclt-cover {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}

@keyframes wclt-sleep {
  0%, 100% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-2px); }
}

@keyframes wclt-watch {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}

@keyframes wclt-moon {
  0% { opacity: 0.1; }
  50% { opacity: 0.3; }
  100% { opacity: 0.1; }
}

@keyframes wclt-curtain {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(-2px) scaleX(0.98); }
  100% { transform: translateX(0) scaleX(1); }
}

/* Scene 3: Warkworth Castle – Hotspur questions servant (dim interior, tense) */
.scn-warkworth-castle-hotspur-questions-servant {
  background: 
    linear-gradient(180deg, #1e1816 0%, #2c2420 40%, #3c302a 100%),
    radial-gradient(ellipse at 50% 80%, #4a382e 0%, transparent 70%);
}

.scn-warkworth-castle-hotspur-questions-servant .table {
  position: absolute;
  left: 25%;
  bottom: 10%;
  width: 45%;
  height: 20%;
  background: linear-gradient(180deg, #3a2a20 0%, #1e1410 100%);
  border-radius: 10% 10% 6% 6%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  transform: perspective(600px) rotateX(5deg);
}

.scn-warkworth-castle-hotspur-questions-servant .seated-figure {
  position: absolute;
  left: 35%;
  bottom: 18%;
  width: 28px;
  height: 55px;
  background: linear-gradient(180deg, #281d18 0%, #140c08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: perspective(600px) rotateX(5deg);
  transform-origin: bottom center;
  animation: wchs-seat 3s ease-in-out infinite alternate;
}

.scn-warkworth-castle-hotspur-questions-servant .standing-figure {
  position: absolute;
  right: 20%;
  bottom: 12%;
  width: 20px;
  height: 65px;
  background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: wchs-stand 2s ease-in-out infinite;
}

.scn-warkworth-castle-hotspur-questions-servant .candle {
  position: absolute;
  left: 42%;
  bottom: 32%;
  width: 6px;
  height: 18px;
  background: linear-gradient(180deg, #c09040 0%, #5a3018 100%);
  border-radius: 2px;
  filter: blur(1px);
}

.scn-warkworth-castle-hotspur-questions-servant .paper {
  position: absolute;
  left: 38%;
  bottom: 24%;
  width: 30px;
  height: 22px;
  background: linear-gradient(180deg, #c0a060 0%, #907040 100%);
  border-radius: 4% 4% 8% 8%;
  transform: rotate(-8deg);
  animation: wchs-paper 5s ease-in-out infinite alternate;
}

.scn-warkworth-castle-hotspur-questions-servant .chair {
  position: absolute;
  left: 30%;
  bottom: 8%;
  width: 40px;
  height: 28px;
  background: linear-gradient(180deg, #2c1e18 0%, #1a120e 100%);
  border-radius: 10% 10% 20% 20%;
  filter: blur(1px);
}

.scn-warkworth-castle-hotspur-questions-servant .torch {
  position: absolute;
  right: 8%;
  top: 10%;
  width: 10px;
  height: 40px;
  background: linear-gradient(180deg, #804020 0%, #301810 100%);
  border-radius: 2px;
  animation: wchs-torch 2s ease-in-out infinite alternate;
}

@keyframes wchs-seat {
  0% { transform: perspective(600px) rotateX(5deg) translateY(0) rotate(-1deg); }
  50% { transform: perspective(600px) rotateX(5deg) translateY(-3px) rotate(1deg); }
  100% { transform: perspective(600px) rotateX(5deg) translateY(0) rotate(-1deg); }
}

@keyframes wchs-stand {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
}

@keyframes wchs-paper {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-6deg) translateY(-2px); }
  100% { transform: rotate(-8deg) translateY(0); }
}

@keyframes wchs-torch {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.2); }
  100% { opacity: 0.7; transform: scaleY(1); }
}

/* Scene 4: Warkworth Castle – Lady Percy questioning Hotspur (dim interior, tense) */
.scn-warkworth-castle-lady-questioning {
  background: 
    linear-gradient(180deg, #181412 0%, #2a2420 40%, #3c302a 100%),
    radial-gradient(ellipse at 60% 90%, #4a3a32 0%, transparent 70%);
}

.scn-warkworth-castle-lady-questioning .fireplace {
  position: absolute;
  left: 5%;
  bottom: 10%;
  width: 30%;
  height: 45%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
}

.scn-warkworth-castle-lady-questioning .flame {
  position: absolute;
  left: 10%;
  bottom: 20%;
  width: 15%;
  height: 20%;
  background: radial-gradient(ellipse at 50% 80%, #ff8040 0%, #c04020 50%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(8px);
  animation: wclq-flame 1.5s ease-in-out infinite alternate;
}

.scn-warkworth-castle-lady-questioning .figure-lady {
  position: absolute;
  left: 40%;
  bottom: 12%;
  width: 16px;
  height: 55px;
  background: linear-gradient(180deg, #261a15 0%, #100c08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: wclq-lady 4s ease-in-out infinite alternate;
}

.scn-warkworth-castle-lady-questioning .figure-hotspur {
  position: absolute;
  right: 18%;
  bottom: 12%;
  width: 24px;
  height: 60px;
  background: linear-gradient(180deg, #2c201a 0%, #140c08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: wclq-hotspur 3s ease-in-out infinite alternate;
}

.scn-warkworth-castle-lady-questioning .shadow {
  position: absolute;
  left: 30%;
  right: 10%;
  bottom: 5%;
  height: 40%;
  background: linear-gradient(90deg, #0d0808 0%, transparent 50%, #0d0808 100%);
  filter: blur(15px);
  opacity: 0.5;
  animation: wclq-shadow 7s ease-in-out infinite alternate;
}

.scn-warkworth-castle-lady-questioning .floor {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 12%;
  background: linear-gradient(180deg, #1a1210 0%, #0d0808 100%);
  transform: skewY(-3deg);
}

.scn-warkworth-castle-lady-questioning .rug {
  position: absolute;
  left: 15%;
  right: 15%;
  bottom: 2%;
  height: 8%;
  background: linear-gradient(180deg, #3a2a20 0%, #1e1410 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  filter: blur(2px);
  animation: wclq-rug 5s ease-in-out infinite alternate;
}

@keyframes wclq-flame {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.8; }
  50% { transform: scaleY(1.3) scaleX(0.7); opacity: 1; }
  100% { transform: scaleY(0.8) scaleX(1.1); opacity: 0.6; }
}

@keyframes wclq-lady {
  0% { transform: translateX(0) rotate(-3deg); }
  50% { transform: translateX(4px) rotate(3deg); }
  100% { transform: translateX(0) rotate(-3deg); }
}

@keyframes wclq-hotspur {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes wclq-shadow {
  0% { opacity: 0.4; transform: translateY(0); }
  50% { opacity: 0.6; transform: translateY(-4px); }
  100% { opacity: 0.3; transform: translateY(0); }
}

@keyframes wclq-rug {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.98); }
  100% { transform: scaleX(1); }
}

.scn-eastcheap-boars-head-defy {
  background: linear-gradient(180deg, #2b1e0e 0%, #4a3520 30%, #5c4028 60%, #3d2a15 100%), radial-gradient(ellipse at 50% 30%, #8b5a33 0%, transparent 60%);
}
.scn-eastcheap-boars-head-defy .wall {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(135deg, #3d2a15 0%, #5c4028 50%, #4a3520 100%);
}
.scn-eastcheap-boars-head-defy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a3520 0%, #2b1e0e 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-eastcheap-boars-head-defy .fireplace {
  position: absolute; bottom: 45%; left: 10%; width: 18%; height: 25%;
  background: linear-gradient(180deg, #8b5a33 0%, #3d2a15 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 30px rgba(200,120,40,.4);
  animation: ebd1-fire 6s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-defy .table {
  position: absolute; bottom: 22%; left: 40%; width: 35%; height: 8%;
  background: linear-gradient(180deg, #6b4f30 0%, #4a3520 100%);
  border-radius: 10%;
  box-shadow: 0 5px 10px rgba(0,0,0,.5);
  transform: perspective(200px) rotateX(5deg);
}
.scn-eastcheap-boars-head-defy .mug1 {
  position: absolute; bottom: 28%; left: 45%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #7a5530 0%, #5c3d1f 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 3px 6px rgba(0,0,0,.4);
  animation: ebd1-mug 5s ease-in-out infinite;
}
.scn-eastcheap-boars-head-defy .mug2 {
  position: absolute; bottom: 28%; left: 55%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #7a5530 0%, #5c3d1f 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 3px 6px rgba(0,0,0,.4);
  animation: ebd1-mug 5s ease-in-out infinite reverse;
  animation-delay: -2s;
}
.scn-eastcheap-boars-head-defy .figure-stand {
  position: absolute; bottom: 38%; left: 30%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ebd1-stand 3s ease-in-out infinite;
}
.scn-eastcheap-boars-head-defy .figure-sit {
  position: absolute; bottom: 30%; left: 55%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ebd1-sit 4s ease-in-out infinite alternate;
}
@keyframes ebd1-fire {
  0% { box-shadow: inset 0 0 20px rgba(200,120,40,.3); }
  50% { box-shadow: inset 0 0 40px rgba(200,120,40,.7); }
  100% { box-shadow: inset 0 0 30px rgba(200,120,40,.5); }
}
@keyframes ebd1-mug {
  0%,100% { transform: rotate(0deg); }
  25% { transform: rotate(-3deg); }
  75% { transform: rotate(3deg); }
}
@keyframes ebd1-stand {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes ebd1-sit {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(0.95); }
  100% { transform: rotate(-3deg) scaleY(1); }
}

.scn-eastcheap-boars-head-dowlas {
  background: linear-gradient(180deg, #1a1008 0%, #3d2b18 40%, #5c4028 70%, #3d2b18 100%), radial-gradient(ellipse at 50% 40%, #7a5530 0%, transparent 60%);
}
.scn-eastcheap-boars-head-dowlas .table-close {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(135deg, #6b4f30 0%, #4a3520 100%);
  border-radius: 5%;
  box-shadow: 0 8px 15px rgba(0,0,0,.7);
  transform: perspective(300px) rotateX(10deg);
}
.scn-eastcheap-boars-head-dowlas .dowlas-cloth {
  position: absolute; bottom: 25%; left: 25%; width: 50%; height: 12%;
  background: linear-gradient(135deg, #c8a878 0%, #a08050 50%, #c8a878 100%);
  border-radius: 10%;
  box-shadow: inset 0 0 10px rgba(0,0,0,.2);
  animation: ebd2-cloth 8s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-dowlas .candle {
  position: absolute; bottom: 40%; left: 20%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #e8c870 0%, #a08050 50%, #6b4f30 100%);
  border-radius: 10%;
  box-shadow: 0 0 20px 8px rgba(200,160,80,.5);
  animation: ebd2-candle 4s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-dowlas .mug-dowlas {
  position: absolute; bottom: 32%; left: 60%; width: 7%; height: 14%;
  background: linear-gradient(180deg, #7a5530 0%, #5c3d1f 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 3px 6px rgba(0,0,0,.4);
  animation: ebd2-mug 6s ease-in-out infinite;
}
.scn-eastcheap-boars-head-dowlas .hand-holding {
  position: absolute; bottom: 35%; left: 30%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 20% 30% 10% 10% / 40% 50% 20% 20%;
  transform: rotate(-10deg);
  animation: ebd2-hand 3s ease-in-out infinite;
}
.scn-eastcheap-boars-head-dowlas .head-silhouette {
  position: absolute; bottom: 50%; left: 45%; width: 15%; height: 20%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ebd2-head 5s ease-in-out infinite;
}
@keyframes ebd2-cloth {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes ebd2-candle {
  0% { opacity: 0.8; box-shadow: 0 0 15px 5px rgba(200,160,80,.4); }
  50% { opacity: 1; box-shadow: 0 0 25px 10px rgba(200,160,80,.6); }
  100% { opacity: 0.85; box-shadow: 0 0 20px 8px rgba(200,160,80,.5); }
}
@keyframes ebd2-mug {
  0%,100% { transform: rotate(0deg); }
  30% { transform: rotate(-4deg); }
  70% { transform: rotate(4deg); }
}
@keyframes ebd2-hand {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-3px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes ebd2-head {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-3deg); }
}

.scn-eastcheap-boars-head-poor-nothing {
  background: linear-gradient(180deg, #2b1e0e 0%, #4a3520 40%, #5c4028 70%, #3d2a15 100%), radial-gradient(ellipse at 50% 50%, #7a5530 0%, transparent 70%);
}
.scn-eastcheap-boars-head-poor-nothing .table-poor {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 25%;
  background: linear-gradient(180deg, #6b4f30 0%, #4a3520 100%);
  border-radius: 5%;
  box-shadow: 0 5px 10px rgba(0,0,0,.6);
}
.scn-eastcheap-boars-head-poor-nothing .coins-pile {
  position: absolute; bottom: 18%; left: 40%; width: 20%; height: 6%;
  background: radial-gradient(circle, #c8a878 0%, #a08050 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 15px 5px rgba(200,168,120,.3);
  animation: ebn3-coins 10s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-poor-nothing .profile-head {
  position: absolute; bottom: 35%; left: 25%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  border-radius: 40% 60% 50% 40% / 50% 60% 40% 50%;
  animation: ebn3-head 6s ease-in-out infinite;
}
.scn-eastcheap-boars-head-poor-nothing .big-nose {
  position: absolute; bottom: 50%; left: 35%; width: 12%; height: 15%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 30% 20% 30% / 50% 40% 20% 40%;
  animation: ebn3-nose 8s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-poor-nothing .double-chin {
  position: absolute; bottom: 30%; left: 28%; width: 25%; height: 10%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30%;
  animation: ebn3-chin 4s ease-in-out infinite;
}
.scn-eastcheap-boars-head-poor-nothing .hat-shadow {
  position: absolute; bottom: 70%; left: 20%; width: 35%; height: 12%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 5px 10px rgba(0,0,0,.5);
  animation: ebn3-hat 7s ease-in-out infinite;
}
@keyframes ebn3-coins {
  0% { transform: scale(1) translateY(0); opacity: 0.6; }
  50% { transform: scale(1.05) translateY(-3px); opacity: 0.8; }
  100% { transform: scale(1) translateY(0); opacity: 0.7; }
}
@keyframes ebn3-head {
  0%,100% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(5deg) translateX(3px); }
  75% { transform: rotate(-5deg) translateX(-3px); }
}
@keyframes ebn3-nose {
  0% { transform: scaleX(1) scaleY(1); }
  33% { transform: scaleX(0.95) scaleY(1.1); }
  66% { transform: scaleX(1.05) scaleY(0.9); }
  100% { transform: scaleX(1) scaleY(1); }
}
@keyframes ebn3-chin {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(1.08); }
}
@keyframes ebn3-hat {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}

.scn-eastcheap-boars-head-copper-ring {
  background: linear-gradient(180deg, #1a1008 0%, #3d2b18 50%, #5c4028 80%, #3d2b18 100%), radial-gradient(ellipse at 50% 40%, #7a5530 0%, transparent 70%);
}
.scn-eastcheap-boars-head-copper-ring .doorway-arch {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(180deg, #5c4028 0%, #3d2b18 30%, transparent 50%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-eastcheap-boars-head-copper-ring .floor-copper {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a3520 0%, #2b1e0e 100%);
  border-radius: 20% 40% 0 0 / 10% 20% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,.6);
}
.scn-eastcheap-boars-head-copper-ring .figure-prince {
  position: absolute; bottom: 35%; left: 35%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ebc4-march 4s linear infinite;
}
.scn-eastcheap-boars-head-copper-ring .figure-peto {
  position: absolute; bottom: 35%; left: 48%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ebc4-march 4s linear infinite;
  animation-delay: -0.5s;
}
.scn-eastcheap-boars-head-copper-ring .figure-falstaff {
  position: absolute; bottom: 30%; right: 25%; width: 18%; height: 35%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ebc4-falstaff 6s ease-in-out infinite;
}
.scn-eastcheap-boars-head-copper-ring .copper-ring {
  position: absolute; bottom: 22%; left: 60%; width: 6%; height: 3%;
  background: radial-gradient(circle, #c8a878 0%, #a08050 40%, #6b4f30 70%);
  border-radius: 50%;
  box-shadow: 0 0 15px 5px rgba(200,168,120,.4);
  animation: ebc4-ring 3s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-copper-ring .lantern-swing {
  position: absolute; top: 10%; left: 50%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #e8c870 0%, #a08050 100%);
  border-radius: 20%;
  box-shadow: 0 0 30px 10px rgba(200,160,80,.3);
  transform-origin: top center;
  animation: ebc4-lantern 8s ease-in-out infinite;
}
@keyframes ebc4-march {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(3deg); }
  50% { transform: translateX(16px) rotate(0deg); }
  75% { transform: translateX(8px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ebc4-falstaff {
  0%,100% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(0.95); }
}
@keyframes ebc4-ring {
  0% { opacity: 0.5; box-shadow: 0 0 10px 3px rgba(200,168,120,.3); }
  50% { opacity: 1; box-shadow: 0 0 25px 8px rgba(200,168,120,.7); }
  100% { opacity: 0.6; box-shadow: 0 0 15px 5px rgba(200,168,120,.4); }
}
@keyframes ebc4-lantern {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-10deg); }
}

.scn-london-palace-hal-vows-account {
  background: linear-gradient(180deg, #d4c2a8 0%, #b9a686 50%, #8a7458 100%), radial-gradient(ellipse at 50% 30%, #f2e0c0 0%, transparent 60%);
}
.scn-london-palace-hal-vows-account .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #cbb595 0%, #a88d6e 100%);
  animation: lvh-wall 20s ease-in-out infinite alternate;
}
.scn-london-palace-hal-vows-account .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3520 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
}
.scn-london-palace-hal-vows-account .column-left {
  position: absolute; left: 10%; bottom: 20%; width: 8%; height: 70%;
  background: linear-gradient(90deg, #d4c2a8 0%, #b9a686 40%, #cbb595 100%);
  border-radius: 4px;
  box-shadow: 2px 0 10px rgba(0,0,0,0.3);
  animation: lvh-column 30s ease-in-out infinite;
}
.scn-london-palace-hal-vows-account .column-right {
  position: absolute; right: 10%; bottom: 20%; width: 8%; height: 70%;
  background: linear-gradient(90deg, #d4c2a8 0%, #b9a686 40%, #cbb595 100%);
  border-radius: 4px;
  box-shadow: -2px 0 10px rgba(0,0,0,0.3);
  animation: lvh-column 30s ease-in-out infinite reverse;
}
.scn-london-palace-hal-vows-account .throne {
  position: absolute; bottom: 28%; left: 50%; width: 20%; height: 25%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c88a4a 0%, #a06a30 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: lvh-throne 12s ease-in-out infinite alternate;
}
.scn-london-palace-hal-vows-account .window-glow {
  position: absolute; top: 10%; left: 30%; width: 12%; height: 25%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,220,150,0.8) 0%, rgba(255,200,100,0.3) 60%, transparent 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 80px 30px rgba(255,200,100,0.5);
  animation: lvh-glow 6s ease-in-out infinite alternate;
}
.scn-london-palace-hal-vows-account .figure-kneeling {
  position: absolute; bottom: 26%; left: 35%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lvh-kneel 4s ease-in-out infinite;
}
.scn-london-palace-hal-vows-account .banner {
  position: absolute; top: 8%; right: 8%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #c8553d 0%, #8a3a2a 100%);
  border-radius: 4%;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
  animation: lvh-banner 8s ease-in-out infinite alternate;
}
.scn-london-palace-hal-vows-account .light-shaft {
  position: absolute; top: 0; left: 25%; width: 50%; height: 100%;
  background: linear-gradient(180deg, rgba(255,230,180,0.15) 0%, rgba(255,230,180,0.05) 60%, transparent 100%);
  filter: blur(10px);
  animation: lvh-shaft 10s ease-in-out infinite alternate;
}

@keyframes lvh-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lvh-column { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes lvh-throne { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes lvh-glow { 0% { opacity: 0.6; box-shadow: 0 0 40px 15px rgba(255,200,100,0.4); } 50% { opacity: 1; box-shadow: 0 0 100px 40px rgba(255,220,150,0.6); } 100% { opacity: 0.7; box-shadow: 0 0 50px 20px rgba(255,200,100,0.5); } }
@keyframes lvh-kneel { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lvh-banner { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }
@keyframes lvh-shaft { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.2); } 100% { opacity: 0.4; transform: scaleX(0.9); } }

.scn-london-palace-hal-solemn-promise {
  background: linear-gradient(180deg, #d9cdb8 0%, #bfa98c 50%, #917a5c 100%), radial-gradient(ellipse at 50% 30%, #f5e6cc 0%, transparent 60%);
}
.scn-london-palace-hal-solemn-promise .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #cdbb9e 0%, #ab9372 100%);
  animation: lsp-wall 18s ease-in-out infinite alternate;
}
.scn-london-palace-hal-solemn-promise .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7f5f3f 0%, #4f3822 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
}
.scn-london-palace-hal-solemn-promise .column-left {
  position: absolute; left: 10%; bottom: 20%; width: 8%; height: 70%;
  background: linear-gradient(90deg, #d9cdb8 0%, #bfa98c 40%, #cdbb9e 100%);
  border-radius: 4px;
  box-shadow: 2px 0 10px rgba(0,0,0,0.3);
  animation: lsp-column 25s ease-in-out infinite;
}
.scn-london-palace-hal-solemn-promise .column-right {
  position: absolute; right: 10%; bottom: 20%; width: 8%; height: 70%;
  background: linear-gradient(90deg, #d9cdb8 0%, #bfa98c 40%, #cdbb9e 100%);
  border-radius: 4px;
  box-shadow: -2px 0 10px rgba(0,0,0,0.3);
  animation: lsp-column 25s ease-in-out infinite reverse;
}
.scn-london-palace-hal-solemn-promise .throne {
  position: absolute; bottom: 28%; left: 50%; width: 20%; height: 25%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c88a4a 0%, #a06a30 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: lsp-throne 14s ease-in-out infinite alternate;
}
.scn-london-palace-hal-solemn-promise .window-glow {
  position: absolute; top: 10%; left: 30%; width: 12%; height: 25%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,225,160,0.8) 0%, rgba(255,210,110,0.3) 60%, transparent 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 80px 30px rgba(255,210,110,0.5);
  animation: lsp-glow 7s ease-in-out infinite alternate;
}
.scn-london-palace-hal-solemn-promise .figure-standing {
  position: absolute; bottom: 26%; left: 38%; width: 7%; height: 22%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: lsp-stand 5s ease-in-out infinite;
}
.scn-london-palace-hal-solemn-promise .scepter {
  position: absolute; bottom: 30%; left: 42%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #e8c84a 0%, #b89830 100%);
  border-radius: 20%;
  box-shadow: 0 0 10px 2px rgba(232,200,74,0.6);
  animation: lsp-scepter 4s ease-in-out infinite alternate;
}
.scn-london-palace-hal-solemn-promise .light-shaft {
  position: absolute; top: 0; left: 25%; width: 50%; height: 100%;
  background: linear-gradient(180deg, rgba(255,235,190,0.15) 0%, rgba(255,235,190,0.05) 60%, transparent 100%);
  filter: blur(10px);
  animation: lsp-shaft 12s ease-in-out infinite alternate;
}

@keyframes lsp-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lsp-column { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes lsp-throne { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.03); } 100% { transform: translateX(-50%) scale(0.97); } }
@keyframes lsp-glow { 0% { opacity: 0.6; box-shadow: 0 0 40px 15px rgba(255,210,110,0.4); } 50% { opacity: 1; box-shadow: 0 0 100px 40px rgba(255,225,160,0.6); } 100% { opacity: 0.7; box-shadow: 0 0 50px 20px rgba(255,210,110,0.5); } }
@keyframes lsp-stand { 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 lsp-scepter { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes lsp-shaft { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.1); } 100% { opacity: 0.4; transform: scaleX(0.9); } }

.scn-london-palace-king-trusts {
  background: linear-gradient(180deg, #d4c2a8 0%, #b9a686 50%, #8a7458 100%), radial-gradient(ellipse at 50% 30%, #f2e0c0 0%, transparent 60%);
}
.scn-london-palace-king-trusts .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #cbb595 0%, #a88d6e 100%);
  animation: lkt-wall 22s ease-in-out infinite alternate;
}
.scn-london-palace-king-trusts .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3520 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
}
.scn-london-palace-king-trusts .column-left {
  position: absolute; left: 10%; bottom: 20%; width: 8%; height: 70%;
  background: linear-gradient(90deg, #d4c2a8 0%, #b9a686 40%, #cbb595 100%);
  border-radius: 4px;
  box-shadow: 2px 0 10px rgba(0,0,0,0.3);
  animation: lkt-column 28s ease-in-out infinite;
}
.scn-london-palace-king-trusts .column-right {
  position: absolute; right: 10%; bottom: 20%; width: 8%; height: 70%;
  background: linear-gradient(90deg, #d4c2a8 0%, #b9a686 40%, #cbb595 100%);
  border-radius: 4px;
  box-shadow: -2px 0 10px rgba(0,0,0,0.3);
  animation: lkt-column 28s ease-in-out infinite reverse;
}
.scn-london-palace-king-trusts .throne {
  position: absolute; bottom: 28%; left: 50%; width: 20%; height: 25%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c88a4a 0%, #a06a30 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: lkt-throne 13s ease-in-out infinite alternate;
}
.scn-london-palace-king-trusts .window-glow {
  position: absolute; top: 10%; left: 30%; width: 12%; height: 25%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,220,150,0.8) 0%, rgba(255,200,100,0.3) 60%, transparent 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 80px 30px rgba(255,200,100,0.5);
  animation: lkt-glow 6.5s ease-in-out infinite alternate;
}
.scn-london-palace-king-trusts .figure-king {
  position: absolute; bottom: 26%; left: 38%; width: 7%; height: 22%;
  background: linear-gradient(180deg, #2a1a0a 0%, #120a04 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: lkt-king 6s ease-in-out infinite;
}
.scn-london-palace-king-trusts .figure-blunt {
  position: absolute; bottom: 24%; left: 54%; width: 7%; height: 18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lkt-blunt 4.5s ease-in-out infinite alternate;
}
.scn-london-palace-king-trusts .light-shaft {
  position: absolute; top: 0; left: 25%; width: 50%; height: 100%;
  background: linear-gradient(180deg, rgba(255,230,180,0.15) 0%, rgba(255,230,180,0.05) 60%, transparent 100%);
  filter: blur(10px);
  animation: lkt-shaft 11s ease-in-out infinite alternate;
}

@keyframes lkt-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lkt-column { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes lkt-throne { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes lkt-glow { 0% { opacity: 0.6; box-shadow: 0 0 40px 15px rgba(255,200,100,0.4); } 50% { opacity: 1; box-shadow: 0 0 100px 40px rgba(255,220,150,0.6); } 100% { opacity: 0.7; box-shadow: 0 0 50px 20px rgba(255,200,100,0.5); } }
@keyframes lkt-king { 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 lkt-blunt { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lkt-shaft { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.2); } 100% { opacity: 0.4; transform: scaleX(0.9); } }

.scn-london-palace-blunt-reports {
  background: linear-gradient(180deg, #c8b492 0%, #a08060 50%, #705040 100%), radial-gradient(ellipse at 50% 30%, #e0c8a0 0%, transparent 60%);
}
.scn-london-palace-blunt-reports .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b8a07e 0%, #8a7050 100%);
  animation: lbr-wall 8s ease-in-out infinite alternate;
}
.scn-london-palace-blunt-reports .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-london-palace-blunt-reports .column-left {
  position: absolute; left: 10%; bottom: 20%; width: 8%; height: 70%;
  background: linear-gradient(90deg, #c8b492 0%, #a08060 40%, #b8a07e 100%);
  border-radius: 4px;
  box-shadow: 2px 0 10px rgba(0,0,0,0.4);
  animation: lbr-column 6s ease-in-out infinite;
}
.scn-london-palace-blunt-reports .column-right {
  position: absolute; right: 10%; bottom: 20%; width: 8%; height: 70%;
  background: linear-gradient(90deg, #c8b492 0%, #a08060 40%, #b8a07e 100%);
  border-radius: 4px;
  box-shadow: -2px 0 10px rgba(0,0,0,0.4);
  animation: lbr-column 6s ease-in-out infinite reverse;
}
.scn-london-palace-blunt-reports .throne {
  position: absolute; bottom: 28%; left: 50%; width: 20%; height: 25%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b07a3a 0%, #8a5a20 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: lbr-throne 3s ease-in-out infinite alternate;
}
.scn-london-palace-blunt-reports .torch-left {
  position: absolute; bottom: 25%; left: 18%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #e8a040 0%, #b06020 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(232,160,64,0.6), 0 0 60px 20px rgba(232,160,64,0.3);
  animation: lbr-torch 1.6s ease-in-out infinite alternate;
}
.scn-london-palace-blunt-reports .torch-right {
  position: absolute; bottom: 25%; right: 18%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #e8a040 0%, #b06020 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(232,160,64,0.6), 0 0 60px 20px rgba(232,160,64,0.3);
  animation: lbr-torch 1.8s ease-in-out infinite alternate;
}
.scn-london-palace-blunt-reports .figure-kneeling-messenger {
  position: absolute; bottom: 24%; left: 35%; width: 7%; height: 16%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lbr-messenger 1.5s ease-in-out infinite;
}
.scn-london-palace-blunt-reports .figure-king {
  position: absolute; bottom: 26%; left: 45%; width: 7%; height: 22%;
  background: linear-gradient(180deg, #1a100a 0%, #0a0502 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: lbr-king 2s ease-in-out infinite alternate;
}
.scn-london-palace-blunt-reports .light-shaft.tense {
  position: absolute; top: 0; left: 25%; width: 50%; height: 100%;
  background: linear-gradient(180deg, rgba(255,220,170,0.2) 0%, rgba(255,220,170,0.08) 60%, transparent 100%);
  filter: blur(8px);
  animation: lbr-shaft 3s ease-in-out infinite alternate;
}

@keyframes lbr-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes lbr-column { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
@keyframes lbr-throne { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.04); } 100% { transform: translateX(-50%) scale(0.96); } }
@keyframes lbr-torch { 0% { opacity: 0.6; box-shadow: 0 0 20px 8px rgba(232,160,64,0.4), 0 0 40px 15px rgba(232,160,64,0.2); } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(232,160,64,0.7), 0 0 80px 25px rgba(232,160,64,0.4); } 100% { opacity: 0.7; box-shadow: 0 0 25px 10px rgba(232,160,64,0.5), 0 0 50px 18px rgba(232,160,64,0.3); } }
@keyframes lbr-messenger { 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 lbr-king { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lbr-shaft { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.3); } 100% { opacity: 0.4; transform: scaleX(0.8); } }

/* london-palace-king-orders */
.scn-london-palace-king-orders {
  background: linear-gradient(180deg, #e8d5b0 0%, #c4a77a 40%, #8a6f4a 100%), radial-gradient(ellipse at 50% 30%, #fff3e0 0%, transparent 70%);
}
.scn-london-palace-king-orders .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #b8996a 0%, #d4b88a 40%, #b8996a 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.3);
}
.scn-london-palace-king-orders .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a4a32 0%, #3a2e1e 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-london-palace-king-orders .throne {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 160px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: lpk-throne 8s ease-in-out infinite;
}
.scn-london-palace-king-orders .king {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 110px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lpk-king 12s ease-in-out infinite;
}
.scn-london-palace-king-orders .crown {
  position: absolute; bottom: 75%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 20px;
  background: radial-gradient(circle at 30% 100%, #f5d742 0%, #c99a1a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 12px 3px #f5d742;
  animation: lpk-crown 3s ease-in-out infinite alternate;
}
.scn-london-palace-king-orders .attendant-l {
  position: absolute; bottom: 28%; left: 25%;
  width: 30px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: lpk-att 6s ease-in-out infinite;
}
.scn-london-palace-king-orders .attendant-r {
  position: absolute; bottom: 28%; right: 25%;
  width: 30px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: lpk-att 6s ease-in-out infinite reverse;
}
.scn-london-palace-king-orders .window {
  position: absolute; top: 8%; right: 10%; width: 60px; height: 100px;
  background: radial-gradient(circle at 50% 30%, #fff8e0 0%, #e8d5b0 70%, transparent 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 40px 10px #fff8e0;
  animation: lpk-window 4s ease-in-out infinite alternate;
}
.scn-london-palace-king-orders .light {
  position: absolute; top: 0; right: 6%; width: 80px; height: 60%;
  background: linear-gradient(180deg, rgba(255,248,224,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: lpk-light 5s ease-in-out infinite alternate;
}
@keyframes lpk-throne {
  0% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(1.02) translateY(-2px); }
  100% { transform: translateX(-50%) scaleX(1); }
}
@keyframes lpk-king {
  0% { transform: translateX(-50%) rotate(0deg); }
  30% { transform: translateX(-48%) rotate(-2deg); }
  70% { transform: translateX(-52%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes lpk-crown {
  0% { opacity: 0.7; box-shadow: 0 0 8px 2px #f5d742; }
  100% { opacity: 1; box-shadow: 0 0 20px 6px #f5d742; }
}
@keyframes lpk-att {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes lpk-window {
  0% { opacity: 0.6; box-shadow: 0 0 30px 5px #fff8e0; }
  50% { opacity: 1; box-shadow: 0 0 50px 15px #fff8e0; }
  100% { opacity: 0.7; box-shadow: 0 0 35px 8px #fff8e0; }
}
@keyframes lpk-light {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.2; }
}

/* eastcheap-boars-head-falstaff-repent */
.scn-eastcheap-boars-head-falstaff-repent {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0e06 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 80%);
}
.scn-eastcheap-boars-head-falstaff-repent .bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.6);
}
.scn-eastcheap-boars-head-falstaff-repent .table {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 200px; height: 20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-eastcheap-boars-head-falstaff-repent .falstaff {
  position: absolute; bottom: 22%; left: 40%; transform: translateX(-50%);
  width: 100px; height: 120px;
  background: radial-gradient(ellipse at 50% 60%, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: ebfr-falstaff 4s ease-in-out infinite;
}
.scn-eastcheap-boars-head-falstaff-repent .tankard {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: ebfr-tankard 6s ease-in-out infinite;
}
.scn-eastcheap-boars-head-falstaff-repent .bardolph {
  position: absolute; bottom: 20%; right: 30%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ebfr-bardolph 5s ease-in-out infinite;
}
.scn-eastcheap-boars-head-falstaff-repent .fire {
  position: absolute; bottom: 18%; left: 15%; width: 50px; height: 60px;
  background: radial-gradient(circle at 50% 100%, #f5a042 0%, #d07020 40%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  animation: ebfr-fire 2s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-falstaff-repent .chair {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 60px;
  background: transparent;
  border-bottom: 5px solid #5a3a2a;
  border-left: 5px solid #5a3a2a;
  border-right: 5px solid #5a3a2a;
  border-radius: 0 0 20px 20px;
}
@keyframes ebfr-falstaff {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); }
  25% { transform: translateX(-48%) scale(1.02) rotate(-3deg); }
  75% { transform: translateX(-52%) scale(0.98) rotate(3deg); }
  100% { transform: translateX(-50%) scale(1) rotate(0deg); }
}
@keyframes ebfr-tankard {
  0% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(-10deg) translateY(-2px); }
  70% { transform: rotate(10deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ebfr-bardolph {
  0% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-4px) rotate(-2deg); }
  60% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ebfr-fire {
  0% { transform: scaleY(0.9) translateY(0); opacity: 0.8; }
  50% { transform: scaleY(1.1) translateY(-3px); opacity: 1; }
  100% { transform: scaleY(0.95) translateY(-1px); opacity: 0.9; }
}

/* eastcheap-boars-head-bawdy-song */
.scn-eastcheap-boars-head-bawdy-song {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0e06 100%), radial-gradient(ellipse at 50% 80%, #5a3a2a 0%, transparent 70%);
}
.scn-eastcheap-boars-head-bawdy-song .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.5);
}
.scn-eastcheap-boars-head-bawdy-song .table {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 180px; height: 18px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 8px;
}
.scn-eastcheap-boars-head-bawdy-song .singer {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 100px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ebfb-singer 3s ease-in-out infinite;
}
.scn-eastcheap-boars-head-bawdy-song .lute {
  position: absolute; bottom: 28%; left: 48%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 40%, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 30% 30% 40% 40%;
  transform: rotate(-20deg);
  animation: ebfb-lute 2s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-bawdy-song .candle {
  position: absolute; bottom: 35%; left: 20%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #f5d742 0%, #c99a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 20px 6px #f5d742;
  animation: ebfb-candle 3s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-bawdy-song .audience {
  position: absolute; bottom: 18%; left: 10%; right: 10%; height: 30px;
  background: linear-gradient(180deg, transparent 0%, rgba(20,10,4,0.6) 100%);
  border-radius: 40% 40% 0 0;
  animation: ebfb-audience 5s ease-in-out infinite;
}
.scn-eastcheap-boars-head-bawdy-song .tankard {
  position: absolute; bottom: 20%; left: 60%; width: 28px; height: 36px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: ebfb-tankard 7s ease-in-out infinite;
}
@keyframes ebfb-singer {
  0% { transform: translateX(-50%) rotate(0deg) scale(1); }
  25% { transform: translateX(-48%) rotate(-3deg) scale(1.05); }
  50% { transform: translateX(-50%) rotate(0deg) scale(1); }
  75% { transform: translateX(-52%) rotate(3deg) scale(0.95); }
  100% { transform: translateX(-50%) rotate(0deg) scale(1); }
}
@keyframes ebfb-lute {
  0% { transform: rotate(-20deg) translateY(0); }
  100% { transform: rotate(-15deg) translateY(-2px); }
}
@keyframes ebfb-candle {
  0% { opacity: 0.7; box-shadow: 0 0 15px 4px #f5d742; }
  50% { opacity: 1; box-shadow: 0 0 30px 8px #f5d742; }
  100% { opacity: 0.8; box-shadow: 0 0 20px 5px #f5d742; }
}
@keyframes ebfb-audience {
  0% { transform: translateY(0) scaleX(1); }
  30% { transform: translateY(-2px) scaleX(1.05); }
  70% { transform: translateY(-1px) scaleX(0.95); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes ebfb-tankard {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-8deg) translateY(-2px); }
  75% { transform: rotate(8deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}

/* eastcheap-boars-head-fat-compass */
.scn-eastcheap-boars-head-fat-compass {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0e06 100%), radial-gradient(ellipse at 50% 40%, #5a3a2a 0%, transparent 80%);
}
.scn-eastcheap-boars-head-fat-compass .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 -15px 25px rgba(0,0,0,0.5);
}
.scn-eastcheap-boars-head-fat-compass .table {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 200px; height: 18px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 8px;
}
.scn-eastcheap-boars-head-fat-compass .falstaff {
  position: absolute; bottom: 22%; left: 40%; transform: translateX(-50%);
  width: 130px; height: 130px;
  background: radial-gradient(circle at 50% 60%, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  animation: ebff-falstaff 3s ease-in-out infinite;
}
.scn-eastcheap-boars-head-fat-compass .pointer {
  position: absolute; bottom: 25%; left: 58%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: ebff-pointer 4s ease-in-out infinite;
}
.scn-eastcheap-boars-head-fat-compass .barrel {
  position: absolute; bottom: 18%; left: 25%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ebff-barrel 10s ease-in-out infinite;
}
.scn-eastcheap-boars-head-fat-compass .lantern {
  position: absolute; bottom: 35%; left: 15%; width: 12px; height: 18px;
  background: radial-gradient(circle at 50% 60%, #f5d742 0%, #c99a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #f5d742;
  animation: ebff-lantern 5s ease-in-out infinite alternate;
}
@keyframes ebff-falstaff {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); }
  20% { transform: translateX(-48%) scale(1.1) rotate(-5deg); }
  40% { transform: translateX(-50%) scale(1) rotate(0deg); }
  60% { transform: translateX(-52%) scale(0.9) rotate(5deg); }
  80% { transform: translateX(-50%) scale(1.05) rotate(-2deg); }
  100% { transform: translateX(-50%) scale(1) rotate(0deg); }
}
@keyframes ebff-pointer {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-5deg); }
  75% { transform: translateY(-1px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ebff-barrel {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes ebff-lantern {
  0% { transform: rotate(0deg) translateY(0); opacity: 0.7; }
  50% { transform: rotate(5deg) translateY(-2px); opacity: 1; }
  100% { transform: rotate(-5deg) translateY(-1px); opacity: 0.8; }
}

.scn-london-palace-king-speech {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #c8b898 50%, #a89070 100%),
    radial-gradient(ellipse at 50% 100%, #d8c8a8 0%, transparent 60%);
}
.scn-london-palace-king-speech .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d0b898 0%, #a88868 50%, #806048 100%);
}
.scn-london-palace-king-speech .pillar-l {
  position: absolute; left: 8%; top: 0; width: 6%; height: 100%;
  background: linear-gradient(90deg, #c4a882 0%, #e0c8a8 20%, #c4a882 40%, #d4b898 100%);
  border-radius: 4px;
  box-shadow: 4px 0 12px rgba(0,0,0,0.15);
  animation: lks-pillar 18s ease-in-out infinite alternate;
}
.scn-london-palace-king-speech .pillar-r {
  position: absolute; right: 8%; top: 0; width: 6%; height: 100%;
  background: linear-gradient(90deg, #d4b898 0%, #e0c8a8 20%, #c4a882 40%, #c4a882 100%);
  border-radius: 4px;
  box-shadow: -4px 0 12px rgba(0,0,0,0.15);
  animation: lks-pillar 18s ease-in-out infinite alternate;
}
.scn-london-palace-king-speech .throne {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 140px;
  background: linear-gradient(180deg, #6a5030 0%, #8a6848 50%, #6a5030 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.4);
  animation: lks-throne 12s ease-in-out infinite;
}
.scn-london-palace-king-speech .king {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lks-king 8s ease-in-out infinite;
}
.scn-london-palace-king-speech .window {
  position: absolute; top: 10%; left: 38%; width: 100px; height: 140px;
  background: radial-gradient(circle at 50% 30%, #fff8e0 0%, #d8c898 50%, #b09878 100%);
  border: 6px solid #5a3a20;
  border-radius: 12px 12px 8px 8px;
  box-shadow: inset 0 0 40px rgba(255,220,150,0.3);
}
.scn-london-palace-king-speech .light-beam {
  position: absolute; top: 14%; left: 40%; width: 80px; height: 200px;
  background: linear-gradient(180deg, rgba(255,220,150,0.15) 0%, transparent 100%);
  transform: skewX(-5deg);
  animation: lks-beam 6s ease-in-out infinite alternate;
}
.scn-london-palace-king-speech .carpet {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(90deg, #8b5a3a 0%, #6a3a1a 20%, #8b5a3a 50%, #6a3a1a 80%, #8b5a3a 100%);
  border-radius: 50%;
  filter: blur(2px);
  opacity: 0.6;
}

@keyframes lks-pillar {
  0% { opacity: 0.9; transform: scaleY(1) }
  50% { opacity: 1; transform: scaleY(0.98) }
  100% { opacity: 0.9; transform: scaleY(1) }
}
@keyframes lks-throne {
  0% { transform: translateX(-50%) rotate(0deg) }
  50% { transform: translateX(-50%) rotate(1deg) translateY(-2px) }
  100% { transform: translateX(-50%) rotate(0deg) }
}
@keyframes lks-king {
  0% { transform: translateX(-50%) rotate(0deg) translateY(0) }
  30% { transform: translateX(-50%) rotate(2deg) translateY(-3px) }
  60% { transform: translateX(-50%) rotate(-1deg) translateY(-1px) }
  100% { transform: translateX(-50%) rotate(0deg) translateY(0) }
}
@keyframes lks-beam {
  0% { opacity: 0.4; transform: skewX(-5deg) scaleX(1) }
  50% { opacity: 0.8; transform: skewX(-3deg) scaleX(1.1) }
  100% { opacity: 0.4; transform: skewX(-5deg) scaleX(1) }
}

.scn-london-palace-king-peace {
  background:
    linear-gradient(180deg, #e0d8c8 0%, #c0b0a0 50%, #a09080 100%),
    radial-gradient(ellipse at 80% 30%, #f0e8d0 0%, transparent 70%);
}
.scn-london-palace-king-peace .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d0c0b0 0%, #b0a090 50%, #908070 100%);
}
.scn-london-palace-king-peace .pillar-l {
  position: absolute; left: 8%; top: 0; width: 6%; height: 100%;
  background: linear-gradient(90deg, #b8a898 0%, #d0c0b0 20%, #b8a898 40%, #c0b0a0 100%);
  border-radius: 4px;
  box-shadow: 4px 0 12px rgba(0,0,0,0.1);
  animation: lkp-pillar 20s ease-in-out infinite alternate;
}
.scn-london-palace-king-peace .pillar-r {
  position: absolute; right: 8%; top: 0; width: 6%; height: 100%;
  background: linear-gradient(90deg, #c0b0a0 0%, #d0c0b0 20%, #b8a898 40%, #b8a898 100%);
  border-radius: 4px;
  box-shadow: -4px 0 12px rgba(0,0,0,0.1);
  animation: lkp-pillar 20s ease-in-out infinite alternate;
}
.scn-london-palace-king-peace .throne {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 110px; height: 130px;
  background: linear-gradient(180deg, #6a5a4a 0%, #8a7a6a 50%, #6a5a4a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.3);
  animation: lkp-throne 15s ease-in-out infinite;
}
.scn-london-palace-king-peace .king {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%);
  width: 55px; height: 95px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 40%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lkp-king 10s ease-in-out infinite;
}
.scn-london-palace-king-peace .window-open {
  position: absolute; top: 12%; left: 40%; width: 90px; height: 120px;
  background: radial-gradient(circle at 50% 40%, #e8f0ff 0%, #b0c8e0 50%, #8090a8 100%);
  border: 5px solid #4a3a2a;
  border-radius: 10px;
  box-shadow: inset 0 0 30px rgba(200,220,255,0.2), 0 0 40px rgba(200,220,255,0.1);
  animation: lkp-window 8s ease-in-out infinite alternate;
}
.scn-london-palace-king-peace .dove {
  position: absolute; top: 18%; left: 55%; width: 30px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #f0f0f0 0%, #d0d0d0 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: lkp-dove 6s ease-in-out infinite alternate;
}
.scn-london-palace-king-peace .olive-branch {
  position: absolute; top: 22%; left: 50%; width: 40px; height: 10px;
  background: linear-gradient(90deg, transparent 0%, #8b8a3a 30%, #6a6a2a 50%, transparent 70%);
  border-radius: 50%;
  transform: rotate(20deg);
  animation: lkp-branch 8s ease-in-out infinite alternate;
}

@keyframes lkp-pillar {
  0% { opacity: 0.9; transform: scaleY(1) }
  50% { opacity: 1; transform: scaleY(0.99) }
  100% { opacity: 0.9; transform: scaleY(1) }
}
@keyframes lkp-throne {
  0% { transform: translateX(-50%) rotate(0deg) }
  50% { transform: translateX(-50%) rotate(0.5deg) translateY(-1px) }
  100% { transform: translateX(-50%) rotate(0deg) }
}
@keyframes lkp-king {
  0% { transform: translateX(-50%) rotate(0deg) }
  50% { transform: translateX(-50%) rotate(1deg) translateY(-2px) }
  100% { transform: translateX(-50%) rotate(0deg) }
}
@keyframes lkp-window {
  0% { opacity: 0.8; transform: scale(1) }
  50% { opacity: 1; transform: scale(1.02) }
  100% { opacity: 0.8; transform: scale(1) }
}
@keyframes lkp-dove {
  0% { transform: rotate(-10deg) translateX(0) }
  50% { transform: rotate(-5deg) translateX(10px) }
  100% { transform: rotate(-10deg) translateX(0) }
}
@keyframes lkp-branch {
  0% { transform: rotate(20deg) scale(1) }
  50% { transform: rotate(25deg) scale(1.1) }
  100% { transform: rotate(20deg) scale(1) }
}

.scn-london-palace-crusade-vow {
  background:
    linear-gradient(180deg, #d0a860 0%, #b08840 50%, #906828 100%),
    radial-gradient(ellipse at 50% 0%, #f0d080 0%, transparent 70%);
}
.scn-london-palace-crusade-vow .bg-warm {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c09850 0%, #a07838 60%, #806020 100%);
}
.scn-london-palace-crusade-vow .pillar-l {
  position: absolute; left: 8%; top: 0; width: 6%; height: 100%;
  background: linear-gradient(90deg, #a08040 0%, #c0a058 20%, #a08040 40%, #b09048 100%);
  border-radius: 4px;
  box-shadow: 4px 0 12px rgba(0,0,0,0.2);
  animation: lcv-pillar 20s ease-in-out infinite alternate;
}
.scn-london-palace-crusade-vow .pillar-r {
  position: absolute; right: 8%; top: 0; width: 6%; height: 100%;
  background: linear-gradient(90deg, #b09048 0%, #c0a058 20%, #a08040 40%, #a08040 100%);
  border-radius: 4px;
  box-shadow: -4px 0 12px rgba(0,0,0,0.2);
  animation: lcv-pillar 20s ease-in-out infinite alternate;
}
.scn-london-palace-crusade-vow .altar {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 60px;
  background: linear-gradient(180deg, #7a5a2a 0%, #5a3a1a 100%);
  border-radius: 8px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: lcv-altar 10s ease-in-out infinite;
}
.scn-london-palace-crusade-vow .sword {
  position: absolute; bottom: 42%; left: 50%; transform: translateX(-50%);
  width: 8px; height: 70px;
  background: linear-gradient(180deg, #d0c0a0 0%, #a09070 40%, #706050 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 10px rgba(200,180,120,0.5);
  animation: lcv-sword 5s ease-in-out infinite alternate;
}
.scn-london-palace-crusade-vow .knight {
  position: absolute; bottom: 32%; left: 38%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 50%, #0a0000 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lcv-knight 12s ease-in-out infinite;
}
.scn-london-palace-crusade-vow .window-sunset {
  position: absolute; top: 10%; left: 38%; width: 100px; height: 140px;
  background: radial-gradient(circle at 50% 70%, #ff8844 0%, #cc6633 40%, #994422 80%, #663311 100%);
  border: 6px solid #4a2a0a;
  border-radius: 12px;
  box-shadow: inset 0 0 60px rgba(255,136,68,0.4);
  animation: lcv-sunset 15s ease-in-out infinite alternate;
}
.scn-london-palace-crusade-vow .candle {
  position: absolute; bottom: 28%; left: 30%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 80%, #a08040 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 20px rgba(255,200,100,0.6);
}
.scn-london-palace-crusade-vow .flame {
  position: absolute; bottom: 54%; left: 30%; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #ffcc44 0%, #ff8800 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: lcv-flame 1.5s ease-in-out infinite alternate;
}

@keyframes lcv-pillar {
  0% { opacity: 0.8; transform: scaleY(1) }
  50% { opacity: 1; transform: scaleY(0.97) }
  100% { opacity: 0.8; transform: scaleY(1) }
}
@keyframes lcv-altar {
  0% { transform: translateX(-50%) rotate(0deg) }
  50% { transform: translateX(-50%) rotate(0.5deg) translateY(-2px) }
  100% { transform: translateX(-50%) rotate(0deg) }
}
@keyframes lcv-sword {
  0% { transform: translateX(-50%) rotate(-5deg) }
  50% { transform: translateX(-50%) rotate(5deg) }
  100% { transform: translateX(-50%) rotate(-5deg) }
}
@keyframes lcv-knight {
  0% { transform: translateX(0) rotate(0deg) }
  50% { transform: translateX(5px) rotate(1.5deg) }
  100% { transform: translateX(0) rotate(0deg) }
}
@keyframes lcv-sunset {
  0% { opacity: 0.7; transform: scale(1) }
  50% { opacity: 1; transform: scale(1.03) }
  100% { opacity: 0.7; transform: scale(1) }
}
@keyframes lcv-flame {
  0% { transform: scale(1) translateY(0); opacity: 0.9 }
  50% { transform: scale(1.2) translateY(-3px); opacity: 1 }
  100% { transform: scale(0.9) translateY(1px); opacity: 0.8 }
}

.scn-london-palace-council-news {
  background:
    linear-gradient(180deg, #d8c8b8 0%, #b8a898 50%, #988878 100%),
    radial-gradient(ellipse at 50% 100%, #c8b8a8 0%, transparent 60%);
}
.scn-london-palace-council-news .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c8b8a8 0%, #a89888 50%, #887868 100%);
}
.scn-london-palace-council-news .pillar-l {
  position: absolute; left: 8%; top: 0; width: 6%; height: 100%;
  background: linear-gradient(90deg, #a89888 0%, #c8b8a8 20%, #a89888 40%, #b8a898 100%);
  border-radius: 4px;
  box-shadow: 4px 0 12px rgba(0,0,0,0.1);
  animation: lcn-pillar 22s ease-in-out infinite alternate;
}
.scn-london-palace-council-news .pillar-r {
  position: absolute; right: 8%; top: 0; width: 6%; height: 100%;
  background: linear-gradient(90deg, #b8a898 0%, #c8b8a8 20%, #a89888 40%, #a89888 100%);
  border-radius: 4px;
  box-shadow: -4px 0 12px rgba(0,0,0,0.1);
  animation: lcn-pillar 22s ease-in-out infinite alternate;
}
.scn-london-palace-council-news .table {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20px 20px 8px 8px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.3);
  animation: lcn-table 16s ease-in-out infinite;
}
.scn-london-palace-council-news .map {
  position: absolute; bottom: 28%; left: 35%; width: 30%; height: 12%;
  background: linear-gradient(135deg, #c0a080 0%, #a08060 50%, #c0a080 100%);
  border-radius: 4px;
  transform: rotate(-2deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  animation: lcn-map 12s ease-in-out infinite alternate;
}
.scn-london-palace-council-news .figure-left {
  position: absolute; bottom: 22%; left: 28%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 60%, #0a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lcn-figure 14s ease-in-out infinite;
}
.scn-london-palace-council-news .figure-right {
  position: absolute; bottom: 22%; right: 28%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 60%, #00000a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lcn-figure 14s ease-in-out infinite 2s;
}
.scn-london-palace-council-news .figure-center {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 35px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 60%, #0a0000 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: lcn-figure-center 16s ease-in-out infinite;
}
.scn-london-palace-council-news .candle {
  position: absolute; bottom: 36%; left: 48%; width: 8px; height: 25px;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 80%, #a08040 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px rgba(255,200,100,0.5);
  animation: lcn-candle 4s ease-in-out infinite alternate;
}

@keyframes lcn-pillar {
  0% { opacity: 0.9; transform: scaleY(1) }
  50% { opacity: 1; transform: scaleY(0.98) }
  100% { opacity: 0.9; transform: scaleY(1) }
}
@keyframes lcn-table {
  0% { transform: translateY(0) }
  50% { transform: translateY(-2px) }
  100% { transform: translateY(0) }
}
@keyframes lcn-map {
  0% { transform: rotate(-2deg) scale(1) }
  50% { transform: rotate(0deg) scale(1.02) }
  100% { transform: rotate(-2deg) scale(1) }
}
@keyframes lcn-figure {
  0% { transform: translateX(0) rotate(0deg) }
  30% { transform: translateX(3px) rotate(1deg) }
  60% { transform: translateX(-2px) rotate(-0.5deg) }
  100% { transform: translateX(0) rotate(0deg) }
}
@keyframes lcn-figure-center {
  0% { transform: translateX(-50%) rotate(0deg) }
  30% { transform: translateX(-50%) rotate(1.5deg) translateY(-2px) }
  60% { transform: translateX(-50%) rotate(-1deg) translateY(-1px) }
  100% { transform: translateX(-50%) rotate(0deg) }
}
@keyframes lcn-candle {
  0% { opacity: 0.8; filter: blur(1px) }
  50% { opacity: 1; filter: blur(2px) }
  100% { opacity: 0.7; filter: blur(1px) }
}

.scn-field-westmoreland-duty {
  background: linear-gradient(180deg, #f0c28a 0%, #e8a860 40%, #b07a40 100%), radial-gradient(ellipse at 40% 30%, #ffdfa0 0%, transparent 70%);
}
.scn-field-westmoreland-duty .sky-wd {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b8d0ff 0%, #ffe8b0 100%);
  animation: wd-skydrift 20s ease-in-out infinite alternate;
}
.scn-field-westmoreland-duty .sun-wd {
  position: absolute; top: 15%; left: 55%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe680 0%, #f0b040 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #f0b040, 0 0 120px 40px rgba(240,176,64,0.5);
  animation: wd-sunpulse 6s ease-in-out infinite;
}
.scn-field-westmoreland-duty .horizon-wd {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a7a3a 0%, #3a5a1a 100%);
  border-radius: 30% 70% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,0.4);
  animation: wd-horizon 15s ease-in-out infinite alternate;
}
.scn-field-westmoreland-duty .figure-a-wd {
  position: absolute; bottom: 32%; left: 30%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wd-figA 4s ease-in-out infinite;
}
.scn-field-westmoreland-duty .figure-b-wd {
  position: absolute; bottom: 32%; left: 42%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wd-figB 4.5s ease-in-out infinite 0.5s;
}
.scn-field-westmoreland-duty .spear-a-wd {
  position: absolute; bottom: 33%; left: 31%; width: 2px; height: 35px;
  background: #4a3a2a;
  border-radius: 1px;
  transform-origin: bottom center;
  animation: wd-spear 3s ease-in-out infinite;
}
.scn-field-westmoreland-duty .spear-b-wd {
  position: absolute; bottom: 33%; left: 43%; width: 2px; height: 38px;
  background: #4a3a2a;
  border-radius: 1px;
  transform-origin: bottom center;
  animation: wd-spear 3.5s ease-in-out infinite 0.2s;
}
.scn-field-westmoreland-duty .dust-wd {
  position: absolute; bottom: 20%; left: 20%; width: 120px; height: 40px;
  background: radial-gradient(ellipse, rgba(200,180,150,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: wd-dust 10s linear infinite;
}
@keyframes wd-skydrift { 0% { opacity:0.8; background-position:0% 0%; } 50% { opacity:1; background-position:30% 0%; } 100% { opacity:0.75; background-position:0% 0%; } }
@keyframes wd-sunpulse { 0% { transform:scale(1); box-shadow:0 0 60px 20px #f0b040; } 50% { transform:scale(1.1); box-shadow:0 0 80px 30px #f0b040, 0 0 150px 50px rgba(240,176,64,0.5); } 100% { transform:scale(0.95); box-shadow:0 0 50px 15px #f0b040; } }
@keyframes wd-horizon { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(2px); } }
@keyframes wd-figA { 0% { transform:translateX(0) rotate(-2deg); } 25% { transform:translateX(8px) rotate(2deg); } 50% { transform:translateX(16px) rotate(-2deg); } 75% { transform:translateX(24px) rotate(1deg); } 100% { transform:translateX(32px) rotate(0); } }
@keyframes wd-figB { 0% { transform:translateX(0) rotate(2deg); } 25% { transform:translateX(8px) rotate(-2deg); } 50% { transform:translateX(16px) rotate(1deg); } 75% { transform:translateX(24px) rotate(-1deg); } 100% { transform:translateX(32px) rotate(0); } }
@keyframes wd-spear { 0% { transform:rotate(-10deg); } 50% { transform:rotate(10deg); } 100% { transform:rotate(-10deg); } }
@keyframes wd-dust { 0% { opacity:0.3; transform:translateX(0) scale(1); } 50% { opacity:0.6; transform:translateX(30px) scale(1.2); } 100% { opacity:0; transform:translateX(60px) scale(0.8); } }

.scn-field-hal-boy-lends-mettle {
  background: linear-gradient(180deg, #ffe8b0 0%, #f0c28a 50%, #c08050 100%), radial-gradient(ellipse at 50% 20%, #fff0c0 0%, transparent 60%);
}
.scn-field-hal-boy-lends-mettle .sky-hm {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #a0c4ff 0%, #ffdca0 100%);
  animation: hm-skyshift 18s ease-in-out infinite alternate;
}
.scn-field-hal-boy-lends-mettle .sunburst-hm {
  position: absolute; top: 12%; left: 60%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff8e0 0%, #ffe080 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 100px 40px #ffe080, 0 0 200px 80px rgba(255,224,128,0.4);
  animation: hm-sunburst 8s ease-in-out infinite;
}
.scn-field-hal-boy-lends-mettle .ground-hm {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #6a8a4a 0%, #3a5a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.4);
  animation: hm-ground 12s ease-in-out infinite alternate;
}
.scn-field-hal-boy-lends-mettle .hal-figure-hm {
  position: absolute; bottom: 25%; left: 50%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: hm-hal 4s ease-in-out infinite;
}
.scn-field-hal-boy-lends-mettle .sword-hm {
  position: absolute; bottom: 28%; left: 52%; width: 3px; height: 40px;
  background: #707070;
  border-radius: 1px;
  transform-origin: bottom center;
  animation: hm-sword 3s ease-in-out infinite;
}
.scn-field-hal-boy-lends-mettle .shadow-hm {
  position: absolute; bottom: 20%; left: 40%; width: 100px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(5px);
  animation: hm-shadow 6s ease-in-out infinite alternate;
}
.scn-field-hal-boy-lends-mettle .banner-hm {
  position: absolute; bottom: 38%; left: 60%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #6a2a1a 0%, #a04530 100%);
  border-radius: 0 0 40% 40%;
  transform-origin: bottom left;
  animation: hm-banner 3.5s ease-in-out infinite;
}
@keyframes hm-skyshift { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes hm-sunburst { 0% { transform:scale(1); opacity:0.9; } 50% { transform:scale(1.15); opacity:1; } 100% { transform:scale(0.9); opacity:0.85; } }
@keyframes hm-ground { 0% { transform:translateY(0); } 50% { transform:translateY(-4px); } 100% { transform:translateY(3px); } }
@keyframes hm-hal { 0% { transform:translateX(-50%) rotate(-2deg) scale(1); } 25% { transform:translateX(-45%) rotate(1deg) scale(1.02); } 50% { transform:translateX(-50%) rotate(2deg) scale(1); } 75% { transform:translateX(-55%) rotate(-1deg) scale(0.98); } 100% { transform:translateX(-50%) rotate(0) scale(1); } }
@keyframes hm-sword { 0% { transform:rotate(-15deg); } 50% { transform:rotate(15deg); } 100% { transform:rotate(-10deg); } }
@keyframes hm-shadow { 0% { opacity:0.2; transform:scaleX(1); } 50% { opacity:0.5; transform:scaleX(1.2); } 100% { opacity:0.3; transform:scaleX(0.8); } }
@keyframes hm-banner { 0% { transform:rotate(-5deg); } 50% { transform:rotate(5deg); } 100% { transform:rotate(-3deg); } }

.scn-field-king-identifies {
  background: linear-gradient(180deg, #d0b080 0%, #b08050 50%, #805030 100%), radial-gradient(ellipse at 45% 25%, #ffdca0 0%, transparent 70%);
}
.scn-field-king-identifies .sky-ki {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #90b8ff 0%, #ffdbb0 100%);
  animation: ki-sky 22s ease-in-out infinite alternate;
}
.scn-field-king-identifies .sun-ki {
  position: absolute; top: 10%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffefb0 0%, #f0c060 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px #f0c060, 0 0 160px 60px rgba(240,192,96,0.4);
  animation: ki-sun 7s ease-in-out infinite;
}
.scn-field-king-identifies .hill-ki {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 0 0 / 70% 70% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.4);
  animation: ki-hill 14s ease-in-out infinite alternate;
}
.scn-field-king-identifies .king-figure-ki {
  position: absolute; bottom: 22%; left: 40%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: ki-king 5s ease-in-out infinite;
}
.scn-field-king-identifies .crown-ki {
  position: absolute; bottom: 48%; left: 40%; width: 18px; height: 10px;
  background: linear-gradient(180deg, #d0a050 0%, #b08030 100%);
  border-radius: 50% 50% 20% 20%;
  transform: translateX(-50%);
  animation: ki-crown 3s ease-in-out infinite;
}
.scn-field-king-identifies .douglas-figure-ki {
  position: absolute; bottom: 22%; left: 55%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ki-douglas 4.5s ease-in-out infinite 0.3s;
}
.scn-field-king-identifies .sword-ki {
  position: absolute; bottom: 27%; left: 57%; width: 3px; height: 35px;
  background: #909090;
  border-radius: 1px;
  transform-origin: bottom center;
  animation: ki-sword 3.5s ease-in-out infinite;
}
.scn-field-king-identifies .cape-ki {
  position: absolute; bottom: 20%; left: 38%; width: 30px; height: 25px;
  background: linear-gradient(135deg, #5e1a1d 0%, #8a2a2e 100%);
  border-radius: 0 0 60% 40%;
  transform-origin: top left;
  animation: ki-cape 4s ease-in-out infinite;
}
@keyframes ki-sky { 0% { opacity:0.75; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes ki-sun { 0% { transform:scale(1); box-shadow:0 0 80px 30px #f0c060; } 50% { transform:scale(1.08); box-shadow:0 0 100px 40px #f0c060, 0 0 200px 80px rgba(240,192,96,0.4); } 100% { transform:scale(0.92); box-shadow:0 0 60px 20px #f0c060; } }
@keyframes ki-hill { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(2px); } }
@keyframes ki-king { 0% { transform:translateX(-50%) rotate(-2deg); } 25% { transform:translateX(-48%) rotate(1deg); } 50% { transform:translateX(-50%) rotate(2deg); } 75% { transform:translateX(-52%) rotate(-1deg); } 100% { transform:translateX(-50%) rotate(0); } }
@keyframes ki-crown { 0% { transform:translateX(-50%) rotate(-5deg); } 50% { transform:translateX(-50%) rotate(5deg); } 100% { transform:translateX(-50%) rotate(-3deg); } }
@keyframes ki-douglas { 0% { transform:translateX(0) rotate(2deg); } 25% { transform:translateX(8px) rotate(-2deg); } 50% { transform:translateX(16px) rotate(1deg); } 75% { transform:translateX(24px) rotate(-1deg); } 100% { transform:translateX(32px) rotate(0); } }
@keyframes ki-sword { 0% { transform:rotate(-20deg); } 50% { transform:rotate(20deg); } 100% { transform:rotate(-15deg); } }
@keyframes ki-cape { 0% { transform:rotate(0) scaleX(1); } 50% { transform:rotate(6deg) scaleX(1.05); } 100% { transform:rotate(-2deg) scaleX(0.95); } }

.scn-field-hal-rescues-king {
  background: linear-gradient(180deg, #c8a070 0%, #a07040 50%, #704020 100%), radial-gradient(ellipse at 40% 30%, #ffdba0 0%, transparent 70%);
}
.scn-field-hal-rescues-king .sky-hr {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #80b0ff 0%, #ffd0a0 100%);
  animation: hr-skydrift 20s ease-in-out infinite alternate;
}
.scn-field-hal-rescues-king .sun-hr {
  position: absolute; top: 12%; left: 45%; width: 45px; height: 45px;
  background: radial-gradient(circle, #ffe8a0 0%, #f0b850 100%);
  border-radius: 50%;
  box-shadow: 0 0 70px 25px #f0b850, 0 0 140px 50px rgba(240,184,80,0.5);
  animation: hr-sun 6s ease-in-out infinite;
}
.scn-field-hal-rescues-king .ground-hr {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a7a3a 0%, #2a4a1a 100%);
  border-radius: 70% 30% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.5);
  animation: hr-ground 12s ease-in-out infinite alternate;
}
.scn-field-hal-rescues-king .king-hr {
  position: absolute; bottom: 18%; left: 35%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(30deg);
  transform-origin: bottom center;
  animation: hr-king 4s ease-in-out infinite;
}
.scn-field-hal-rescues-king .hal-hr {
  position: absolute; bottom: 22%; left: 48%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hr-hal 3.5s ease-in-out infinite 0.2s;
}
.scn-field-hal-rescues-king .douglas-hr {
  position: absolute; bottom: 20%; left: 58%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: hr-douglas 4.2s ease-in-out infinite 0.1s;
}
.scn-field-hal-rescues-king .sword-hr {
  position: absolute; bottom: 27%; left: 50%; width: 3px; height: 38px;
  background: #808080;
  border-radius: 1px;
  transform-origin: bottom center;
  animation: hr-sword 2.8s ease-in-out infinite;
}
.scn-field-hal-rescues-king .shield-hr {
  position: absolute; bottom: 24%; left: 42%; width: 22px; height: 28px;
  background: linear-gradient(180deg, #605040 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(10deg);
  transform-origin: center;
  animation: hr-shield 3.5s ease-in-out infinite 0.5s;
}
.scn-field-hal-rescues-king .dust-hr {
  position: absolute; bottom: 15%; left: 30%; width: 150px; height: 50px;
  background: radial-gradient(ellipse, rgba(180,160,130,0.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: hr-dust 8s linear infinite;
}
@keyframes hr-skydrift { 0% { opacity:0.8; background-position:0% 0%; } 50% { opacity:1; background-position:20% 0%; } 100% { opacity:0.7; background-position:0% 0%; } }
@keyframes hr-sun { 0% { transform:scale(1); box-shadow:0 0 70px 25px #f0b850; } 50% { transform:scale(1.12); box-shadow:0 0 90px 35px #f0b850, 0 0 180px 60px rgba(240,184,80,0.5); } 100% { transform:scale(0.9); box-shadow:0 0 50px 15px #f0b850; } }
@keyframes hr-ground { 0% { transform:translateY(0); } 50% { transform:translateY(-5px); } 100% { transform:translateY(3px); } }
@keyframes hr-king { 0% { transform:rotate(30deg) translateY(0); } 25% { transform:rotate(25deg) translateY(-4px); } 50% { transform:rotate(30deg) translateY(-2px); } 75% { transform:rotate(35deg) translateY(0); } 100% { transform:rotate(30deg) translateY(0); } }
@keyframes hr-hal { 0% { transform:translateX(0) rotate(-5deg) scale(1); } 25% { transform:translateX(8px) rotate(5deg) scale(1.03); } 50% { transform:translateX(16px) rotate(-5deg) scale(1); } 75% { transform:translateX(24px) rotate(3deg) scale(0.97); } 100% { transform:translateX(32px) rotate(0) scale(1); } }
@keyframes hr-douglas { 0% { transform:rotate(-20deg) translateY(0); } 25% { transform:rotate(-15deg) translateY(-4px); } 50% { transform:rotate(-20deg) translateY(-2px); } 75% { transform:rotate(-25deg) translateY(0); } 100% { transform:rotate(-20deg) translateY(0); } }
@keyframes hr-sword { 0% { transform:rotate(-25deg); } 50% { transform:rotate(25deg); } 100% { transform:rotate(-20deg); } }
@keyframes hr-shield { 0% { transform:rotate(10deg) scale(1); } 50% { transform:rotate(20deg) scale(1.05); } 100% { transform:rotate(5deg) scale(0.95); } }
@keyframes hr-dust { 0% { opacity:0.3; transform:translateX(0) scale(1); } 50% { opacity:0.7; transform:translateX(40px) scale(1.3); } 100% { opacity:0; transform:translateX(80px) scale(0.7); } }

/* rebel-camp-shrewsbury-worst-tidings: dark mood, sunlit */
.scn-rebel-camp-shrewsbury-worst-tidings {
  background:
    linear-gradient(180deg, #c89d6a 0%, #e8c88a 30%, #7a5a3a 70%, #3a2a1a 100%),
    radial-gradient(ellipse at 60% 0%, #ffd18a 0%, transparent 50%);
}
.scn-rebel-camp-shrewsbury-worst-tidings .sky {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #dbb87a 0%, #b8925a 40%, #6a4a2a 100%);
  animation: wr-sky 14s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-worst-tidings .sun {
  position: absolute;
  top: 8%;
  left: 72%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, #ffefc0 0%, #f0c068 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(240,192,104,0.5);
  animation: wr-sun 12s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-worst-tidings .hills {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.6);
  animation: wr-hills 20s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-worst-tidings .tent {
  position: absolute;
  bottom: 32%;
  left: 30%;
  width: 100px;
  height: 80px;
  background: linear-gradient(160deg, #8a6a3a, #5a4a2a);
  clip-path: polygon(0 100%, 50% 0%, 100% 100%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
  animation: wr-tent 8s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-worst-tidings .banner {
  position: absolute;
  bottom: 42%;
  left: 35%;
  width: 12px;
  height: 30px;
  background: #702243;
  transform-origin: bottom left;
  animation: wr-banner 3s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-worst-tidings .soldier-a {
  position: absolute;
  bottom: 28%;
  left: 20%;
  width: 20px;
  height: 40px;
  background: linear-gradient(180deg, #1a1a2a, #0a0a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wr-soldier 6s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-worst-tidings .soldier-b {
  position: absolute;
  bottom: 28%;
  left: 44%;
  width: 20px;
  height: 38px;
  background: linear-gradient(180deg, #2a1a2a, #1a0a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wr-soldier 7s ease-in-out infinite reverse;
}
.scn-rebel-camp-shrewsbury-worst-tidings .spear {
  position: absolute;
  bottom: 30%;
  left: 28%;
  width: 4px;
  height: 60px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a, #1a1008);
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: wr-spear 8s ease-in-out infinite;
}
@keyframes wr-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes wr-sun {
  0% { transform: scale(1); box-shadow: 0 0 50px 20px rgba(240,192,104,0.4); }
  50% { transform: scale(1.05); box-shadow: 0 0 80px 40px rgba(240,192,104,0.6); }
  100% { transform: scale(0.95); box-shadow: 0 0 60px 25px rgba(240,192,104,0.5); }
}
@keyframes wr-hills {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
@keyframes wr-tent {
  0%, 100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.02) rotate(-1deg); }
}
@keyframes wr-banner {
  0% { transform: rotate(0deg) scaleY(1); }
  25% { transform: rotate(15deg) scaleY(1.1); }
  50% { transform: rotate(-10deg) scaleY(0.9); }
  75% { transform: rotate(10deg) scaleY(1.05); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes wr-soldier {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  30% { transform: translateX(8px) translateY(-2px) rotate(2deg); }
  60% { transform: translateX(16px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(24px) translateY(-1px) rotate(1deg); }
}
@keyframes wr-spear {
  0%, 100% { transform: rotate(-10deg); }
  50% { transform: rotate(-5deg); }
}

/* rebel-camp-shrewsbury-no-fear-death: warm mood, sunlit */
.scn-rebel-camp-shrewsbury-no-fear-death {
  background:
    linear-gradient(180deg, #f2d5a0 0%, #eac08a 40%, #c89d6a 100%),
    radial-gradient(ellipse at 50% 0%, #ffeab0 0%, transparent 60%);
}
.scn-rebel-camp-shrewsbury-no-fear-death .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffeac0 0%, #eac08a 100%);
  animation: nf-sky 16s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-no-fear-death .sun {
  position: absolute;
  top: 5%;
  left: 60%;
  width: 50px;
  height: 50px;
  background: radial-gradient(circle, #fff4d0 0%, #ffd080 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(255,208,128,0.6);
  animation: nf-sun 10s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-no-fear-death .tent {
  position: absolute;
  bottom: 30%;
  left: 25%;
  width: 120px;
  height: 90px;
  background: linear-gradient(160deg, #d4a86a, #b08040);
  clip-path: polygon(0 100%, 50% 0%, 100% 100%);
  box-shadow: 0 6px 16px rgba(0,0,0,0.3);
  animation: nf-tent 10s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-no-fear-death .table {
  position: absolute;
  bottom: 28%;
  left: 40%;
  width: 100px;
  height: 20px;
  background: linear-gradient(180deg, #8a6a3a, #5a4a2a);
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: nf-table 12s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-no-fear-death .cup {
  position: absolute;
  bottom: 34%;
  left: 44%;
  width: 18px;
  height: 22px;
  background: linear-gradient(180deg, #b08040, #8a6a3a);
  border-radius: 0 0 30% 30% / 0 0 40% 40%;
  animation: nf-cup 4s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-no-fear-death .figure-a {
  position: absolute;
  bottom: 28%;
  left: 20%;
  width: 22px;
  height: 44px;
  background: linear-gradient(180deg, #3a2a1a, #1a1008);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nf-fig 5s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-no-fear-death .figure-b {
  position: absolute;
  bottom: 28%;
  left: 56%;
  width: 22px;
  height: 42px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nf-fig 6s ease-in-out infinite reverse;
}
.scn-rebel-camp-shrewsbury-no-fear-death .flask {
  position: absolute;
  bottom: 32%;
  left: 50%;
  width: 12px;
  height: 24px;
  background: linear-gradient(180deg, #c0a060, #a08040);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  animation: nf-flask 3s ease-in-out infinite;
}
@keyframes nf-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes nf-sun {
  0% { transform: scale(1); box-shadow: 0 0 60px 30px rgba(255,208,128,0.5); }
  50% { transform: scale(1.08); box-shadow: 0 0 100px 50px rgba(255,208,128,0.7); }
  100% { transform: scale(0.95); box-shadow: 0 0 70px 35px rgba(255,208,128,0.5); }
}
@keyframes nf-tent {
  0%, 100% { transform: scale(1) rotate(0); }
  50% { transform: scale(1.03) rotate(1deg); }
}
@keyframes nf-table {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes nf-cup {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(5deg); }
  50% { transform: translateX(0) rotate(-3deg); }
  75% { transform: translateX(-4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes nf-fig {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  30% { transform: translateX(6px) translateY(-2px) rotate(2deg); }
  60% { transform: translateX(12px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(18px) translateY(-1px) rotate(1deg); }
}
@keyframes nf-flask {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(5deg); }
}

/* road-coventry-lay-out: funny mood, sunlit */
.scn-road-coventry-lay-out {
  background:
    linear-gradient(180deg, #e0d09a 0%, #c8b87a 50%, #a8985a 100%),
    radial-gradient(ellipse at 70% 0%, #f5eac0 0%, transparent 50%);
}
.scn-road-coventry-lay-out .sky {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #e8d8a0, #c8b87a);
  animation: lo-sky 18s ease-in-out infinite alternate;
}
.scn-road-coventry-lay-out .road {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 55%;
  background: linear-gradient(180deg, #a8985a 0%, #7a6a3a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: lo-road 20s ease-in-out infinite;
}
.scn-road-coventry-lay-out .bottle {
  position: absolute;
  bottom: 40%;
  left: 30%;
  width: 16px;
  height: 30px;
  background: linear-gradient(90deg, #b8a060, #8a7840);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  transform: rotate(-15deg);
  animation: lo-bottle 2s ease-in-out infinite;
}
.scn-road-coventry-lay-out .coin {
  position: absolute;
  bottom: 36%;
  left: 60%;
  width: 20px;
  height: 20px;
  background: radial-gradient(circle at 40% 40%, #f0d080, #c09840);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: lo-coin 3s ease-in-out infinite;
}
.scn-road-coventry-lay-out .falstaff {
  position: absolute;
  bottom: 28%;
  left: 20%;
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lo-falstaff 5s ease-in-out infinite;
}
.scn-road-coventry-lay-out .bardolph {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 22px;
  height: 44px;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lo-bardolph 6s ease-in-out infinite reverse;
}
.scn-road-coventry-lay-out .tree {
  position: absolute;
  bottom: 40%;
  right: 10%;
  width: 10px;
  height: 60px;
  background: linear-gradient(180deg, #5a3a1a, #3a2a0a);
  border-radius: 0 0 20% 20%;
}
.scn-road-coventry-lay-out .tree::before {
  content: '';
  position: absolute;
  top: -30px;
  left: -15px;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, #6a8a3a, #4a6a2a);
  border-radius: 50%;
}
@keyframes lo-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes lo-road {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes lo-bottle {
  0% { transform: rotate(-15deg) translateY(0); }
  25% { transform: rotate(-20deg) translateY(-5px); }
  50% { transform: rotate(-10deg) translateY(0); }
  75% { transform: rotate(-25deg) translateY(-3px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes lo-coin {
  0% { transform: translateX(0) rotate(0deg) scale(1); }
  25% { transform: translateX(8px) rotate(15deg) scale(1.1); }
  50% { transform: translateX(0) rotate(0deg) scale(1); }
  75% { transform: translateX(-8px) rotate(-15deg) scale(0.9); }
  100% { transform: translateX(0) rotate(0deg) scale(1); }
}
@keyframes lo-falstaff {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  30% { transform: translateX(10px) translateY(-3px) rotate(3deg); }
  60% { transform: translateX(20px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(30px) translateY(-2px) rotate(2deg); }
}
@keyframes lo-bardolph {
  0% { transform: translateX(0) translateY(0) rotate(2deg); }
  30% { transform: translateX(-8px) translateY(-2px) rotate(-3deg); }
  60% { transform: translateX(-16px) translateY(0) rotate(1deg); }
  100% { transform: translateX(-24px) translateY(-1px) rotate(-2deg); }
}

/* road-coventry-shame-soldiers: funny mood, sunlit */
.scn-road-coventry-shame-soldiers {
  background:
    linear-gradient(180deg, #d8c890 0%, #b8a870 50%, #988858 100%),
    radial-gradient(ellipse at 30% 0%, #f0e0b0 0%, transparent 50%);
}
.scn-road-coventry-shame-soldiers .sky {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #e0d0a0, #c0b080);
  animation: sh-sky 16s ease-in-out infinite alternate;
}
.scn-road-coventry-shame-soldiers .road {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 55%;
  background: linear-gradient(180deg, #b8a870 0%, #7a6a3a 100%);
  border-radius: 30% 70% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 8px 24px rgba(0,0,0,0.4);
  animation: sh-road 22s ease-in-out infinite;
}
.scn-road-coventry-shame-soldiers .soldier-ragtag-a {
  position: absolute;
  bottom: 30%;
  left: 15%;
  width: 18px;
  height: 36px;
  background: linear-gradient(180deg, #3a2a1a, #1a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sh-sol 4s ease-in-out infinite;
}
.scn-road-coventry-shame-soldiers .soldier-ragtag-b {
  position: absolute;
  bottom: 32%;
  left: 30%;
  width: 18px;
  height: 34px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sh-sol 5s ease-in-out infinite reverse;
}
.scn-road-coventry-shame-soldiers .soldier-ragtag-c {
  position: absolute;
  bottom: 30%;
  left: 45%;
  width: 18px;
  height: 38px;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sh-sol 6s ease-in-out infinite;
}
.scn-road-coventry-shame-soldiers .falstaff {
  position: absolute;
  bottom: 26%;
  left: 60%;
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sh-falstaff 7s ease-in-out infinite;
}
.scn-road-coventry-shame-soldiers .flag {
  position: absolute;
  bottom: 34%;
  left: 22%;
  width: 8px;
  height: 30px;
  background: #5a3a1a;
  transform-origin: bottom left;
  animation: sh-flag 3s ease-in-out infinite;
}
.scn-road-coventry-shame-soldiers .flag::after {
  content: '';
  position: absolute;
  top: -2px;
  left: 8px;
  width: 20px;
  height: 14px;
  background: #702243;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}
@keyframes sh-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes sh-road {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes sh-sol {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  30% { transform: translateX(6px) translateY(-2px) rotate(2deg); }
  60% { transform: translateX(12px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(18px) translateY(-1px) rotate(1deg); }
}
@keyframes sh-falstaff {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  30% { transform: translateX(-8px) translateY(-3px) rotate(2deg); }
  60% { transform: translateX(-16px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(-24px) translateY(-2px) rotate(1deg); }
}
@keyframes sh-flag {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(20deg); }
  50% { transform: rotate(-10deg); }
  75% { transform: rotate(15deg); }
  100% { transform: rotate(0deg); }
}

/* highway-gadshill-how-rogue-roared */
.scn-highway-gadshill-how-rogue-roared {
  background:
    linear-gradient(180deg, #0f0f1a 0%, #1a1a30 40%, #2a1f0e 100%),
    radial-gradient(ellipse at 50% 70%, #2a1f0e 0%, transparent 60%);
}
.scn-highway-gadshill-how-rogue-roared .sky-hgr { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #0a0a18 0%, #141428 100%); animation:hgr-sky 8s ease-in-out infinite alternate; }
.scn-highway-gadshill-how-rogue-roared .road-hgr { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #3a3528 0%, #2a2518 100%); border-radius:20% 20% 0 0; box-shadow:inset 0 12px 20px rgba(0,0,0,.6); animation:hgr-road 4s ease-in-out infinite; }
.scn-highway-gadshill-how-rogue-roared .bush-left-hgr { position:absolute; bottom:28%; left:8%; width:18%; height:15%; background:radial-gradient(ellipse at 50% 100%, #2a3a1a 0%, #1a2a0a 100%); border-radius:50%; filter:blur(3px); animation:hgr-bush 6s ease-in-out infinite alternate; }
.scn-highway-gadshill-how-rogue-roared .bush-right-hgr { position:absolute; bottom:30%; right:12%; width:22%; height:18%; background:radial-gradient(ellipse at 50% 100%, #2a3a1a 0%, #1a2a0a 100%); border-radius:50%; filter:blur(4px); animation:hgr-bush 7s ease-in-out infinite alternate-reverse; }
.scn-highway-gadshill-how-rogue-roared .rogue-hgr { position:absolute; bottom:20%; left:45%; width:120px; height:160px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation:hgr-rogue 1.5s ease-in-out infinite; }
.scn-highway-gadshill-how-rogue-roared .torch-hgr { position:absolute; bottom:32%; left:48%; width:8px; height:18px; background:linear-gradient(180deg, #d09040 0%, #8a6020 100%); border-radius:20% 20% 10% 10%; animation:hgr-torch 1.8s ease-in-out infinite alternate; }
.scn-highway-gadshill-how-rogue-roared .torch-glow-hgr { position:absolute; bottom:28%; left:46%; width:60px; height:60px; border-radius:50%; background:radial-gradient(circle, rgba(255,160,40,.5) 0%, transparent 70%); animation:hgr-glow 2s ease-in-out infinite alternate; }
@keyframes hgr-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes hgr-road { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.02); } 100% { transform:scaleY(1); } }
@keyframes hgr-bush { 0% { transform:scale(1) rotate(0deg); } 50% { transform:scale(1.05) rotate(2deg); } 100% { transform:scale(1) rotate(-1deg); } }
@keyframes hgr-rogue { 0% { transform:translateX(-50%) translateY(0) rotate(-2deg) scale(1); } 25% { transform:translateX(-48%) translateY(-4px) rotate(0) scale(1.02); } 50% { transform:translateX(-50%) translateY(-6px) rotate(3deg) scale(1.03); } 75% { transform:translateX(-52%) translateY(-2px) rotate(1deg) scale(1.01); } 100% { transform:translateX(-50%) translateY(0) rotate(-1deg) scale(1); } }
@keyframes hgr-torch { 0% { transform:translateY(0) scaleY(1); opacity:0.9; } 100% { transform:translateY(-3px) scaleY(1.2); opacity:1; } }
@keyframes hgr-glow { 0% { transform:scale(0.9); opacity:0.5; } 50% { transform:scale(1.2); opacity:0.8; } 100% { transform:scale(1); opacity:0.6; } }

/* warkworth-castle-hotspur-reading */
.scn-warkworth-castle-hotspur-reading {
  background:
    linear-gradient(180deg, #2b2318 0%, #1f1911 40%, #140f0a 100%),
    radial-gradient(ellipse at 50% 40%, #4a3a28 0%, transparent 60%);
}
.scn-warkworth-castle-hotspur-reading .wall-wcr { position:absolute; inset:0 0 25% 0; background:linear-gradient(135deg, #3a3225 0%, #2a2215 100%); border-radius:0 0 10% 10%; box-shadow:inset 0 8px 20px rgba(0,0,0,.5); animation:wcr-wall 12s ease-in-out infinite alternate; }
.scn-warkworth-castle-hotspur-reading .floor-wcr { position:absolute; bottom:0; left:0; right:0; height:25%; background:linear-gradient(180deg, #2a2215 0%, #1a1205 100%); border-radius:30% 30% 0 0; }
.scn-warkworth-castle-hotspur-reading .table-wcr { position:absolute; bottom:20%; left:40%; width:25%; height:5%; background:linear-gradient(180deg, #5a4020 0%, #3a2810 100%); border-radius:10% 10% 5% 5%; box-shadow:0 4px 8px rgba(0,0,0,.4); animation:wcr-table 6s ease-in-out infinite; }
.scn-warkworth-castle-hotspur-reading .candle-flame-wcr { position:absolute; bottom:30%; left:45%; width:10px; height:18px; background:linear-gradient(180deg, #ffd080 0%, #f0a030 50%, #c07020 100%); border-radius:30% 30% 20% 20%; animation:wcr-flame 1.6s ease-in-out infinite alternate; }
.scn-warkworth-castle-hotspur-reading .letter-wcr { position:absolute; bottom:22%; left:38%; width:16%; height:8%; background:linear-gradient(135deg, #e8dcc8 0%, #c2b092 100%); border-radius:8% 8% 8% 8%; transform:rotate(-5deg); box-shadow:0 2px 6px rgba(0,0,0,.3); animation:wcr-letter 5s ease-in-out infinite alternate; }
.scn-warkworth-castle-hotspur-reading .figure-wcr { position:absolute; bottom:18%; left:48%; width:40px; height:110px; background:linear-gradient(180deg, #1a1620 0%, #0f0c15 100%); border-radius:30% 30% 35% 35% / 40% 40% 50% 50%; transform:translateX(-50%); animation:wcr-figure 4s ease-in-out infinite; }
.scn-warkworth-castle-hotspur-reading .shadow-wcr { position:absolute; bottom:18%; left:38%; width:60px; height:30px; background:radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); filter:blur(4px); animation:wcr-shadow 4s ease-in-out infinite; }
.scn-warkworth-castle-hotspur-reading .candle-light-wcr { position:absolute; bottom:28%; left:42%; width:80px; height:100px; background:radial-gradient(ellipse, rgba(255,180,60,.3) 0%, transparent 70%); animation:wcr-light 3s ease-in-out infinite alternate; }
@keyframes wcr-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes wcr-table { 0% { transform:translateY(0) scaleX(1); } 50% { transform:translateY(-2px) scaleX(1.01); } 100% { transform:translateY(0) scaleX(1); } }
@keyframes wcr-flame { 0% { transform:translateY(0) scaleY(1) rotate(-2deg); opacity:0.9; } 100% { transform:translateY(-5px) scaleY(1.3) rotate(2deg); opacity:1; } }
@keyframes wcr-letter { 0% { transform:rotate(-5deg) translateX(0); } 50% { transform:rotate(-3deg) translateX(4px); } 100% { transform:rotate(-5deg) translateX(0); } }
@keyframes wcr-figure { 0% { transform:translateX(-50%) translateY(0) rotate(0); } 25% { transform:translateX(-50%) translateY(-2px) rotate(1deg); } 50% { transform:translateX(-50%) translateY(-4px) rotate(-1deg); } 75% { transform:translateX(-50%) translateY(-2px) rotate(2deg); } 100% { transform:translateX(-50%) translateY(0) rotate(0); } }
@keyframes wcr-shadow { 0% { transform:scaleX(1); opacity:0.5; } 50% { transform:scaleX(0.8); opacity:0.7; } 100% { transform:scaleX(1); opacity:0.5; } }
@keyframes wcr-light { 0% { transform:scale(1); opacity:0.3; } 50% { transform:scale(1.2); opacity:0.5; } 100% { transform:scale(0.9); opacity:0.4; } }

/* warkworth-castle-hotspur-scorns-letter */
.scn-warkworth-castle-hotspur-scorns-letter {
  background:
    linear-gradient(180deg, #2b2318 0%, #1f1911 40%, #120e08 100%),
    radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 60%);
}
.scn-warkworth-castle-hotspur-scorns-letter .wall-wcs { position:absolute; inset:0 0 20% 0; background:linear-gradient(135deg, #3a3225 0%, #2a2215 100%); border-radius:0 0 15% 15%; box-shadow:inset 0 8px 20px rgba(0,0,0,.6); animation:wcs-wall 10s ease-in-out infinite alternate; }
.scn-warkworth-castle-hotspur-scorns-letter .floor-wcs { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #2a2215 0%, #1a1205 100%); border-radius:40% 40% 0 0; }
.scn-warkworth-castle-hotspur-scorns-letter .candle-wcs { position:absolute; bottom:32%; left:40%; width:8px; height:22px; background:linear-gradient(180deg, #e0a050 0%, #b08040 100%); border-radius:20%; animation:wcs-candle 2.4s ease-in-out infinite alternate; }
.scn-warkworth-castle-hotspur-scorns-letter .letter-1-wcs { position:absolute; bottom:22%; left:32%; width:12%; height:6%; background:#d4c8b0; border-radius:10%; transform:rotate(-20deg); animation:wcs-letter1 1.6s ease-in-out infinite; }
.scn-warkworth-castle-hotspur-scorns-letter .letter-2-wcs { position:absolute; bottom:24%; left:44%; width:12%; height:6%; background:#d4c8b0; border-radius:10%; transform:rotate(15deg); animation:wcs-letter2 1.8s ease-in-out infinite; }
.scn-warkworth-castle-hotspur-scorns-letter .figure-wcs { position:absolute; bottom:16%; left:50%; width:45px; height:120px; background:linear-gradient(180deg, #1a1620 0%, #0f0c15 100%); border-radius:30% 30% 35% 35% / 40% 40% 50% 50%; transform:translateX(-50%); animation:wcs-figure 3s ease-in-out infinite; }
.scn-warkworth-castle-hotspur-scorns-letter .arm-wcs { position:absolute; bottom:30%; left:44%; width:40px; height:10px; background:linear-gradient(180deg, #1a1620 0%, #0f0c15 100%); border-radius:30% 30% 30% 30% / 50% 50% 50% 50%; transform-origin:left center; transform:rotate(-40deg); animation:wcs-arm 1.6s ease-in-out infinite; }
.scn-warkworth-castle-hotspur-scorns-letter .shadow-wcs { position:absolute; bottom:16%; left:35%; width:70px; height:40px; background:radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); filter:blur(6px); animation:wcs-shadow 3s ease-in-out infinite; }
@keyframes wcs-wall { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes wcs-candle { 0% { transform:translateY(0) scaleY(1); opacity:0.8; } 100% { transform:translateY(-4px) scaleY(1.2); opacity:1; } }
@keyframes wcs-letter1 { 0% { transform:rotate(-20deg) translateX(0); } 50% { transform:rotate(-15deg) translateX(10px) translateY(5px); } 100% { transform:rotate(-20deg) translateX(0); } }
@keyframes wcs-letter2 { 0% { transform:rotate(15deg) translateX(0); } 50% { transform:rotate(25deg) translateX(-8px) translateY(-4px); } 100% { transform:rotate(15deg) translateX(0); } }
@keyframes wcs-figure { 0% { transform:translateX(-50%) translateY(0) rotate(0); } 25% { transform:translateX(-50%) translateY(-3px) rotate(2deg); } 50% { transform:translateX(-50%) translateY(-6px) rotate(-2deg); } 75% { transform:translateX(-50%) translateY(-3px) rotate(3deg); } 100% { transform:translateX(-50%) translateY(0) rotate(0); } }
@keyframes wcs-arm { 0% { transform:rotate(-40deg); } 50% { transform:rotate(-20deg); } 100% { transform:rotate(-40deg); } }
@keyframes wcs-shadow { 0% { transform:scaleX(1); opacity:0.4; } 50% { transform:scaleX(0.7); opacity:0.6; } 100% { transform:scaleX(1); opacity:0.4; } }

/* warkworth-castle-hotspur-frosty-spirit */
.scn-warkworth-castle-hotspur-frosty-spirit {
  background:
    linear-gradient(180deg, #1c1a24 0%, #12101a 40%, #0a0810 100%),
    radial-gradient(ellipse at 50% 50%, #1e1a2e 0%, transparent 60%);
}
.scn-warkworth-castle-hotspur-frosty-spirit .wall-wcf { position:absolute; inset:0 0 20% 0; background:linear-gradient(180deg, #2a2835 0%, #1a1825 100%); border-radius:0 0 10% 10%; box-shadow:inset 0 8px 20px rgba(0,0,0,.6); animation:wcf-wall 15s ease-in-out infinite alternate; }
.scn-warkworth-castle-hotspur-frosty-spirit .floor-wcf { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #1a1825 0%, #0a0810 100%); border-radius:20% 20% 0 0; }
.scn-warkworth-castle-hotspur-frosty-spirit .window-frost-wcf { position:absolute; top:15%; left:40%; width:20%; height:30%; background:linear-gradient(135deg, #3a3850 0%, #2a2840 100%); border-radius:15%; border:4px solid #4a4860; box-shadow:inset 0 0 20px rgba(150,180,220,.2); animation:wcf-window 8s ease-in-out infinite alternate; }
.scn-warkworth-castle-hotspur-frosty-spirit .figure-wcf { position:absolute; bottom:16%; left:50%; width:45px; height:120px; background:linear-gradient(180deg, #1a1a30 0%, #0e0e20 100%); border-radius:30% 30% 35% 35% / 40% 40% 50% 50%; transform:translateX(-50%); animation:wcf-figure 6s ease-in-out infinite; }
.scn-warkworth-castle-hotspur-frosty-spirit .breath-wcf { position:absolute; bottom:38%; left:48%; width:30px; height:20px; background:radial-gradient(ellipse, rgba(200,220,240,.3) 0%, transparent 70%); filter:blur(3px); animation:wcf-breath 2s ease-in-out infinite; }
.scn-warkworth-castle-hotspur-frosty-spirit .candle-wcf { position:absolute; bottom:32%; left:30%; width:8px; height:18px; background:linear-gradient(180deg, #805020 0%, #503010 100%); border-radius:20%; animation:wcf-candle 2s ease-in-out infinite alternate; }
.scn-warkworth-castle-hotspur-frosty-spirit .shadow-wcf { position:absolute; bottom:16%; left:35%; width:70px; height:40px; background:radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); filter:blur(6px); animation:wcf-shadow 6s ease-in-out infinite; }
.scn-warkworth-castle-hotspur-frosty-spirit .chair-wcf { position:absolute; bottom:16%; left:30%; width:50px; height:80px; background:linear-gradient(180deg, #2a2818 0%, #1a180a 100%); border-radius:20% 20% 10% 10%; box-shadow:0 4px 6px rgba(0,0,0,.5); animation:wcf-chair 4s ease-in-out infinite; }
@keyframes wcf-wall { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.75; } }
@keyframes wcf-window { 0% { opacity:0.8; filter:blur(1px); } 50% { opacity:1; filter:blur(2px); } 100% { opacity:0.85; filter:blur(1px); } }
@keyframes wcf-figure { 0% { transform:translateX(-50%) translateY(0) rotate(0); } 25% { transform:translateX(-50%) translateY(-2px) rotate(1deg); } 50% { transform:translateX(-50%) translateY(-5px) rotate(-2deg); } 75% { transform:translateX(-50%) translateY(-2px) rotate(2deg); } 100% { transform:translateX(-50%) translateY(0) rotate(0); } }
@keyframes wcf-breath { 0% { transform:scale(1) translateX(0); opacity:0.3; } 50% { transform:scale(1.5) translateX(10px); opacity:0.6; } 100% { transform:scale(1) translateX(0); opacity:0.3; } }
@keyframes wcf-candle { 0% { transform:translateY(0) scaleY(1); opacity:0.6; } 100% { transform:translateY(-3px) scaleY(1.1); opacity:0.9; } }
@keyframes wcf-shadow { 0% { transform:scaleX(1); opacity:0.5; } 50% { transform:scaleX(0.8); opacity:0.7; } 100% { transform:scaleX(1); opacity:0.5; } }
@keyframes wcf-chair { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(0); } }

/* london-palace-welsh-news (dim interior, tense) */
.scn-london-palace-welsh-news {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 40%, #0e0806 100%), radial-gradient(ellipse at 30% 80%, #4a3a2a 0%, transparent 60%);
}
.scn-london-palace-welsh-news .wall-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a1410 100%);
  animation: lpw1-wall 12s ease-in-out infinite alternate;
}
.scn-london-palace-welsh-news .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(0deg, #1a1210 0%, #2a1e14 100%);
  border-radius: 80% 80% 0 0 / 30% 30% 0 0;
  animation: lpw1-floor 18s ease-in-out infinite alternate;
}
.scn-london-palace-welsh-news .throne {
  position: absolute; bottom: 42%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.6);
}
.scn-london-palace-welsh-news .king {
  position: absolute; bottom: 42%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%) translateY(-18px);
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lpw1-king 4s ease-in-out infinite alternate;
}
.scn-london-palace-welsh-news .messenger {
  position: absolute; bottom: 28%; right: 20%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lpw1-messenger 6s ease-in-out infinite;
}
.scn-london-palace-welsh-news .torch-glow {
  position: absolute; bottom: 52%; left: 28%; width: 10px; height: 14px;
  background: radial-gradient(circle, #f0a040 0%, #a06020 60%, transparent 80%);
  border-radius: 50%; filter: blur(4px);
  animation: lpw1-torch 1.5s ease-in-out infinite alternate;
  box-shadow: 0 0 30px 8px rgba(240,160,64,0.5);
}
.scn-london-palace-welsh-news .window-pane {
  position: absolute; top: 18%; right: 12%; width: 50px; height: 60px;
  background: linear-gradient(135deg, rgba(100,80,60,0.3) 0%, rgba(40,30,20,0.6) 100%);
  border: 2px solid #2a1e14;
  border-radius: 4%;
  animation: lpw1-window 20s ease-in-out infinite alternate;
}
@keyframes lpw1-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes lpw1-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes lpw1-king { 0% { transform: translateX(-50%) translateY(-18px) rotate(0deg) } 50% { transform: translateX(-48%) translateY(-20px) rotate(2deg) } 100% { transform: translateX(-52%) translateY(-18px) rotate(-1deg) } }
@keyframes lpw1-messenger { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-8px) rotate(-3deg) } 50% { transform: translateX(-16px) rotate(0deg) } 75% { transform: translateX(-8px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lpw1-torch { 0% { opacity:0.6; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.7; transform: scale(1) } }
@keyframes lpw1-window { 0% { filter: brightness(0.6) } 50% { filter: brightness(0.8) } 100% { filter: brightness(0.5) } }

/* london-palace-welsh-atrocity (dark, dim interior) */
.scn-london-palace-welsh-atrocity {
  background: linear-gradient(180deg, #0e080c 0%, #1a1014 50%, #0a060a 100%), radial-gradient(ellipse at 40% 60%, #2a1a1e 0%, transparent 70%);
}
.scn-london-palace-welsh-atrocity .bg-deep {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a1216 0%, #0e080a 100%);
  animation: lpw2-bgdeep 30s ease-in-out infinite alternate;
}
.scn-london-palace-welsh-atrocity .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #0a0608 0%, #1a1012 100%);
  border-radius: 90% 70% 0 0 / 40% 30% 0 0;
}
.scn-london-palace-welsh-atrocity .fallen-shape {
  position: absolute; bottom: 15%; left: 35%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, #3a1a14 0%, #1a0a08 100%);
  border-radius: 60% 60% 40% 40% / 80% 80% 20% 20%;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.8);
  animation: lpw2-fallen 20s ease-in-out infinite;
}
.scn-london-palace-welsh-atrocity .standing-figure {
  position: absolute; bottom: 22%; left: 60%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #0e080a 0%, #060406 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: lpw2-stand 8s ease-in-out infinite alternate;
}
.scn-london-palace-welsh-atrocity .blood-stain {
  position: absolute; bottom: 16%; left: 38%; width: 18px; height: 10px;
  background: radial-gradient(ellipse, #5e1a1d 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: lpw2-blood 15s ease-in-out infinite;
}
.scn-london-palace-welsh-atrocity .faint-glow {
  position: absolute; bottom: 30%; left: 20%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(100,80,80,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: lpw2-glow 6s ease-in-out infinite alternate;
}
@keyframes lpw2-bgdeep { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes lpw2-fallen { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.05) rotate(3deg) } 100% { transform: scale(0.95) rotate(-2deg) } }
@keyframes lpw2-stand { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes lpw2-blood { 0% { filter: blur(2px); transform: scale(1) } 50% { filter: blur(4px); transform: scale(1.1) } 100% { filter: blur(3px); transform: scale(0.9) } }
@keyframes lpw2-glow { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.1 } }

/* london-palace-hotspur-news (bright interior, tense) */
.scn-london-palace-hotspur-news {
  background: linear-gradient(180deg, #f5e8d0 0%, #d4c4a8 40%, #b8a88a 100%), radial-gradient(ellipse at 60% 30%, #fff8e0 0%, transparent 60%);
}
.scn-london-palace-hotspur-news .bright-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8bca8 100%);
  animation: lph3-wall 12s ease-in-out infinite alternate;
}
.scn-london-palace-hotspur-news .sun-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #a89878 0%, #c8b898 100%);
  border-radius: 60% 40% 0 0 / 20% 15% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.1);
}
.scn-london-palace-hotspur-news .royal-figure {
  position: absolute; bottom: 38%; left: 30%; width: 40px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lph3-royal 5s ease-in-out infinite alternate;
}
.scn-london-palace-hotspur-news .herald {
  position: absolute; bottom: 38%; left: 70%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lph3-herald 3s ease-in-out infinite;
}
.scn-london-palace-hotspur-news .scroll {
  position: absolute; bottom: 48%; left: 72%; width: 12px; height: 6px;
  background: linear-gradient(135deg, #e8d8b0 0%, #b8a878 100%);
  border-radius: 20%;
  transform: rotate(30deg);
  animation: lph3-scroll 4s ease-in-out infinite alternate;
}
.scn-london-palace-hotspur-news .window-light {
  position: absolute; top: 10%; right: 8%; width: 70px; height: 90px;
  background: linear-gradient(135deg, rgba(255,240,200,0.6) 0%, rgba(255,255,255,0.2) 50%, rgba(200,180,140,0.1) 100%);
  border-radius: 2%;
  box-shadow: 0 0 40px 15px rgba(255,240,200,0.3);
  animation: lph3-light 10s ease-in-out infinite alternate;
}
.scn-london-palace-hotspur-news .flag {
  position: absolute; top: 8%; left: 10%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #a0461a 0%, #c8553d 50%, #a0461a 100%);
  border-radius: 0 30% 30% 0;
  transform-origin: left center;
  animation: lph3-flag 1.6s ease-in-out infinite alternate;
}
@keyframes lph3-wall { 0% { filter: brightness(0.95) } 50% { filter: brightness(1.05) } 100% { filter: brightness(1) } }
@keyframes lph3-royal { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 50% { transform: translateX(-48%) translateY(-3px) rotate(2deg) } 100% { transform: translateX(-52%) translateY(0) rotate(0deg) } }
@keyframes lph3-herald { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(-5deg) } 50% { transform: translateX(10px) rotate(0deg) } 75% { transform: translateX(5px) rotate(5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lph3-scroll { 0% { transform: rotate(25deg) scale(1) } 50% { transform: rotate(35deg) scale(1.1) } 100% { transform: rotate(25deg) scale(1) } }
@keyframes lph3-light { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes lph3-flag { 0% { transform: rotate(-15deg) } 100% { transform: rotate(15deg) } }

/* london-palace-news-uncertain (bright interior, tense) */
.scn-london-palace-news-uncertain {
  background: linear-gradient(180deg, #e8dcc8 0%, #d0c4b0 30%, #b8a898 100%), radial-gradient(ellipse at 70% 50%, #f5ecd0 0%, transparent 50%);
}
.scn-london-palace-news-uncertain .arch-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d4c8b4 0%, #b8ac98 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  animation: lpn4-arch 20s ease-in-out infinite alternate;
}
.scn-london-palace-news-uncertain .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #6a5e4e 0%, #4a3e2e 100%);
  border-radius: 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-london-palace-news-uncertain .map {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(135deg, #b8a878 0%, #a89868 30%, #8a7858 100%);
  border-radius: 2%;
  transform: perspective(200px) rotateX(10deg);
  animation: lpn4-map 12s ease-in-out infinite alternate;
}
.scn-london-palace-news-uncertain .figure-left {
  position: absolute; bottom: 28%; left: 22%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lpn4-figleft 4s ease-in-out infinite alternate;
}
.scn-london-palace-news-uncertain .figure-right {
  position: absolute; bottom: 28%; right: 25%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lpn4-figright 5s ease-in-out infinite alternate;
}
.scn-london-palace-news-uncertain .window-light {
  position: absolute; top: 5%; left: 5%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 30% 20%, rgba(255,240,200,0.7) 0%, transparent 80%);
  border-radius: 2%;
  animation: lpn4-window 15s ease-in-out infinite alternate;
}
.scn-london-palace-news-uncertain .candle-glow {
  position: absolute; bottom: 32%; left: 48%; width: 6px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,208,128,0.6);
  animation: lpn4-candle 2s ease-in-out infinite alternate;
}
@keyframes lpn4-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(0.99) } }
@keyframes lpn4-map { 0% { transform: perspective(200px) rotateX(8deg) } 50% { transform: perspective(200px) rotateX(12deg) } 100% { transform: perspective(200px) rotateX(10deg) } }
@keyframes lpn4-figleft { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lpn4-figright { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-3px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lpn4-window { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes lpn4-candle { 0% { opacity:0.7; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.8; transform: scale(0.95) } }

.scn-prince-apartment-pox-hostess {
  background: linear-gradient(180deg, #1a1410 0%, #3a2a1f 40%, #2c1e18 100%), radial-gradient(ellipse at 50% 30%, #6b4a35 0%, transparent 60%);
}
.scn-prince-apartment-pox-hostess .pap-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2c1e18 0%, transparent 50%); animation: pap-bg 14s ease-in-out infinite alternate;
}
.scn-prince-apartment-pox-hostess .pap-hostess {
  position: absolute; bottom: 25%; left: 55%; width: 40px; height: 80px; background: linear-gradient(180deg, #5a3e2a 0%, #3e2a1c 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pap-hostess 6s ease-in-out infinite;
}
.scn-prince-apartment-pox-hostess .pap-table {
  position: absolute; bottom: 18%; left: 20%; width: 120px; height: 20px; background: linear-gradient(90deg, #4a3528 0%, #6b4a35 50%, #4a3528 100%); border-radius: 4px; box-shadow: 0 4px 6px #00000033;
}
.scn-prince-apartment-pox-hostess .pap-mug {
  position: absolute; bottom: 28%; left: 30%; width: 14px; height: 24px; background: radial-gradient(ellipse at 50% 30%, #8b6b4a 0%, #5a3e2a 100%); border-radius: 6px 6px 4px 4px; animation: pap-mug 4s ease-in-out infinite;
}
.scn-prince-apartment-pox-hostess .pap-coin {
  position: absolute; bottom: 26%; left: 22%; width: 10px; height: 10px; background: radial-gradient(circle, #c09a4a 0%, #8b7030 100%); border-radius: 50%; box-shadow: 0 0 4px #c09a4a; animation: pap-coin 3s ease-in-out infinite alternate;
}
.scn-prince-apartment-pox-hostess .pap-candle {
  position: absolute; bottom: 30%; left: 45%; width: 6px; height: 18px; background: linear-gradient(180deg, #f0c87a 0%, #c09a4a 100%); border-radius: 2px; animation: pap-candleflicker 2s ease-in-out infinite alternate;
}
.scn-prince-apartment-pox-hostess .pap-glint {
  position: absolute; bottom: 32%; left: 44%; width: 4px; height: 4px; background: #fff6d0; border-radius: 50%; box-shadow: 0 0 8px 3px #fff6d080; animation: pap-glint 1.5s ease-in-out infinite alternate;
}
@keyframes pap-bg { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes pap-hostess { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pap-mug { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes pap-coin { 0% { transform: scale(1); opacity: .7; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(1); opacity: .7; } }
@keyframes pap-candleflicker { 0% { height: 16px; opacity: .9; } 50% { height: 20px; opacity: 1; } 100% { height: 16px; opacity: .9; } }
@keyframes pap-glint { 0% { transform: translate(0, 0) scale(1); opacity: .5; } 50% { transform: translate(2px, -2px) scale(1.5); opacity: 1; } 100% { transform: translate(0, 0) scale(1); opacity: .5; } }

.scn-prince-apartment-gallows-king {
  background: linear-gradient(180deg, #1e1e30 0%, #2a2a44 40%, #151520 100%), radial-gradient(ellipse at 70% 50%, #3a3a5a 0%, transparent 60%);
}
.scn-prince-apartment-gallows-king .pag-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #151520 0%, transparent 70%); animation: pag-bg 18s ease-in-out infinite alternate;
}
.scn-prince-apartment-gallows-king .pag-window {
  position: absolute; top: 5%; right: 8%; width: 80px; height: 100px; background: #2a3a4a; border-radius: 10px; box-shadow: inset 0 0 20px #00000080; overflow: hidden; animation: pag-window 20s ease-in-out infinite alternate;
}
.scn-prince-apartment-gallows-king .pag-gallows {
  position: absolute; top: 8%; right: 14%; width: 6px; height: 60px; background: #4a3a2a; transform-origin: top center; animation: pag-gallows 5s ease-in-out infinite;
}
.scn-prince-apartment-gallows-king .pag-noose {
  position: absolute; top: 52%; right: 17%; width: 12px; height: 12px; background: #5a4a3a; border-radius: 50% 50% 0 50%; transform: rotate(20deg); animation: pag-noose 5s ease-in-out infinite;
}
.scn-prince-apartment-gallows-king .pag-king {
  position: absolute; bottom: 10%; left: 20%; width: 30px; height: 70px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; animation: pag-king 8s ease-in-out infinite alternate;
}
.scn-prince-apartment-gallows-king .pag-crown {
  position: absolute; bottom: 70%; left: 22%; width: 20px; height: 12px; background: linear-gradient(180deg, #c09a4a 0%, #8b7030 100%); clip-path: polygon(10% 100%, 30% 20%, 50% 50%, 70% 20%, 90% 100%); animation: pag-crown 3s ease-in-out infinite alternate;
}
.scn-prince-apartment-gallows-king .pag-shadow {
  position: absolute; bottom: 8%; left: 15%; width: 60px; height: 4px; background: #00000080; filter: blur(3px); animation: pag-shadow 8s ease-in-out infinite alternate;
}
@keyframes pag-bg { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .6; } }
@keyframes pag-window { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes pag-gallows { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes pag-noose { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(2px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes pag-king { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pag-crown { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(1); } }
@keyframes pag-shadow { 0% { transform: scaleX(1); opacity: .5; } 50% { transform: scaleX(1.2); opacity: .7; } 100% { transform: scaleX(1); opacity: .5; } }

.scn-prince-apartment-hang-thou {
  background: linear-gradient(180deg, #1a1818 0%, #2c2222 30%, #1a1414 100%), radial-gradient(ellipse at 50% 20%, #3a2828 0%, transparent 70%);
}
.scn-prince-apartment-hang-thou .pah-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1414 0%, transparent 60%); animation: pah-bg 16s ease-in-out infinite alternate;
}
.scn-prince-apartment-hang-thou .pah-rope {
  position: absolute; top: 2%; left: 50%; width: 4px; height: 60%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); transform: translateX(-50%); animation: pah-rope 4s ease-in-out infinite;
}
.scn-prince-apartment-hang-thou .pah-noose {
  position: absolute; top: 55%; left: 50%; width: 20px; height: 20px; background: conic-gradient(from 0deg, #5a4a3a 0deg, #3a2a1a 60deg, #5a4a3a 120deg, #4a3a2a 180deg, #5a4a3a 240deg, #3a2a1a 300deg, #5a4a3a 360deg); border-radius: 50%; transform: translate(-50%, -50%) rotate(0deg); animation: pah-noose 3s ease-in-out infinite alternate;
}
.scn-prince-apartment-hang-thou .pah-thief {
  position: absolute; bottom: 18%; left: 35%; width: 24px; height: 50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: pah-thief 5s ease-in-out infinite;
}
.scn-prince-apartment-hang-thou .pah-judge {
  position: absolute; bottom: 20%; right: 20%; width: 30px; height: 60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pah-judge 7s ease-in-out infinite alternate;
}
.scn-prince-apartment-hang-thou .pah-stool {
  position: absolute; bottom: 15%; left: 45%; width: 30px; height: 10px; background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 4px 6px #00000040; animation: pah-stool 4s ease-in-out infinite;
}
@keyframes pah-bg { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes pah-rope { 0% { height: 58%; transform: translateX(-50%) rotate(0deg); } 50% { height: 62%; transform: translateX(-50%) rotate(1deg); } 100% { height: 58%; transform: translateX(-50%) rotate(0deg); } }
@keyframes pah-noose { 0% { transform: translate(-50%, -50%) rotate(0deg) scale(1); } 50% { transform: translate(-50%, -50%) rotate(10deg) scale(1.05); } 100% { transform: translate(-50%, -50%) rotate(0deg) scale(1); } }
@keyframes pah-thief { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pah-judge { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes pah-stool { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(1); } }

.scn-prince-apartment-obtaining-suits {
  background: linear-gradient(180deg, #1a1a14 0%, #2c2822 40%, #1e1c18 100%), radial-gradient(ellipse at 50% 20%, #3a342a 0%, transparent 60%);
}
.scn-prince-apartment-obtaining-suits .pao-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1e1c18 0%, transparent 70%); animation: pao-bg 20s ease-in-out infinite alternate;
}
.scn-prince-apartment-obtaining-suits .pao-table {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 30px; background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 50%, #3a2a1a 100%); border-radius: 6px; box-shadow: 0 6px 10px #00000040;
}
.scn-prince-apartment-obtaining-suits .pao-lute {
  position: absolute; bottom: 32%; left: 18%; width: 16px; height: 36px; background: radial-gradient(ellipse at 50% 40%, #c09a4a 0%, #8b7030 100%); border-radius: 50%; transform: rotate(-15deg); box-shadow: inset -2px -2px 4px #00000040; animation: pao-lute 6s ease-in-out infinite alternate;
}
.scn-prince-apartment-obtaining-suits .pao-bagpipe {
  position: absolute; bottom: 30%; left: 60%; width: 40px; height: 20px; background: linear-gradient(135deg, #6b4a35 0%, #4a3020 100%); border-radius: 20px 20px 10px 10px; box-shadow: inset 0 2px 4px #00000040; animation: pao-bagpipe 8s ease-in-out infinite;
}
.scn-prince-apartment-obtaining-suits .pao-cat {
  position: absolute; bottom: 22%; left: 40%; width: 20px; height: 30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pao-cat 4s ease-in-out infinite;
}
.scn-prince-apartment-obtaining-suits .pao-bearrug {
  position: absolute; bottom: 10%; left: 15%; width: 120px; height: 40px; background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 30%, #4a3a2a 70%, #3a2a1a 100%); border-radius: 20px 20px 40px 40px; box-shadow: 0 2px 4px #00000040; transform: scaleX(0.95); animation: pao-bearrug 10s ease-in-out infinite alternate;
}
.scn-prince-apartment-obtaining-suits .pao-coat {
  position: absolute; bottom: 35%; left: 75%; width: 24px; height: 40px; background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%); border-radius: 8px 8px 4px 4px; transform: rotate(5deg); box-shadow: 0 2px 4px #00000040; animation: pao-coat 5s ease-in-out infinite;
}
.scn-prince-apartment-obtaining-suits .pao-glint {
  position: absolute; bottom: 37%; left: 73%; width: 4px; height: 4px; background: #fff6d0; border-radius: 50%; box-shadow: 0 0 8px 3px #fff6d080; animation: pao-glint 2s ease-in-out infinite alternate;
}
@keyframes pao-bg { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes pao-lute { 0% { transform: rotate(-15deg) scale(1); } 50% { transform: rotate(-10deg) scale(1.03); } 100% { transform: rotate(-15deg) scale(1); } }
@keyframes pao-bagpipe { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pao-cat { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(6px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pao-bearrug { 0% { transform: scaleX(0.95); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.95); } }
@keyframes pao-coat { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes pao-glint { 0% { opacity: .3; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: .3; transform: scale(0.8); } }

.scn-bangor-archdeacon-house-diseased-nature {
  background: 
    linear-gradient(180deg, #fff8e7 0%, #f5e6ca 40%, #e6d5b8 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e7 0%, #dcc9a6 70%);
}
.scn-bangor-archdeacon-house-diseased-nature .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f7eed5 0%, #ede0c0 100%);
  border-bottom: 4px solid #c0a878;
  animation: dis-wall 12s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-diseased-nature .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a88d5f 0%, #7a6342 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.15);
}
.scn-bangor-archdeacon-house-diseased-nature .table {
  position: absolute; bottom: 18%; left: 30%; width: 140px; height: 8px;
  background: #9e7e5a; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: dis-table 6s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-diseased-nature .vase {
  position: absolute; bottom: 22%; left: 38%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #b8946a 0%, #8a6b44 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: dis-vase 8s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-diseased-nature .vine-1,
.scn-bangor-archdeacon-house-diseased-nature .vine-2 {
  position: absolute; bottom: 26%; left: 36%;
  width: 6px; height: 60px; background: #6b8a5a;
  border-radius: 40%; transform-origin: bottom center;
}
.scn-bangor-archdeacon-house-diseased-nature .vine-1 {
  left: 36%; animation: dis-vine1 5s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-diseased-nature .vine-2 {
  left: 42%; animation: dis-vine2 7s ease-in-out infinite; animation-delay: -2s;
}
.scn-bangor-archdeacon-house-diseased-nature .teapot {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 28px;
  background: radial-gradient(ellipse at 50% 40%, #f0d68a 0%, #d6b060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: translateX(-50%); box-shadow: 0 4px 10px rgba(0,0,0,0.25);
  animation: dis-teapot 4s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-diseased-nature .shadow {
  position: absolute; bottom: 16%; left: 35%; width: 100px; height: 6px;
  background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(4px);
  animation: dis-shadow 6s ease-in-out infinite;
}
@keyframes dis-wall { 0% { opacity:1 } 50% { opacity:0.9 } 100% { opacity:1 } }
@keyframes dis-table { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-2deg) translateY(-2px) } }
@keyframes dis-vase { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(4deg) scaleY(1.05) } 100% { transform: rotate(-2deg) scaleY(0.95) } }
@keyframes dis-vine1 { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-6px) } 100% { transform: rotate(-5deg) translateY(2px) } }
@keyframes dis-vine2 { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(-20deg) translateY(-8px) } 100% { transform: rotate(5deg) translateY(3px) } }
@keyframes dis-teapot { 0%,100% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(-10deg) translateY(-3px) } 50% { transform: translateX(-50%) rotate(0deg) translateY(-6px) } 75% { transform: translateX(-50%) rotate(10deg) translateY(-3px) } }
@keyframes dis-shadow { 0%,100% { opacity:0.2 } 50% { opacity:0.4 } }

.scn-bangor-archdeacon-house-crossings {
  background:
    linear-gradient(180deg, #f7e0c0 0%, #e8c890 30%, #d6a860 100%),
    radial-gradient(ellipse at 80% 20%, #ffd680 0%, transparent 70%);
}
.scn-bangor-archdeacon-house-crossings .room-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #edd5a0 0%, #dbb67a 100%);
  animation: crs-bg 8s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-crossings .doorway {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 120px;
  background: #2a1a10; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: crs-door 12s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-crossings .figure {
  position: absolute; bottom: 22%; left: 34%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: crs-figure 5s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-crossings .lantern {
  position: absolute; bottom: 28%; left: 45%; width: 10px; height: 14px;
  background: radial-gradient(circle, #ffd060 0%, #f0a030 60%);
  border-radius: 20%; box-shadow: 0 0 20px 6px #f0a030;
  animation: crs-lantern 3s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-crossings .shadow-figure {
  position: absolute; bottom: 20%; left: 20%; width: 50px; height: 80px;
  background: rgba(0,0,0,0.3); filter: blur(8px);
  transform: skewX(-10deg); animation: crs-shadow 5s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-crossings .crack {
  position: absolute; top: 10%; left: 60%; width: 4px; height: 40px;
  background: #2a1a10; transform: rotate(20deg);
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
  animation: crs-crack 15s linear infinite alternate;
}
.scn-bangor-archdeacon-house-crossings .goat-shadow {
  position: absolute; bottom: 18%; right: 20%; width: 60px; height: 40px;
  background: rgba(0,0,0,0.25); filter: blur(6px);
  border-radius: 30% 40% 20% 30%; transform: rotate(-10deg);
  animation: crs-goat 7s ease-in-out infinite;
}
@keyframes crs-bg { 0% { opacity:1 } 50% { opacity:0.8 } 100% { opacity:0.95 } }
@keyframes crs-door { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.95) } }
@keyframes crs-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(8px) rotate(2deg) } 50% { transform: translateX(16px) rotate(0deg) } 75% { transform: translateX(8px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes crs-lantern { 0% { box-shadow: 0 0 12px 4px #f0a030; opacity:0.9 } 50% { box-shadow: 0 0 30px 10px #ffd060; opacity:1 } 100% { box-shadow: 0 0 18px 6px #f0a030; opacity:0.85 } }
@keyframes crs-shadow { 0%,100% { transform: skewX(-10deg) translateX(0) } 50% { transform: skewX(-10deg) translateX(10px) } }
@keyframes crs-crack { 0% { opacity:0.4 } 50% { opacity:0.9 } 100% { opacity:0.5 } }
@keyframes crs-goat { 0% { transform: rotate(-10deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.1) } 100% { transform: rotate(-15deg) scaleY(0.9) } }

.scn-bangor-archdeacon-house-where-is-he {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #e3cfb0 40%, #c9a87a 100%),
    radial-gradient(ellipse at 30% 40%, #fef0d0 0%, transparent 60%);
}
.scn-bangor-archdeacon-house-where-is-he .study-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #dcc9a6 0%, #b89b72 100%);
  border-bottom: 6px solid #7a6342;
}
.scn-bangor-archdeacon-house-where-is-he .bookshelf {
  position: absolute; bottom: 30%; left: 10%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #6a4f2e 0%, #4a341a 100%);
  border-radius: 4px; box-shadow: 4px 4px 10px rgba(0,0,0,0.3);
  animation: whe-shelf 20s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-where-is-he .globe {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle at 40% 30%, #c0d0c0 0%, #6a8a6a 50%, #3a5a3a 100%);
  border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: whe-globe 12s linear infinite;
}
.scn-bangor-archdeacon-house-where-is-he .figure-reading {
  position: absolute; bottom: 22%; left: 34%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: whe-figure 8s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-where-is-he .candle {
  position: absolute; bottom: 28%; left: 42%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0d080 0%, #c09050 100%);
  border-radius: 20%; box-shadow: 0 0 12px 4px #f0c060;
  animation: whe-candle 3s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-where-is-he .map {
  position: absolute; top: 12%; right: 10%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #d6c8a0 0%, #b8a478 50%, #9c8a5a 100%);
  border-radius: 4px; transform: rotate(2deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.15);
  animation: whe-map 25s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-where-is-he .curtain {
  position: absolute; top: 0; left: 0; width: 40px; height: 100%;
  background: linear-gradient(180deg, #c09a6a 0%, #8a6a3a 100%);
  border-radius: 0 4px 4px 0; filter: blur(1px);
  animation: whe-curtain 10s ease-in-out infinite alternate;
}
@keyframes whe-shelf { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes whe-globe { 0% { transform: rotate(0deg) } 25% { transform: rotate(90deg) } 50% { transform: rotate(180deg) } 75% { transform: rotate(270deg) } 100% { transform: rotate(360deg) } }
@keyframes whe-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(1px) rotate(-1deg) } }
@keyframes whe-candle { 0% { box-shadow: 0 0 8px 2px #f0c060; opacity:0.9 } 50% { box-shadow: 0 0 20px 6px #f0c060; opacity:1 } 100% { box-shadow: 0 0 12px 3px #f0c060; opacity:0.8 } }
@keyframes whe-map { 0% { transform: rotate(2deg) scaleX(1) } 50% { transform: rotate(4deg) scaleX(1.05) } 100% { transform: rotate(1deg) scaleX(0.98) } }
@keyframes whe-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(-2px) } }

.scn-bangor-archdeacon-house-peace-cousin {
  background:
    linear-gradient(180deg, #fef8e8 0%, #f0e2cc 40%, #d4c2a6 100%),
    radial-gradient(ellipse at 60% 30%, #fff8e8 0%, transparent 60%);
}
.scn-bangor-archdeacon-house-peace-cousin .room-light {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #f5edd5 0%, #e8dcc0 100%);
  animation: pea-room 15s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-peace-cousin .window-frame {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 130px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a88d5f 0%, #7a6342 100%);
  border: 6px solid #5a4a2a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
}
.scn-bangor-archdeacon-house-peace-cousin .sea-view {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 88px; height: 108px; background: linear-gradient(180deg, #b0d8e8 0%, #68a0c0 40%, #4a7a9a 100%);
  animation: pea-sea 12s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-peace-cousin .figure-sitting {
  position: absolute; bottom: 24%; left: 36%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: pea-figure 6s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-peace-cousin .teacup {
  position: absolute; bottom: 26%; left: 44%; width: 18px; height: 14px;
  background: radial-gradient(ellipse at 50% 30%, #f0d8a0 0%, #d0b070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
  animation: pea-cup 8s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-peace-cousin .bird {
  position: absolute; top: 30%; right: 20%; width: 16px; height: 10px;
  background: #6a7a4a; border-radius: 50% 50% 30% 30%;
  animation: pea-bird 10s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-peace-cousin .curtain-soft {
  position: absolute; top: 0; right: 0; width: 30px; height: 60%;
  background: linear-gradient(180deg, #e0d0b0 0%, #c9b090 100%);
  border-radius: 4px 0 0 4px; filter: blur(2px);
  animation: pea-curtain 18s ease-in-out infinite alternate;
}
@keyframes pea-room { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes pea-sea { 0% { background-position: 0% 0% } 50% { background-position: 2% 4% } 100% { background-position: -2% -2% } }
@keyframes pea-figure { 0% { transform: translateY(0) rotate(0deg) } 33% { transform: translateY(-2px) rotate(1deg) } 66% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pea-cup { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) scaleY(1.02) } 100% { transform: translateY(1px) scaleY(0.98) } }
@keyframes pea-bird { 0% { transform: translate(0, 0) } 25% { transform: translate(10px, -5px) } 50% { transform: translate(20px, 0) } 75% { transform: translate(10px, 5px) } 100% { transform: translate(0, 0) } }
@keyframes pea-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.95) } }

/* Scene 1: highway-gadshill-undone */
.scn-highway-gadshill-undone {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #3a2a4a 100%),
              radial-gradient(ellipse at 30% 20%, #2c2a5e 0%, transparent 70%);
}
.scn-highway-gadshill-undone .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #24245a 0%, #1c1c3a 100%);
  animation: hg1-sky 20s ease-in-out infinite alternate;
}
.scn-highway-gadshill-undone .moon {
  position: absolute; top: 10%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle at 35% 35%, #e8e0c0 0%, #b8a880 100%);
  border-radius: 50%; box-shadow: 0 0 40px 10px rgba(200,180,120,0.3);
  animation: hg1-moon 8s ease-in-out infinite alternate;
}
.scn-highway-gadshill-undone .tree-left {
  position: absolute; bottom: 40%; left: 5%; width: 30px; height: 150px;
  background: linear-gradient(0deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 10% 10%; transform: rotate(5deg);
  box-shadow: inset -5px 0 10px rgba(0,0,0,0.5);
  animation: hg1-tree 12s ease-in-out infinite;
}
.scn-highway-gadshill-undone .tree-right {
  position: absolute; bottom: 35%; right: 8%; width: 25px; height: 180px;
  background: linear-gradient(0deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 20% 20% 5% 5%; transform: rotate(-3deg);
  box-shadow: inset 5px 0 10px rgba(0,0,0,0.5);
  animation: hg1-tree 14s ease-in-out infinite reverse;
}
.scn-highway-gadshill-undone .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1e2a1e 0%, #0e1a0a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
}
.scn-highway-gadshill-undone .lantern-glow {
  position: absolute; bottom: 42%; left: 45%; width: 20px; height: 30px;
  background: radial-gradient(circle, #ffb840 0%, #a06020 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 50px 20px rgba(255,184,64,0.4), 0 0 100px 40px rgba(255,184,64,0.2);
  animation: hg1-lantern 2s ease-in-out infinite alternate;
}
.scn-highway-gadshill-undone .thief-panic {
  position: absolute; bottom: 38%; left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: hg1-panic 1.8s ease-in-out infinite;
}
.scn-highway-gadshill-undone .bound-victim {
  position: absolute; bottom: 35%; left: 35%; width: 40px; height: 30px;
  background: #2a1a1a; border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  transform: rotate(10deg); animation: hg1-bound 4s ease-in-out infinite;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
}
.scn-highway-gadshill-undone .sack-loot {
  position: absolute; bottom: 38%; left: 60%; width: 30px; height: 25px;
  background: #4a3a2a; border-radius: 40% 40% 20% 20%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.4);
  animation: hg1-sack 3s ease-in-out infinite alternate;
}
@keyframes hg1-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hg1-moon { 0% { transform: translateX(0) scale(1); } 100% { transform: translateX(10px) scale(1.05); } }
@keyframes hg1-tree { 0%,100% { transform: rotate(5deg); } 50% { transform: rotate(8deg); } }
@keyframes hg1-lantern { 0% { opacity: 0.6; box-shadow: 0 0 30px 10px rgba(255,184,64,0.3); } 100% { opacity: 1; box-shadow: 0 0 60px 20px rgba(255,184,64,0.6); } }
@keyframes hg1-panic { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(10deg); } 75% { transform: translateX(-50%) rotate(-10deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes hg1-bound { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-3px); } }
@keyframes hg1-sack { 0% { transform: scale(1); } 100% { transform: scale(1.1); } }

/* Scene 2: highway-gadshill-hal-poins-return */
.scn-highway-gadshill-hal-poins-return {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 60%, #4a3a5a 100%),
              radial-gradient(ellipse at 50% 80%, #2a2a4e 0%, transparent 70%);
}
.scn-highway-gadshill-hal-poins-return .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #24245a 0%, #1c1c3a 100%);
  animation: hg2-sky 25s ease-in-out infinite alternate;
}
.scn-highway-gadshill-hal-poins-return .moon {
  position: absolute; top: 8%; left: 15%; width: 45px; height: 45px;
  background: radial-gradient(circle at 40% 40%, #e8e0c0 0%, #b8a880 100%);
  border-radius: 50%; box-shadow: 0 0 50px 15px rgba(200,180,120,0.25);
  animation: hg2-moon 10s ease-in-out infinite alternate;
}
.scn-highway-gadshill-hal-poins-return .road {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-highway-gadshill-hal-poins-return .bush-left {
  position: absolute; bottom: 35%; left: 10%; width: 80px; height: 50px;
  background: radial-gradient(ellipse at 50% 80%, #1e3a1e 0%, #0e1a0a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  filter: blur(2px);
  animation: hg2-bush 6s ease-in-out infinite;
}
.scn-highway-gadshill-hal-poins-return .bush-right {
  position: absolute; bottom: 32%; right: 12%; width: 90px; height: 60px;
  background: radial-gradient(ellipse at 50% 80%, #1e3a1e 0%, #0e1a0a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  filter: blur(2px);
  animation: hg2-bush 8s ease-in-out infinite reverse;
}
.scn-highway-gadshill-hal-poins-return .hal-poins {
  position: absolute; bottom: 33%; left: 25%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 10px 2px rgba(0,0,0,0.5);
  transform: scaleX(0.8);
  animation: hg2-hide 4s ease-in-out infinite;
}
.scn-highway-gadshill-hal-poins-return .thieves-approach {
  position: absolute; bottom: 30%; right: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  animation: hg2-approach 6s ease-in-out infinite;
}
.scn-highway-gadshill-hal-poins-return .shadow-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #0e0e1e 0%, #06060e 100%);
  border-radius: 70% 50% 0 0 / 40% 30% 0 0;
  opacity: 0.8;
}
@keyframes hg2-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hg2-moon { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-5px) scale(1.03); } }
@keyframes hg2-bush { 0%,100% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(2deg); } }
@keyframes hg2-hide { 0%,100% { transform: scaleX(0.8) translateY(0); } 50% { transform: scaleX(0.6) translateY(-2px); } }
@keyframes hg2-approach { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-15px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* Scene 3: highway-gadshill-thieves-sharing */
.scn-highway-gadshill-thieves-sharing {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #4a3a5a 100%),
              radial-gradient(ellipse at 50% 60%, #2a2a4e 0%, transparent 70%);
}
.scn-highway-gadshill-thieves-sharing .bg-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 100%);
  animation: hg3-bg 20s ease-in-out infinite alternate;
}
.scn-highway-gadshill-thieves-sharing .ground-close {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 80% 60% 0 0 / 40% 30% 0 0;
}
.scn-highway-gadshill-thieves-sharing .loot-pile {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #c8a040 0%, #8a6a20 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  box-shadow: 0 0 20px 5px rgba(200,160,64,0.3);
  animation: hg3-loot 4s ease-in-out infinite alternate;
}
.scn-highway-gadshill-thieves-sharing .lantern {
  position: absolute; bottom: 35%; left: 35%; width: 15px; height: 25px;
  background: radial-gradient(circle, #ffb840 0%, #a06020 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 40px 15px rgba(255,184,64,0.5), 0 0 80px 30px rgba(255,184,64,0.2);
  animation: hg3-lantern 2s ease-in-out infinite alternate;
}
.scn-highway-gadshill-thieves-sharing .thief-1 {
  position: absolute; bottom: 28%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform: rotate(-15deg);
  animation: hg3-thief 3s ease-in-out infinite;
}
.scn-highway-gadshill-thieves-sharing .thief-2 {
  position: absolute; bottom: 28%; left: 55%; width: 40px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform: rotate(10deg);
  animation: hg3-thief 4s ease-in-out infinite reverse;
}
.scn-highway-gadshill-thieves-sharing .thief-3 {
  position: absolute; bottom: 30%; left: 42%; width: 45px; height: 65px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  animation: hg3-falstaff 5s ease-in-out infinite;
}
.scn-highway-gadshill-thieves-sharing .hal-and-poins {
  position: absolute; bottom: 30%; right: 15%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform: scaleX(-1);
  animation: hg3-enter 2s ease-in-out infinite;
}
.scn-highway-gadshill-thieves-sharing .coin-sparkle {
  position: absolute; bottom: 33%; left: 48%; width: 8px; height: 8px;
  background: #ffd060; border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(255,208,96,0.6);
  animation: hg3-sparkle 1.5s ease-in-out infinite alternate;
}
@keyframes hg3-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hg3-loot { 0% { transform: translateX(-50%) scale(1); } 100% { transform: translateX(-50%) scale(1.1); } }
@keyframes hg3-lantern { 0% { opacity: 0.5; box-shadow: 0 0 30px 10px rgba(255,184,64,0.3); } 100% { opacity: 1; box-shadow: 0 0 50px 20px rgba(255,184,64,0.6); } }
@keyframes hg3-thief { 0%,100% { transform: rotate(-15deg); } 50% { transform: rotate(-8deg); } }
@keyframes hg3-falstaff { 0%,100% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(2deg); } }
@keyframes hg3-enter { 0% { transform: scaleX(-1) translateX(0); } 50% { transform: scaleX(-1) translateX(-10px); } 100% { transform: scaleX(-1) translateX(0); } }
@keyframes hg3-sparkle { 0% { opacity: 0.3; transform: scale(0.8); } 100% { opacity: 1; transform: scale(1.2); } }

/* Scene 4: highway-gadshill-got-with-ease */
.scn-highway-gadshill-got-with-ease {
  background: linear-gradient(180deg, #141428 0%, #24244a 60%, #3a2a4a 100%),
              radial-gradient(ellipse at 70% 20%, #2a2a5a 0%, transparent 70%);
}
.scn-highway-gadshill-got-with-ease .sky-nite {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #141428 100%);
  animation: hg4-sky 30s ease-in-out infinite alternate;
}
.scn-highway-gadshill-got-with-ease .moon-hazy {
  position: absolute; top: 12%; right: 15%; width: 50px; height: 50px;
  background: radial-gradient(circle at 35% 35%, #d0c8a8 0%, #a09878 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(200,180,140,0.2), 0 0 120px 40px rgba(200,180,140,0.1);
  filter: blur(2px);
  animation: hg4-moon 12s ease-in-out infinite alternate;
}
.scn-highway-gadshill-got-with-ease .tree-trunk {
  position: absolute; bottom: 20%; left: 10%; width: 40px; height: 180px;
  background: linear-gradient(90deg, #2a1a1a 0%, #1a0a0a 50%, #2a1a1a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-5deg);
  box-shadow: inset 0 0 15px rgba(0,0,0,0.6);
  animation: hg4-tree 7s ease-in-out infinite;
}
.scn-highway-gadshill-got-with-ease .ground-moss {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 80% 60% 0 0 / 40% 30% 0 0;
}
.scn-highway-gadshill-got-with-ease .falstaff-fat {
  position: absolute; bottom: 30%; left: 30%; width: 70px; height: 90px;
  background: radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px 5px rgba(0,0,0,0.5);
  animation: hg4-falstaff 4s ease-in-out infinite;
}
.scn-highway-gadshill-got-with-ease .sweat-drop {
  position: absolute; bottom: 38%; left: 32%; width: 6px; height: 10px;
  background: radial-gradient(circle, #b0c0d0 0%, #8090a0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.8;
  animation: hg4-sweat 2s ease-in-out infinite;
}
.scn-highway-gadshill-got-with-ease .stick-sword {
  position: absolute; bottom: 28%; left: 40%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(25deg);
  transform-origin: bottom center;
  box-shadow: inset 0 0 4px rgba(0,0,0,0.5);
  animation: hg4-stick 5s ease-in-out infinite;
}
.scn-highway-gadshill-got-with-ease .breath-puff {
  position: absolute; bottom: 45%; left: 35%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,200,220,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: hg4-breath 3s ease-in-out infinite;
}
@keyframes hg4-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hg4-moon { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-8px) scale(1.02); } }
@keyframes hg4-tree { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(-8deg); } }
@keyframes hg4-falstaff { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes hg4-sweat { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 100% { transform: translateY(10px) scale(0.5); opacity: 0; } }
@keyframes hg4-stick { 0%,100% { transform: rotate(25deg); } 50% { transform: rotate(30deg); } }
@keyframes hg4-breath { 0% { transform: scale(1) translateX(0); opacity: 0.3; } 50% { transform: scale(1.5) translateX(-5px); opacity: 0.6; } 100% { transform: scale(1) translateX(0); opacity: 0.3; } }

/* Scene 1: london-palace-northumberland-scandal */
.scn-london-palace-northumberland-scandal {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a2a2a 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 80%);
}
.scn-london-palace-northumberland-scandal .wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #4a3a2a 100%);
  animation: ps1-wall 15s ease-in-out infinite alternate;
}
.scn-london-palace-northumberland-scandal .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0e 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.6);
}
.scn-london-palace-northumberland-scandal .pillar-left {
  position: absolute; bottom: 20%; left: 12%; width: 24px; height: 60%;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 40%, #5a4a3a 100%);
  border-radius: 6px;
  box-shadow: 0 0 20px rgba(0,0,0,.5);
  animation: ps1-pillar 10s ease-in-out infinite;
}
.scn-london-palace-northumberland-scandal .pillar-right {
  position: absolute; bottom: 20%; right: 12%; width: 24px; height: 60%;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 40%, #5a4a3a 100%);
  border-radius: 6px;
  box-shadow: 0 0 20px rgba(0,0,0,.5);
  animation: ps1-pillar 10s ease-in-out infinite reverse;
}
.scn-london-palace-northumberland-scandal .throne {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,.7);
  animation: ps1-throne 8s ease-in-out infinite;
}
.scn-london-palace-northumberland-scandal .kneeling {
  position: absolute; bottom: 22%; left: 42%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps1-kneel 6s ease-in-out infinite;
}
.scn-london-palace-northumberland-scandal .torch-left {
  position: absolute; bottom: 42%; left: 30%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
}
.scn-london-palace-northumberland-scandal .torch-left::after {
  content: ''; position: absolute; top: -16px; left: -4px; width: 16px; height: 20px;
  background: radial-gradient(circle, #ffa040 0%, #ff6000 50%, transparent 100%);
  border-radius: 50%;
  animation: ps1-flame 2s ease-in-out infinite alternate;
}
.scn-london-palace-northumberland-scandal .torch-right {
  position: absolute; bottom: 42%; right: 30%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
}
.scn-london-palace-northumberland-scandal .torch-right::after {
  content: ''; position: absolute; top: -16px; left: -4px; width: 16px; height: 20px;
  background: radial-gradient(circle, #ffa040 0%, #ff6000 50%, transparent 100%);
  border-radius: 50%;
  animation: ps1-flame 2s ease-in-out infinite alternate 0.5s;
}
.scn-london-palace-northumberland-scandal .shadow-drape {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%);
  animation: ps1-drape 20s ease-in-out infinite;
}

@keyframes ps1-wall {
  0% { opacity: .9; }
  50% { opacity: 1; background: linear-gradient(180deg, #2e2e42 0%, #4e3e2e 100%); }
  100% { opacity: .85; }
}
@keyframes ps1-pillar {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(1); }
}
@keyframes ps1-throne {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.03) rotate(1deg); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes ps1-kneel {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(5px) rotate(2deg); }
  50% { transform: translateX(10px) rotate(-1deg); }
  75% { transform: translateX(15px) rotate(3deg); }
  100% { transform: translateX(20px) rotate(0deg); }
}
@keyframes ps1-flame {
  0% { transform: scale(1) translate(0,0); opacity: .8; }
  50% { transform: scale(1.2) translate(-2px, -4px); opacity: 1; }
  100% { transform: scale(0.9) translate(2px, -2px); opacity: .7; }
}
@keyframes ps1-drape {
  0% { opacity: .4; }
  50% { opacity: .6; }
  100% { opacity: .3; }
}

/* Scene 2: london-palace-hotspur-plot-reasoning */
.scn-london-palace-hotspur-plot-reasoning {
  background: 
    linear-gradient(180deg, #2a2a3e 0%, #3a2a2a 50%, #2a1a1a 100%),
    radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 80%);
}
.scn-london-palace-hotspur-plot-reasoning .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  animation: ps2-wall 15s ease-in-out infinite alternate;
}
.scn-london-palace-hotspur-plot-reasoning .table {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: ps2-table 12s ease-in-out infinite;
}
.scn-london-palace-hotspur-plot-reasoning .crown {
  position: absolute; bottom: 42%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 20px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 4px 12px rgba(160,128,64,.6);
  animation: ps2-crown 6s ease-in-out infinite;
}
.scn-london-palace-hotspur-plot-reasoning .hand-place {
  position: absolute; bottom: 48%; left: 44%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #c8a080 0%, #a07050 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ps2-hand 8s ease-in-out infinite;
}
.scn-london-palace-hotspur-plot-reasoning .figure-left {
  position: absolute; bottom: 30%; left: 18%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ps2-figure-l 10s ease-in-out infinite;
}
.scn-london-palace-hotspur-plot-reasoning .figure-right {
  position: absolute; bottom: 30%; right: 18%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ps2-figure-r 10s ease-in-out infinite 2s;
}
.scn-london-palace-hotspur-plot-reasoning .candle-group {
  position: absolute; bottom: 48%; left: 65%; width: 12px; height: 24px;
  background: linear-gradient(0deg, #6a4a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
}
.scn-london-palace-hotspur-plot-reasoning .candle-group::after {
  content: ''; position: absolute; top: -14px; left: -4px; width: 20px; height: 18px;
  background: radial-gradient(circle, #ffd080 0%, #ff8020 50%, transparent 100%);
  border-radius: 50%;
  animation: ps2-candle 3s ease-in-out infinite alternate;
}
.scn-london-palace-hotspur-plot-reasoning .map-roll {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 8px;
  background: linear-gradient(90deg, #b8a080 0%, #a08860 50%, #b8a080 100%);
  border-radius: 4px;
  transform: rotate(-5deg);
  animation: ps2-map 25s ease-in-out infinite;
}
.scn-london-palace-hotspur-plot-reasoning .shadow-dagger {
  position: absolute; bottom: 38%; right: 25%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  box-shadow: 0 0 8px rgba(0,0,0,.4);
  animation: ps2-dagger 4s ease-in-out infinite;
}

@keyframes ps2-wall {
  0% { opacity: .8; background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%); }
  50% { opacity: 1; background: linear-gradient(180deg, #404058 0%, #303048 100%); }
  100% { opacity: .75; background: linear-gradient(180deg, #34344a 0%, #24243a 100%); }
}
@keyframes ps2-table {
  0% { transform: translateY(0); box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
  50% { transform: translateY(-2px); box-shadow: inset 0 12px 24px rgba(0,0,0,.4); }
  100% { transform: translateY(0); }
}
@keyframes ps2-crown {
  0% { transform: translateX(-50%) rotate(0deg) scale(1); }
  33% { transform: translateX(-50%) rotate(5deg) scale(1.05); }
  66% { transform: translateX(-50%) rotate(-4deg) scale(0.95); }
  100% { transform: translateX(-50%) rotate(2deg) scale(1.02); }
}
@keyframes ps2-hand {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-5px); }
  100% { transform: rotate(-5deg) translateY(2px); }
}
@keyframes ps2-figure-l {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(3deg); }
  100% { transform: translateX(-2px) rotate(-2deg); }
}
@keyframes ps2-figure-r {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(2px) rotate(3deg); }
}
@keyframes ps2-candle {
  0% { transform: scale(1) translate(0,0); opacity: .7; }
  50% { transform: scale(1.3) translate(-2px, -3px); opacity: 1; }
  100% { transform: scale(0.8) translate(3px, -1px); opacity: .6; }
}
@keyframes ps2-map {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(10px); }
  100% { transform: rotate(-7deg) translateX(-5px); }
}
@keyframes ps2-dagger {
  0% { transform: rotate(20deg) translateY(0); opacity: .7; }
  50% { transform: rotate(25deg) translateY(-8px); opacity: 1; }
  100% { transform: rotate(18deg) translateY(4px); opacity: .6; }
}

/* Scene 3: london-palace-hotspur-revenge-speech */
.scn-london-palace-hotspur-revenge-speech {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a2a2a 100%),
    radial-gradient(ellipse at 70% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-london-palace-hotspur-revenge-speech .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  animation: ps3-wall 18s ease-in-out infinite alternate;
}
.scn-london-palace-hotspur-revenge-speech .stair {
  position: absolute; bottom: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(0% 20%, 20% 10%, 40% 20%, 60% 10%, 80% 20%, 100% 10%, 100% 100%, 0% 100%);
  animation: ps3-stair 20s ease-in-out infinite;
}
.scn-london-palace-hotspur-revenge-speech .figure-descend {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ps3-descend 7s ease-in-out infinite;
}
.scn-london-palace-hotspur-revenge-speech .fireplace {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 60px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 8px 24px rgba(0,0,0,.7);
}
.scn-london-palace-hotspur-revenge-speech .flame-glow {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 40px;
  background: radial-gradient(ellipse, #ffa040 0%, #ff6000 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ps3-flame 2s ease-in-out infinite alternate;
}
.scn-london-palace-hotspur-revenge-speech .chronicle {
  position: absolute; bottom: 30%; left: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #b8a080 0%, #907060 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform: rotate(-15deg);
  animation: ps3-chronicle 15s ease-in-out infinite;
}
.scn-london-palace-hotspur-revenge-speech .chain {
  position: absolute; bottom: 35%; right: 15%; width: 6px; height: 60px;
  background: repeating-linear-gradient(0deg, #6a5a4a 0px, #8a7a6a 4px, #6a5a4a 8px);
  border-radius: 3px;
  animation: ps3-chain 5s ease-in-out infinite;
}
.scn-london-palace-hotspur-revenge-speech .dust-mote {
  position: absolute; top: 10%; left: 30%; width: 6px; height: 6px;
  background: radial-gradient(circle, rgba(200,180,160,.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: ps3-dust 30s linear infinite;
}

@keyframes ps3-wall {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes ps3-stair {
  0% { clip-path: polygon(0% 20%, 20% 10%, 40% 20%, 60% 10%, 80% 20%, 100% 10%, 100% 100%, 0% 100%); }
  50% { clip-path: polygon(0% 25%, 20% 15%, 40% 25%, 60% 15%, 80% 25%, 100% 15%, 100% 100%, 0% 100%); }
  100% { clip-path: polygon(0% 18%, 20% 8%, 40% 18%, 60% 8%, 80% 18%, 100% 8%, 100% 100%, 0% 100%); }
}
@keyframes ps3-descend {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-4px) rotate(2deg); }
  50% { transform: translateX(-50%) translateY(-8px) rotate(-1deg); }
  75% { transform: translateX(-50%) translateY(-4px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes ps3-flame {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); opacity: .7; }
  50% { transform: translateX(-50%) scale(1.2) rotate(3deg); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.9) rotate(-2deg); opacity: .6; }
}
@keyframes ps3-chronicle {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-3px); }
  100% { transform: rotate(-17deg) translateY(2px); }
}
@keyframes ps3-chain {
  0% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
  100% { transform: translateY(3px); }
}
@keyframes ps3-dust {
  0% { transform: translate(0, 0) scale(1); opacity: .3; }
  25% { transform: translate(20px, -10px) scale(1.2); opacity: .5; }
  50% { transform: translate(40px, -20px) scale(0.8); opacity: .4; }
  75% { transform: translate(60px, -15px) scale(1.1); opacity: .2; }
  100% { transform: translate(80px, 0) scale(0.9); opacity: .3; }
}

/* Scene 4: london-palace-hotspur-further-reproach */
.scn-london-palace-hotspur-further-reproach {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 60%, #3a2a2a 100%),
    radial-gradient(ellipse at 30% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-london-palace-hotspur-further-reproach .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  animation: ps4-wall 20s ease-in-out infinite alternate;
}
.scn-london-palace-hotspur-further-reproach .arch {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 140px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
  animation: ps4-arch 12s ease-in-out infinite;
}
.scn-london-palace-hotspur-further-reproach .figure-reject {
  position: absolute; bottom: 15%; left: 35%; width: 28px; 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: ps4-reject 9s ease-in-out infinite;
}
.scn-london-palace-hotspur-further-reproach .hand-dismiss {
  position: absolute; bottom: 35%; left: 28%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #c8a080 0%, #a07050 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 50% 50%;
  transform-origin: bottom center;
  animation: ps4-hand 4s ease-in-out infinite;
}
.scn-london-palace-hotspur-further-reproach .discarded-crown {
  position: absolute; bottom: 18%; left: 60%; width: 30px; height: 16px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 50% 50% 10% 10% / 70% 70% 20% 20%;
  transform: rotate(25deg);
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: ps4-crown-discard 7s ease-in-out infinite;
}
.scn-london-palace-hotspur-further-reproach .chain-broken {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 4px;
  background: repeating-linear-gradient(90deg, #6a5a4a 0px, #8a7a6a 4px, #6a5a4a 8px);
  border-radius: 2px;
  transform: rotate(-10deg);
  animation: ps4-chain 8s ease-in-out infinite;
}
.scn-london-palace-hotspur-further-reproach .torch-flicker {
  position: absolute; bottom: 45%; left: 72%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
}
.scn-london-palace-hotspur-further-reproach .torch-flicker::after {
  content: ''; position: absolute; top: -18px; left: -6px; width: 20px; height: 22px;
  background: radial-gradient(circle, #ffa040 0%, #ff6000 50%, transparent 100%);
  border-radius: 50%;
  animation: ps4-flame 2.5s ease-in-out infinite alternate;
}
.scn-london-palace-hotspur-further-reproach .shadow-veil {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,.4) 0%, transparent 40%, rgba(0,0,0,.3) 100%);
  animation: ps4-veil 15s ease-in-out infinite;
}

@keyframes ps4-wall {
  0% { opacity: .85; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes ps4-arch {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.03) rotate(1deg); }
  100% { transform: translateX(-50%) scale(0.98); }
}
@keyframes ps4-reject {
  0% { transform: translateX(0) rotate(0deg) scale(1); }
  33% { transform: translateX(-6px) rotate(-3deg) scale(0.95); }
  66% { transform: translateX(4px) rotate(2deg) scale(1.02); }
  100% { transform: translateX(0) rotate(0deg) scale(1); }
}
@keyframes ps4-hand {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-25deg) translateY(-6px); }
  100% { transform: rotate(10deg) translateY(3px); }
}
@keyframes ps4-crown-discard {
  0% { transform: rotate(25deg) translateX(0) scale(1); }
  50% { transform: rotate(30deg) translateX(-8px) scale(0.9); }
  100% { transform: rotate(22deg) translateX(4px) scale(1.05); }
}
@keyframes ps4-chain {
  0% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(-15deg) translateX(-5px); }
  100% { transform: rotate(-8deg) translateX(3px); }
}
@keyframes ps4-flame {
  0% { transform: scale(1) translate(0,0); opacity: .7; }
  50% { transform: scale(1.15) translate(-3px, -4px); opacity: 1; }
  100% { transform: scale(0.85) translate(2px, -1px); opacity: .6; }
}
@keyframes ps4-veil {
  0% { opacity: .3; }
  50% { opacity: .5; }
  100% { opacity: .35; }
}

/* rebel-camp-shrewsbury-no-word-fear */
.scn-rebel-camp-shrewsbury-no-word-fear {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #5a3a1a 40%, #7a4a2a 70%, #a06030 100%),
    radial-gradient(ellipse at 30% 60%, #ffa04033 0%, transparent 80%);
}
.scn-rebel-camp-shrewsbury-no-word-fear .tent-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  animation: t1-bg 12s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-no-word-fear .table {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: t1-table 8s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-no-word-fear .figure-left {
  position: absolute; bottom: 28%; left: 30%; width: 14%; height: 25%;
  background: radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: t1-figureL 5s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-no-word-fear .figure-right {
  position: absolute; bottom: 28%; right: 30%; width: 14%; height: 26%;
  background: radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: t1-figureR 5.5s ease-in-out infinite 0.5s;
}
.scn-rebel-camp-shrewsbury-no-word-fear .lantern {
  position: absolute; bottom: 38%; left: 48%; width: 6%; height: 10%;
  background: radial-gradient(circle, #ffd080 0%, #b08040 60%, transparent 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 30px 10px #ffa040, 0 0 60px 20px rgba(255,160,64,0.3);
  animation: t1-lantern 3s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-no-word-fear .map {
  position: absolute; bottom: 22%; left: 33%; width: 34%; height: 6%;
  background: linear-gradient(135deg, #c8b090 0%, #a89070 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: t1-map 20s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-no-word-fear .shadow {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: t1-shadow 10s ease-in-out infinite alternate;
}
@keyframes t1-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes t1-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes t1-figureL { 0% { transform: rotate(-1deg) translateX(0); } 25% { transform: rotate(0deg) translateX(2px); } 50% { transform: rotate(1deg) translateX(0); } 75% { transform: rotate(0deg) translateX(-2px); } 100% { transform: rotate(-1deg) translateX(0); } }
@keyframes t1-figureR { 0% { transform: rotate(1deg) translateX(0); } 25% { transform: rotate(0deg) translateX(-2px); } 50% { transform: rotate(-1deg) translateX(0); } 75% { transform: rotate(0deg) translateX(2px); } 100% { transform: rotate(1deg) translateX(0); } }
@keyframes t1-lantern { 0% { box-shadow: 0 0 20px 6px #ffa040, 0 0 40px 12px rgba(255,160,64,0.2); opacity: 0.8; } 50% { box-shadow: 0 0 40px 14px #ffd080, 0 0 80px 28px rgba(255,208,128,0.4); opacity: 1; } 100% { box-shadow: 0 0 25px 8px #ffa040, 0 0 50px 16px rgba(255,160,64,0.3); opacity: 0.85; } }
@keyframes t1-map { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(0.97) rotate(-1deg); } 100% { transform: scale(1) rotate(1deg); } }
@keyframes t1-shadow { 0% { opacity: 0.5; } 100% { opacity: 0.7; } }

/* rebel-camp-shrewsbury-king-coming */
.scn-rebel-camp-shrewsbury-king-coming {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #4a2a0a 50%, #6a3a0a 100%),
    radial-gradient(ellipse at 40% 50%, #ff802033 0%, transparent 70%);
}
.scn-rebel-camp-shrewsbury-king-coming .tent-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  animation: t2-bg 10s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-king-coming .table {
  position: absolute; bottom: 20%; left: 22%; width: 56%; height: 8%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: t2-table 7s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-king-coming .figure-left {
  position: absolute; bottom: 28%; left: 25%; width: 12%; height: 24%;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: t2-figL 4s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-king-coming .figure-center {
  position: absolute; bottom: 28%; left: 44%; width: 14%; height: 28%;
  background: radial-gradient(ellipse at 50% 30%, #5a3a2a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: t2-figC 4.5s ease-in-out infinite 0.2s;
}
.scn-rebel-camp-shrewsbury-king-coming .figure-right {
  position: absolute; bottom: 28%; right: 25%; width: 12%; height: 24%;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: t2-figR 5s ease-in-out infinite 0.4s;
}
.scn-rebel-camp-shrewsbury-king-coming .candle {
  position: absolute; bottom: 30%; left: 48%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #ffd080 0%, #b06030 60%, #2a1a0a 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 20px 8px #ff8040, 0 0 40px 16px rgba(255,128,64,0.3);
  animation: t2-candle 2.5s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-king-coming .map {
  position: absolute; bottom: 22%; left: 30%; width: 40%; height: 6%;
  background: linear-gradient(135deg, #b8a080 0%, #988060 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: t2-map 15s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-king-coming .shadow {
  position: absolute; bottom: 16%; left: 18%; width: 64%; height: 14%;
  background: linear-gradient(180deg, rgba(0,0,0,0.7) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: t2-shadow 8s ease-in-out infinite alternate;
}
@keyframes t2-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes t2-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes t2-figL { 0% { transform: rotate(-2deg) translateX(0); } 30% { transform: rotate(0deg) translateX(3px); } 60% { transform: rotate(1deg) translateX(0); } 100% { transform: rotate(-2deg) translateX(-2px); } }
@keyframes t2-figC { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(1deg) translateY(-2px); } 60% { transform: rotate(-1deg) translateY(0); } 100% { transform: rotate(0deg) translateY(-1px); } }
@keyframes t2-figR { 0% { transform: rotate(2deg) translateX(0); } 30% { transform: rotate(0deg) translateX(-3px); } 60% { transform: rotate(-1deg) translateX(0); } 100% { transform: rotate(2deg) translateX(2px); } }
@keyframes t2-candle { 0% { box-shadow: 0 0 15px 4px #ff8040, 0 0 30px 8px rgba(255,128,64,0.2); opacity: 0.8; transform: scaleY(1); } 50% { box-shadow: 0 0 35px 12px #ffa060, 0 0 70px 24px rgba(255,160,96,0.5); opacity: 1; transform: scaleY(1.05); } 100% { box-shadow: 0 0 20px 6px #ff8040, 0 0 40px 12px rgba(255,128,64,0.3); opacity: 0.85; transform: scaleY(0.95); } }
@keyframes t2-map { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(0.96) rotate(-2deg); } 100% { transform: scale(1) rotate(1deg); } }
@keyframes t2-shadow { 0% { opacity: 0.6; } 100% { opacity: 0.8; } }

/* rebel-camp-shrewsbury-hal-armed */
.scn-rebel-camp-shrewsbury-hal-armed {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0c4de 30%, #f0e68c 70%, #ffd700 100%),
    radial-gradient(ellipse at 50% 100%, #ffd70055 0%, transparent 60%);
}
.scn-rebel-camp-shrewsbury-hal-armed .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6bb5d0 0%, #c8e6f5 100%);
  animation: t3-sky 15s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-hal-armed .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #8fbc8f 0%, #6b8e23 100%);
  border-radius: 30% 70% 0 0 / 20% 50% 0 0;
  animation: t3-ground 20s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-hal-armed .sun {
  position: absolute; top: 10%; right: 20%; width: 12%; height: 12%;
  background: radial-gradient(circle, #fff5cc 0%, #ffd700 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px #ffd700, 0 0 160px 60px rgba(255,215,0,0.2);
  animation: t3-sun 6s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-hal-armed .soldier-1 {
  position: absolute; bottom: 30%; left: 20%; width: 10%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #c0c0c0 0%, #808080 40%, #303030 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%;
  box-shadow: 0 0 20px 8px rgba(255,215,0,0.3);
  animation: t3-sold1 4s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-hal-armed .soldier-2 {
  position: absolute; bottom: 28%; left: 36%; width: 12%; height: 32%;
  background: radial-gradient(ellipse at 50% 30%, #d4af37 0%, #8b6914 40%, #3a2a00 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%;
  box-shadow: 0 0 25px 10px rgba(255,215,0,0.4);
  animation: t3-sold2 4.5s ease-in-out infinite 0.3s;
}
.scn-rebel-camp-shrewsbury-hal-armed .soldier-3 {
  position: absolute; bottom: 32%; right: 22%; width: 9%; height: 28%;
  background: radial-gradient(ellipse at 50% 30%, #c0c0c0 0%, #606060 40%, #202020 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%;
  box-shadow: 0 0 18px 6px rgba(255,215,0,0.3);
  animation: t3-sold3 5s ease-in-out infinite 0.6s;
}
.scn-rebel-camp-shrewsbury-hal-armed .banner {
  position: absolute; bottom: 58%; left: 48%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #8b0000 0%, #a0522d 50%, #8b4513 100%);
  border-radius: 2px;
  clip-path: polygon(0% 0%, 100% 0%, 100% 80%, 50% 100%, 0% 80%);
  animation: t3-banner 3s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-hal-armed .armor-glint {
  position: absolute; bottom: 40%; left: 30%; width: 5%; height: 5%;
  background: radial-gradient(circle, #ffffff 0%, #ffd700 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #ffd700;
  animation: t3-glint 2s ease-in-out infinite alternate;
}
@keyframes t3-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes t3-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes t3-sun { 0% { transform: scale(0.95); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.98); opacity: 0.85; } }
@keyframes t3-sold1 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes t3-sold2 { 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 t3-sold3 { 0% { transform: translateX(0) translateY(0); } 30% { transform: translateX(4px) translateY(-2px); } 60% { transform: translateX(0) translateY(0); } 100% { transform: translateX(-2px) translateY(-1px); } }
@keyframes t3-banner { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes t3-glint { 0% { opacity: 0.3; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(0.6); } }

/* rebel-camp-shrewsbury-praise-agues */
.scn-rebel-camp-shrewsbury-praise-agues {
  background:
    linear-gradient(180deg, #f5deb3 0%, #deb887 20%, #a0522d 60%, #5e1a1d 100%),
    radial-gradient(ellipse at 50% 0%, #f5deb355 0%, transparent 70%);
}
.scn-rebel-camp-shrewsbury-praise-agues .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f0e68c 0%, #ffd700 40%, #8b4513 100%);
  animation: t4-sky 12s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-praise-agues .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #8b4513 0%, #5e1a1d 50%, #1a0a00 100%);
  border-radius: 20% 80% 0 0 / 30% 50% 0 0;
  animation: t4-ground 18s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-praise-agues .sun-harsh {
  position: absolute; top: 12%; left: 15%; width: 18%; height: 18%;
  background: radial-gradient(circle, #fffacd 0%, #ffd700 40%, #ff8c00 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 100px 40px #ffa500, 0 0 200px 80px rgba(255,165,0,0.2);
  animation: t4-sun 5s ease-in-out infinite alternate;
}
.scn-rebel-camp-shrewsbury-praise-agues .altar {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #696969 0%, #3a3a3a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.6);
  animation: t4-altar 8s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-praise-agues .figure-sacrifice {
  position: absolute; bottom: 28%; left: 40%; width: 10%; height: 22%;
  background: radial-gradient(ellipse at 50% 30%, #5e1a1d 0%, #2a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: t4-sacri 4s ease-in-out infinite;
}
.scn-rebel-camp-shrewsbury-praise-agues .figure-mars {
  position: absolute; bottom: 30%; right: 30%; width: 14%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #8b4513 0%, #3a1a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 8px rgba(255,165,0,0.4);
  transform-origin: bottom center;
  animation: t4-mars 5s ease-in-out infinite 0.5s;
}
.scn-rebel-camp-shrewsbury-praise-agues .blood-pool {
  position: absolute; bottom: 16%; left: 42%; width: 16%; height: 4%;
  background: radial-gradient(ellipse, #5e1a1d 0%, #a0461a 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: t4-blood 6s ease-in-out infinite alternate;
}
@keyframes t4-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes t4-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(0.99); } }
@keyframes t4-sun { 0% { transform: scale(1) rotate(0deg); opacity: 0.9; } 50% { transform: scale(1.08) rotate(5deg); opacity: 1; } 100% { transform: scale(0.95) rotate(-3deg); opacity: 0.85; } }
@keyframes t4-altar { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes t4-sacri { 0% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(-2deg) translateX(2px); } 60% { transform: rotate(2deg) translateX(-2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes t4-mars { 0% { transform: rotate(2deg) translateY(0); } 30% { transform: rotate(0deg) translateY(-3px); } 60% { transform: rotate(-1deg) translateY(0); } 100% { transform: rotate(1deg) translateY(-1px); } }
@keyframes t4-blood { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }

/* boars-head-tavern-dagger-hack */
.scn-boars-head-tavern-dagger-hack {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}

.scn-boars-head-tavern-dagger-hack .wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #4a3a2a 25%, #2a1a0a 50%, #3a2a1a 75%, #2a1a0a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: bht1-wall 15s ease-in-out infinite alternate;
}

.scn-boars-head-tavern-dagger-hack .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 38%;
  background: linear-gradient(0deg, #1a0a00 0%, #2a1a0a 30%, #3a2a1a 60%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.8);
}

.scn-boars-head-tavern-dagger-hack .table {
  position: absolute;
  bottom: 22%;
  left: 20%;
  width: 60%;
  height: 14%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 50%, #2a1a0a 100%);
  border-radius: 5px;
  box-shadow: 0 8px 15px rgba(0,0,0,0.8);
  transform: perspective(400px) rotateX(20deg);
  animation: bht1-table 8s ease-in-out infinite;
}

.scn-boars-head-tavern-dagger-hack .meat {
  position: absolute;
  bottom: 27%;
  left: 40%;
  width: 15%;
  height: 10%;
  background: radial-gradient(circle at 40% 30%, #8a5a3a 0%, #5a3a1a 60%, #3a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: bht1-meat 4s ease-in-out infinite alternate;
}

.scn-boars-head-tavern-dagger-hack .figure {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 14%;
  height: 30%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 50%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 5px 0 10px rgba(0,0,0,0.5);
  animation: bht1-figure 6s ease-in-out infinite alternate;
}

.scn-boars-head-tavern-dagger-hack .dagger {
  position: absolute;
  bottom: 30%;
  left: 43%;
  width: 3%;
  height: 18%;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 30%, #606060 70%, #404040 100%);
  border-radius: 0 0 5px 5px;
  transform: rotate(-20deg);
  box-shadow: 0 0 10px 2px rgba(200,200,200,0.3);
  animation: bht1-dagger 2s ease-in-out infinite alternate;
}

.scn-boars-head-tavern-dagger-hack .glow {
  position: absolute;
  bottom: 25%;
  left: 35%;
  width: 50%;
  height: 30%;
  background: radial-gradient(ellipse, rgba(255,200,100,0.3) 0%, transparent 60%);
  animation: bht1-glow 5s ease-in-out infinite alternate;
}

.scn-boars-head-tavern-dagger-hack .smoke {
  position: absolute;
  top: 5%;
  left: 10%;
  width: 30%;
  height: 20%;
  background: radial-gradient(ellipse, rgba(200,180,160,0.2) 0%, transparent 60%);
  filter: blur(8px);
  animation: bht1-smoke 20s linear infinite alternate;
}

.scn-boars-head-tavern-dagger-hack .lantern {
  position: absolute;
  top: 10%;
  right: 15%;
  width: 6%;
  height: 8%;
  background: radial-gradient(circle at 50% 60%, #ffd080 0%, #a07030 60%, #301a00 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 15px rgba(255,200,100,0.5);
  animation: bht1-lantern 3s ease-in-out infinite alternate;
}

@keyframes bht1-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes bht1-table { 0% { transform: perspective(400px) rotateX(20deg) translateY(0) } 50% { transform: perspective(400px) rotateX(18deg) translateY(-2px) } 100% { transform: perspective(400px) rotateX(20deg) translateY(0) } }
@keyframes bht1-meat { 0% { transform: rotate(0deg) } 25% { transform: rotate(-5deg) } 75% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes bht1-figure { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes bht1-dagger { 0% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-15deg) translateX(5px) } 100% { transform: rotate(-25deg) translateX(0) } }
@keyframes bht1-glow { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
@keyframes bht1-smoke { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(20px) scale(1.1) } 100% { transform: translateX(-10px) scale(0.9) } }
@keyframes bht1-lantern { 0% { transform: scaleY(1) rotate(0deg) } 50% { transform: scaleY(1.05) rotate(5deg) } 100% { transform: scaleY(1) rotate(-5deg) } }

/* boars-head-tavern-spear-grass */
.scn-boars-head-tavern-spear-grass {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}

.scn-boars-head-tavern-spear-grass .wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 30%, #2a1a0a 60%, #3a2a1a 100%);
  border-radius: 0 0 40% 40%;
  box-shadow: inset 0 15px 35px rgba(0,0,0,0.7);
  animation: bht2-wall 18s ease-in-out infinite alternate;
}

.scn-boars-head-tavern-spear-grass .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 38%;
  background: linear-gradient(0deg, #1a0a00 0%, #2a1a0a 30%, #3a2a1a 70%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 25% 25% 0 0;
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.8);
}

.scn-boars-head-tavern-spear-grass .figure-a {
  position: absolute;
  bottom: 18%;
  left: 25%;
  width: 16%;
  height: 35%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 50%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 10px rgba(0,0,0,0.5);
  animation: bht2-figa 6s ease-in-out infinite alternate;
}

.scn-boars-head-tavern-spear-grass .figure-b {
  position: absolute;
  bottom: 18%;
  right: 25%;
  width: 16%;
  height: 35%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 50%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 4px 0 10px rgba(0,0,0,0.5);
  animation: bht2-figb 5s ease-in-out infinite alternate;
}

.scn-boars-head-tavern-spear-grass .spear-grass {
  position: absolute;
  bottom: 30%;
  left: 41%;
  width: 4%;
  height: 22%;
  background: linear-gradient(180deg, #5a7a3a 0%, #3a5a1a 50%, #1a3a0a 100%);
  border-radius: 0 0 50% 50%;
  transform: rotate(-15deg) translateX(10px);
  animation: bht2-grass 3s ease-in-out infinite alternate;
}

.scn-boars-head-tavern-spear-grass .blood-drop {
  position: absolute;
  bottom: 32%;
  left: 45%;
  width: 3%;
  height: 3%;
  background: radial-gradient(circle, #5e1a1d 0%, #3a0a0a 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(94,26,29,0.4);
  animation: bht2-blood 4s ease-in-out infinite;
}

.scn-boars-head-tavern-spear-grass .glow {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 40%;
  height: 40%;
  background: radial-gradient(ellipse, rgba(255,200,100,0.3) 0%, transparent 60%);
  animation: bht2-glow 5s ease-in-out infinite alternate;
}

.scn-boars-head-tavern-spear-grass .garment {
  position: absolute;
  bottom: 20%;
  left: 28%;
  width: 12%;
  height: 18%;
  background: linear-gradient(180deg, #702243 0%, #4a1229 50%, #2a0a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: bht2-garment 7s ease-in-out infinite alternate;
}

@keyframes bht2-wall { 0% { opacity:0.75 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes bht2-figa { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes bht2-figb { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes bht2-grass { 0% { transform: rotate(-15deg) translateX(10px) } 50% { transform: rotate(-10deg) translateX(15px) } 100% { transform: rotate(-20deg) translateX(5px) } }
@keyframes bht2-blood { 0% { transform: translateY(0) scale(1); opacity:0.8 } 50% { transform: translateY(-8px) scale(1.2); opacity:1 } 100% { transform: translateY(0) scale(0.8); opacity:0.6 } }
@keyframes bht2-glow { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes bht2-garment { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }

/* boars-head-tavern-stolen-sack */
.scn-boars-head-tavern-stolen-sack {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}

.scn-boars-head-tavern-stolen-sack .wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 20%, #2a1a0a 50%, #3a2a1a 80%, #2a1a0a 100%);
  border-radius: 0 0 35% 35%;
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.6);
  animation: bht3-wall 20s ease-in-out infinite alternate;
}

.scn-boars-head-tavern-stolen-sack .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 38%;
  background: linear-gradient(0deg, #1a0a00 0%, #2a1a0a 40%, #3a2a1a 70%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 10px 35px rgba(0,0,0,0.7);
}

.scn-boars-head-tavern-stolen-sack .table {
  position: absolute;
  bottom: 22%;
  left: 15%;
  width: 70%;
  height: 12%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 60%, #2a1a0a 100%);
  border-radius: 8px;
  box-shadow: 0 8px 18px rgba(0,0,0,0.9);
  transform: perspective(300px) rotateX(25deg);
  animation: bht3-table 10s ease-in-out infinite;
}

.scn-boars-head-tavern-stolen-sack .sack {
  position: absolute;
  bottom: 25%;
  left: 45%;
  width: 18%;
  height: 15%;
  background: radial-gradient(ellipse at 50% 40%, #6a5a4a 0%, #4a3a2a 50%, #2a1a0a 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: bht3-sack 5s ease-in-out infinite alternate;
}

.scn-boars-head-tavern-stolen-sack .figure-thief {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 14%;
  height: 32%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 50%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 4px 0 10px rgba(0,0,0,0.5);
  animation: bht3-thief 7s ease-in-out infinite alternate;
}

.scn-boars-head-tavern-stolen-sack .figure-acuser {
  position: absolute;
  bottom: 18%;
  right: 25%;
  width: 14%;
  height: 32%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 50%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 10px rgba(0,0,0,0.5);
  animation: bht3-acuser 6s ease-in-out infinite alternate;
}

.scn-boars-head-tavern-stolen-sack .cup {
  position: absolute;
  bottom: 26%;
  left: 40%;
  width: 6%;
  height: 8%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 60%, #3a2a0a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  transform: rotate(-10deg);
  animation: bht3-cup 4s ease-in-out infinite alternate;
}

.scn-boars-head-tavern-stolen-sack .glow {
  position: absolute;
  bottom: 20%;
  left: 25%;
  width: 50%;
  height: 35%;
  background: radial-gradient(ellipse, rgba(255,200,100,0.35) 0%, transparent 50%);
  animation: bht3-glow 6s ease-in-out infinite alternate;
}

.scn-boars-head-tavern-stolen-sack .smoke {
  position: absolute;
  top: 8%;
  left: 20%;
  width: 25%;
  height: 15%;
  background: radial-gradient(ellipse, rgba(200,180,160,0.2) 0%, transparent 60%);
  filter: blur(6px);
  animation: bht3-smoke 25s ease-in-out infinite alternate;
}

@keyframes bht3-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes bht3-table { 0% { transform: perspective(300px) rotateX(25deg) translateY(0) } 50% { transform: perspective(300px) rotateX(23deg) translateY(-2px) } 100% { transform: perspective(300px) rotateX(25deg) translateY(0) } }
@keyframes bht3-sack { 0% { transform: translateY(0) rotate(0deg) scale(1) } 50% { transform: translateY(-3px) rotate(-5deg) scale(1.05) } 100% { transform: translateY(0) rotate(5deg) scale(1) } }
@keyframes bht3-thief { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-4px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes bht3-acuser { 0% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(-2deg) translateX(-5px) } 100% { transform: rotate(1deg) translateX(0) } }
@keyframes bht3-cup { 0% { transform: rotate(-10deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-15deg) } }
@keyframes bht3-glow { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
@keyframes bht3-smoke { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(30px) scale(1.2) } 100% { transform: translateX(-20px) scale(0.8) } }

/* boars-head-tavern-i-do */
.scn-boars-head-tavern-i-do {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}

.scn-boars-head-tavern-i-do .wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 30%, #2a1a0a 60%, #3a2a1a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 15px 40px rgba(0,0,0,0.7);
  animation: bht4-wall 16s ease-in-out infinite alternate;
}

.scn-boars-head-tavern-i-do .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 38%;
  background: linear-gradient(0deg, #1a0a00 0%, #2a1a0a 30%, #3a2a1a 60%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.8);
}

.scn-boars-head-tavern-i-do .doorway {
  position: absolute;
  bottom: 10%;
  left: 10%;
  width: 20%;
  height: 50%;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.9), 0 0 20px rgba(0,0,0,0.5);
  animation: bht4-door 12s ease-in-out infinite alternate;
}

.scn-boars-head-tavern-i-do .fat-figure {
  position: absolute;
  bottom: 12%;
  left: 25%;
  width: 22%;
  height: 35%;
  background: radial-gradient(ellipse at 50% 60%, #1a1a1a 0%, #0a0a0a 60%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 50% 50%;
  transform-origin: bottom center;
  box-shadow: -5px 0 15px rgba(0,0,0,0.6);
  animation: bht4-fat 8s ease-in-out infinite alternate;
}

.scn-boars-head-tavern-i-do .slim-figure {
  position: absolute;
  bottom: 15%;
  right: 20%;
  width: 12%;
  height: 38%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 50%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 4px 0 10px rgba(0,0,0,0.5);
  animation: bht4-slim 6s ease-in-out infinite alternate;
}

.scn-boars-head-tavern-i-do .table {
  position: absolute;
  bottom: 20%;
  left: 40%;
  width: 35%;
  height: 10%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 50%, #2a1a0a 100%);
  border-radius: 10px;
  box-shadow: 0 8px 18px rgba(0,0,0,0.8);
  transform: perspective(400px) rotateX(20deg);
  animation: bht4-table 9s ease-in-out infinite;
}

.scn-boars-head-tavern-i-do .candle {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 3%;
  height: 8%;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 40%, #5a2a0a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 10px rgba(255,200,100,0.4);
  animation: bht4-candle 3s ease-in-out infinite alternate;
}

.scn-boars-head-tavern-i-do .glow {
  position: absolute;
  bottom: 15%;
  left: 30%;
  width: 40%;
  height: 40%;
  background: radial-gradient(ellipse, rgba(255,200,100,0.3) 0%, transparent 60%);
  animation: bht4-glow 5s ease-in-out infinite alternate;
}

.scn-boars-head-tavern-i-do .smoke {
  position: absolute;
  top: 5%;
  left: 25%;
  width: 20%;
  height: 15%;
  background: radial-gradient(ellipse, rgba(200,180,160,0.15) 0%, transparent 60%);
  filter: blur(6px);
  animation: bht4-smoke 30s linear infinite alternate;
}

@keyframes bht4-wall { 0% { opacity:0.75 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes bht4-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.95) } 100% { transform: scaleX(1.05) } }
@keyframes bht4-fat { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(4deg) translateY(-5px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes bht4-slim { 0% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(-3deg) translateX(3px) } 100% { transform: rotate(2deg) translateX(0) } }
@keyframes bht4-table { 0% { transform: perspective(400px) rotateX(20deg) translateY(0) } 50% { transform: perspective(400px) rotateX(18deg) translateY(-2px) } 100% { transform: perspective(400px) rotateX(20deg) translateY(0) } }
@keyframes bht4-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.1) rotate(5deg) } 100% { transform: scaleY(1) rotate(-5deg) } }
@keyframes bht4-glow { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
@keyframes bht4-smoke { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(15px) scale(1.1) } 100% { transform: translateX(-15px) scale(0.9) } }

/* Scene: eastcheap-boars-head-face-harm */
.scn-eastcheap-boars-head-face-harm {
  background: linear-gradient(180deg, #2a1e1a 0%, #3a2a22 40%, #1a100c 100%), radial-gradient(ellipse at 50% 40%, #5a3a2a 0%, transparent 70%);
}
.scn-eastcheap-boars-head-face-harm .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a3a32 0%, #2a1e1a 100%), radial-gradient(circle at 50% 60%, #5a4a3a 0%, transparent 80%); opacity: 0.8;
}
.scn-eastcheap-boars-head-face-harm .fireplace {
  position: absolute; bottom: 10%; left: 50%; width: 120px; height: 100px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a22 0%, #1a100c 100%); border-radius: 12% 12% 4% 4%; box-shadow: inset 0 4px 12px rgba(0,0,0,.6);
  animation: fh-fireplace 8s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-face-harm .fire {
  position: absolute; bottom: 15%; left: 50%; width: 40px; height: 60px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 80%, #ffb347 0%, #c8553d 50%, #5a2a1a 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px #c8553d, 0 0 60px 20px rgba(200,85,61,.4); opacity: 0.9;
  animation: fh-fire 2s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-face-harm .table {
  position: absolute; bottom: 6%; left: 50%; width: 140px; height: 18px; transform: translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-eastcheap-boars-head-face-harm .figure {
  position: absolute; bottom: 18%; left: 35%; width: 24px; height: 60px; background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: fh-figure 4s ease-in-out infinite;
}
.scn-eastcheap-boars-head-face-harm .skull {
  position: absolute; bottom: 10%; left: 55%; width: 20px; height: 22px; background: radial-gradient(circle at 50% 30%, #b08060 0%, #6a4a3a 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: fh-skull 6s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-face-harm .candle-flame {
  position: absolute; bottom: 20%; left: 30%; width: 8px; height: 14px; background: radial-gradient(ellipse, #ffe080 0%, #ffb347 50%, transparent 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 16px 4px #ffb347, 0 0 32px 8px rgba(255,179,71,.3);
  animation: fh-candle 1.5s ease-in-out infinite alternate;
}
@keyframes fh-fireplace { 0% { box-shadow: inset 0 4px 12px rgba(0,0,0,.6); } 50% { box-shadow: inset 0 6px 18px rgba(0,0,0,.7), 0 2px 10px rgba(200,85,61,.2); } 100% { box-shadow: inset 0 4px 12px rgba(0,0,0,.6); } }
@keyframes fh-fire { 0% { transform: translateX(-50%) scaleY(1) rotate(-2deg); } 50% { transform: translateX(-50%) scaleY(1.1) rotate(2deg); } 100% { transform: translateX(-50%) scaleY(0.95) rotate(-1deg); } }
@keyframes fh-figure { 0% { transform: translateX(0) rotate(-1deg); } 33% { transform: translateX(4px) rotate(1deg); } 66% { transform: translateX(2px) rotate(-2deg); } 100% { transform: translateX(-2px) rotate(0); } }
@keyframes fh-skull { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes fh-candle { 0% { transform: scaleY(1) rotate(-3deg); opacity: 0.8; } 50% { transform: scaleY(1.2) rotate(3deg); opacity: 1; } 100% { transform: scaleY(0.9) rotate(-2deg); opacity: 0.9; } }

/* Scene: eastcheap-boars-head-deaths-head */
.scn-eastcheap-boars-head-deaths-head {
  background: linear-gradient(180deg, #2a1e1a 0%, #3a2a22 50%, #1a100c 100%), radial-gradient(ellipse at 50% 50%, #5a3a2a 0%, transparent 60%);
}
.scn-eastcheap-boars-head-deaths-head .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a3a32 0%, #2a1e1a 100%); opacity: 0.7;
}
.scn-eastcheap-boars-head-deaths-head .fire {
  position: absolute; bottom: 8%; left: 50%; width: 50px; height: 70px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 80%, #ffb347 0%, #c8553d 50%, #5a2a1a 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 12px #c8553d, 0 0 80px 30px rgba(200,85,61,.35);
  animation: dh-fire 2.5s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-deaths-head .figure-oath {
  position: absolute; bottom: 12%; left: 35%; width: 30px; height: 70px; background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: dh-figure 5s ease-in-out infinite;
}
.scn-eastcheap-boars-head-deaths-head .hand-glow {
  position: absolute; bottom: 40%; left: 38%; width: 16px; height: 20px; background: radial-gradient(circle, #ffe080 0%, #ffb347 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 8px #ffb347, 0 0 40px 16px rgba(255,179,71,.4);
  animation: dh-hand 3s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-deaths-head .table {
  position: absolute; bottom: 4%; left: 50%; width: 130px; height: 16px; transform: translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,.5);
}
.scn-eastcheap-boars-head-deaths-head .tankard {
  position: absolute; bottom: 8%; left: 55%; width: 14px; height: 20px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: dh-tankard 4s ease-in-out infinite;
}
@keyframes dh-fire { 0% { transform: translateX(-50%) scaleY(1) rotate(-2deg); } 50% { transform: translateX(-50%) scaleY(1.15) rotate(3deg); } 100% { transform: translateX(-50%) scaleY(0.9) rotate(-1deg); } }
@keyframes dh-figure { 0% { transform: translateX(0) rotate(-1deg); } 33% { transform: translateX(3px) rotate(2deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes dh-hand { 0% { transform: translateY(0) scale(1); opacity: 0.7; } 50% { transform: translateY(-4px) scale(1.1); opacity: 1; } 100% { transform: translateY(0) scale(0.95); opacity: 0.8; } }
@keyframes dh-tankard { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }

/* Scene: eastcheap-boars-head-ignis-fatuus */
.scn-eastcheap-boars-head-ignis-fatuus {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #0e0a08 100%), radial-gradient(ellipse at 80% 30%, #3a2a1a 0%, transparent 60%);
}
.scn-eastcheap-boars-head-ignis-fatuus .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a100c 100%); opacity: 0.6;
}
.scn-eastcheap-boars-head-ignis-fatuus .window {
  position: absolute; top: 8%; left: 75%; width: 70px; height: 50px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border: 3px solid #4a3a2a; border-radius: 6px; box-shadow: inset 0 0 10px rgba(0,0,0,.8);
  animation: if-window 12s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-ignis-fatuus .figure-small {
  position: absolute; bottom: 14%; left: 25%; width: 20px; height: 50px; background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: if-figure 3s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-ignis-fatuus .ignis-ball {
  position: absolute; top: 20%; left: 30%; width: 24px; height: 24px; background: radial-gradient(circle, #ffe080 0%, #ff8c00 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #ff8c00, 0 0 60px 25px rgba(255,140,0,.5);
  animation: if-ignis-ball 6s linear infinite;
}
.scn-eastcheap-boars-head-ignis-fatuus .ignis-glow {
  position: absolute; top: 15%; left: 28%; width: 60px; height: 60px; background: radial-gradient(circle, rgba(255,140,0,.3) 0%, transparent 70%); border-radius: 50%;
  animation: if-ignis-glow 6s linear infinite;
}
.scn-eastcheap-boars-head-ignis-fatuus .table {
  position: absolute; bottom: 6%; left: 35%; width: 100px; height: 14px; transform: translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #2a1a1a 100%); border-radius: 4px;
}
.scn-eastcheap-boars-head-ignis-fatuus .candle {
  position: absolute; bottom: 12%; left: 32%; width: 10px; height: 18px; background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 -2px 4px rgba(0,0,0,.3);
  animation: if-candle 4s ease-in-out infinite alternate;
}
@keyframes if-window { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes if-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(6px) rotate(1deg); } 100% { transform: translateX(2px) rotate(-1deg); } }
@keyframes if-ignis-ball { 0% { transform: translate(0, 0) scale(1); } 25% { transform: translate(20px, -15px) scale(1.15); } 50% { transform: translate(45px, -5px) scale(0.9); } 75% { transform: translate(70px, -20px) scale(1.1); } 100% { transform: translate(100px, -10px) scale(1); opacity: 0; } }
@keyframes if-ignis-glow { 0% { transform: translate(0, 0) scale(1); opacity: 0.5; } 25% { transform: translate(20px, -15px) scale(1.1); opacity: 0.7; } 50% { transform: translate(45px, -5px) scale(0.85); opacity: 0.4; } 75% { transform: translate(70px, -20px) scale(1.05); opacity: 0.6; } 100% { transform: translate(100px, -10px) scale(1); opacity: 0; } }
@keyframes if-candle { 0% { transform: rotate(-1deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }

/* Scene: eastcheap-boars-head-hostess-denial */
.scn-eastcheap-boars-head-hostess-denial {
  background: linear-gradient(180deg, #2a1e1a 0%, #3a2a22 50%, #1a100c 100%), radial-gradient(ellipse at 40% 60%, #5a3a2a 0%, transparent 60%);
}
.scn-eastcheap-boars-head-hostess-denial .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a3a32 0%, #1a100c 100%); opacity: 0.7;
}
.scn-eastcheap-boars-head-hostess-denial .door {
  position: absolute; bottom: 0; left: 60%; width: 70px; height: 100px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a1a 100%); border-radius: 6% 6% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.6);
  animation: hd-door 10s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-hostess-denial .hostess {
  position: absolute; bottom: 0; left: 35%; width: 28px; height: 70px; background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: hd-hostess 3s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-hostess-denial .thief-shadow {
  position: absolute; bottom: 4%; left: 60%; width: 16px; height: 40px; background: linear-gradient(180deg, #0a0604 0%, #000 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom center;
  animation: hd-thief 5s ease-in-out infinite;
}
.scn-eastcheap-boars-head-hostess-denial .lantern {
  position: absolute; top: 15%; left: 20%; width: 20px; height: 30px; background: linear-gradient(180deg, #c8a060 0%, #8a6a4a 50%, #4a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px #c8a060, 0 0 40px 15px rgba(200,160,96,.4);
  animation: hd-lantern 4s ease-in-out infinite alternate;
}
.scn-eastcheap-boars-head-hostess-denial .table {
  position: absolute; bottom: 6%; left: 40%; width: 90px; height: 12px; transform: translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #2a1a1a 100%); border-radius: 4px;
}
.scn-eastcheap-boars-head-hostess-denial .broom {
  position: absolute; bottom: 8%; left: 50%; width: 6px; height: 50px; background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%); border-radius: 2px; transform: rotate(-20deg); transform-origin: bottom center;
  animation: hd-broom 6s ease-in-out infinite alternate;
}
@keyframes hd-door { 0% { box-shadow: inset 0 4px 8px rgba(0,0,0,.6); } 50% { box-shadow: inset 0 6px 12px rgba(0,0,0,.7), 0 0 8px rgba(200,160,96,.1); } 100% { box-shadow: inset 0 4px 8px rgba(0,0,0,.6); } }
@keyframes hd-hostess { 0% { transform: translateX(0) rotate(-1deg); } 33% { transform: translateX(4px) rotate(2deg); } 66% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hd-thief { 0% { transform: scaleY(1) translateX(0); } 25% { transform: scaleY(0.8) translateX(2px); } 50% { transform: scaleY(1) translateX(-1px); } 75% { transform: scaleY(0.85) translateX(3px); } 100% { transform: scaleY(1) translateX(0); } }
@keyframes hd-lantern { 0% { transform: rotate(-3deg); box-shadow: 0 0 15px 4px #c8a060, 0 0 30px 10px rgba(200,160,96,.3); } 50% { transform: rotate(3deg); box-shadow: 0 0 25px 8px #c8a060, 0 0 50px 20px rgba(200,160,96,.5); } 100% { transform: rotate(-2deg); box-shadow: 0 0 18px 5px #c8a060, 0 0 36px 12px rgba(200,160,96,.35); } }
@keyframes hd-broom { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(-22deg); } }

/* ── bangor-archdeacon-house-english-court ── */
.scn-bangor-archdeacon-house-english-court {
  background:
    linear-gradient(180deg, #f4e8d0 0%, #e0c8a0 40%, #b8986e 100%),
    radial-gradient(ellipse at 50% 60%, #d4bc94 0%, transparent 60%);
}
.scn-bangor-archdeacon-house-english-court .ec-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #8c6a44 0%, #5a402a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
}
.scn-bangor-archdeacon-house-english-court .ec-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #e8d4b8 0%, #c8ae8a 60%, #a88a62 100%);
}
.scn-bangor-archdeacon-house-english-court .ec-archway {
  position:absolute; bottom:30%; left:50%; width:140px; height:180px; transform:translateX(-50%);
  background: radial-gradient(ellipse at 50% 20%, #2c1e12 0%, #1a1208 70%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 -10px 30px rgba(0,0,0,.5) inset;
}
.scn-bangor-archdeacon-house-english-court .ec-dais {
  position:absolute; bottom:30%; left:50%; width:200px; height:20px; transform:translateX(-50%) translateY(50%);
  background: linear-gradient(180deg, #a0784a 0%, #6e5030 100%);
  border-radius: 8px;
  box-shadow: 0 4px 10px rgba(0,0,0,.4);
}
.scn-bangor-archdeacon-house-english-court .ec-figure {
  position:absolute; bottom:38%; left:50%; width:36px; height:60px; transform:translateX(-60%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ec-figure 6s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-english-court .ec-harp {
  position:absolute; bottom:34%; left:60%; width:40px; height:50px; transform:translateX(-50%);
  background: linear-gradient(135deg, #a08050 0%, #70482a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  clip-path: polygon(20% 0%, 80% 0%, 70% 100%, 30% 100%);
  animation: ec-harp 4s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-english-court .ec-candle {
  position:absolute; bottom:58%; left:38%; width:8px; height:24px;
  background: linear-gradient(180deg, #ffe0a0 0%, #c89840 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 6px #ffc860;
  animation: ec-candle 2s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-english-court .ec-window {
  position:absolute; bottom:50%; left:15%; width:70px; height:100px;
  background: radial-gradient(ellipse at 50% 60%, #f4ecdc 0%, #c8b898 100%);
  border: 4px solid #5a402a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,240,0.4);
  animation: ec-window 8s ease-in-out infinite alternate;
}
@keyframes ec-figure {
  0% { transform: translateX(-60%) rotate(-1deg); }
  25% { transform: translateX(-58%) rotate(1deg); }
  50% { transform: translateX(-60%) rotate(0deg); }
  75% { transform: translateX(-62%) rotate(-1deg); }
  100% { transform: translateX(-60%) rotate(0deg); }
}
@keyframes ec-harp {
  0% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(4deg); }
}
@keyframes ec-candle {
  0% { box-shadow: 0 0 15px 4px #ffc860; opacity:.8; }
  50% { box-shadow: 0 0 25px 8px #ffd080; opacity:1; }
  100% { box-shadow: 0 0 15px 4px #ffc860; opacity:.85; }
}
@keyframes ec-window {
  0% { filter: brightness(0.95); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(0.95); }
}

/* ── bangor-archdeacon-house-metre-ballad-mongers ── */
.scn-bangor-archdeacon-house-metre-ballad-mongers {
  background:
    linear-gradient(180deg, #fff2d8 0%, #f0dcb8 50%, #d8b88a 100%),
    radial-gradient(ellipse at 50% 70%, #ecd4a8 0%, transparent 70%);
}
.scn-bangor-archdeacon-house-metre-ballad-mongers .bm-floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #b8906a 0%, #7a5e3a 100%);
}
.scn-bangor-archdeacon-house-metre-ballad-mongers .bm-wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(135deg, #f0dcb8 0%, #d4b890 100%);
}
.scn-bangor-archdeacon-house-metre-ballad-mongers .bm-cat {
  position:absolute; bottom:30%; left:40%; width:30px; height:24px;
  background: linear-gradient(180deg, #d4a060 0%, #b07840 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bm-cat 1.6s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-metre-ballad-mongers .bm-candlestick {
  position:absolute; bottom:35%; left:60%; width:12px; height:40px;
  background: linear-gradient(180deg, #c8a86a 0%, #906a36 100%);
  border-radius: 4px;
  animation: bm-candlestick 2s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-metre-ballad-mongers .bm-candlestick::before {
  content:''; position:absolute; bottom:100%; left:50%; transform:translateX(-50%);
  width:16px; height:6px;
  background: linear-gradient(180deg, #ffd060 0%, #cc9a30 100%);
  border-radius: 50%;
  animation: bm-candle-flame 1.5s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-metre-ballad-mongers .bm-wheel {
  position:absolute; bottom:25%; left:20%; width:40px; height:40px;
  background: radial-gradient(circle, #8a6a44 0%, #5a402a 100%);
  border-radius: 50%;
  box-shadow: 0 0 0 4px #5a402a;
  animation: bm-wheel 4s linear infinite;
}
.scn-bangor-archdeacon-house-metre-ballad-mongers .bm-shelf {
  position:absolute; top:15%; left:10%; width:80px; height:8px;
  background: linear-gradient(180deg, #a8845e 0%, #785e3c 100%);
  border-radius: 2px;
  animation: bm-shelf 6s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-metre-ballad-mongers .bm-window {
  position:absolute; top:10%; right:15%; width:100px; height:120px;
  background: radial-gradient(ellipse at 50% 30%, #e0f0ff 0%, #b0c8e0 100%);
  border: 6px solid #785e3c;
  border-radius: 4px;
  animation: bm-window 10s ease-in-out infinite alternate;
}
@keyframes bm-cat {
  0% { transform: translateY(0) rotate(-5deg); }
  100% { transform: translateY(-8px) rotate(5deg); }
}
@keyframes bm-candlestick {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(4deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes bm-candle-flame {
  0% { transform: translateX(-50%) scaleY(1); opacity:0.9; }
  100% { transform: translateX(-50%) scaleY(1.3); opacity:1; }
}
@keyframes bm-wheel {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes bm-shelf {
  0% { transform: translateY(0); }
  100% { transform: translateY(-3px); }
}
@keyframes bm-window {
  0% { filter: brightness(1); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(0.95); }
}

/* ── bangor-archdeacon-house-trent-turned ── */
.scn-bangor-archdeacon-house-trent-turned {
  background:
    linear-gradient(180deg, #f2e8d0 0%, #dec8a8 60%, #bea07a 100%),
    radial-gradient(ellipse at 50% 40%, #f0dcc0 0%, transparent 70%);
}
.scn-bangor-archdeacon-house-trent-turned .tt-floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #967a54 0%, #6e5436 100%);
}
.scn-bangor-archdeacon-house-trent-turned .tt-wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(135deg, #e8d4b8 0%, #c8af90 100%);
}
.scn-bangor-archdeacon-house-trent-turned .tt-desk {
  position:absolute; bottom:25%; left:50%; width:200px; height:70px; transform:translateX(-50%);
  background: linear-gradient(180deg, #a8845e 0%, #785e3c 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,.3);
}
.scn-bangor-archdeacon-house-trent-turned .tt-document {
  position:absolute; bottom:40%; left:55%; width:100px; height:30px; transform:translateX(-50%);
  background: linear-gradient(180deg, #f5e6c8 0%, #dccc9e 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,.2);
  animation: tt-document 12s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-trent-turned .tt-inkwell {
  position:absolute; bottom:32%; left:38%; width:20px; height:24px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 20% 20% / 30% 30% 20% 20%;
  animation: tt-inkwell 8s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-trent-turned .tt-quill {
  position:absolute; bottom:38%; left:35%; width:4px; height:50px;
  background: linear-gradient(180deg, #f0e0c0 0%, #a08860 100%);
  border-radius: 50%;
  transform-origin: bottom center;
  animation: tt-quill 5s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-trent-turned .tt-chair {
  position:absolute; bottom:25%; left:65%; width:40px; height:60px; transform:translateX(-50%);
  background: linear-gradient(180deg, #745a3a 0%, #4a3420 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  animation: tt-chair 7s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-trent-turned .tt-curtain {
  position:absolute; top:0; right:10%; width:40px; height:100%;
  background: linear-gradient(180deg, #c8a88a 0%, #a0805a 100%);
  border-radius: 0 0 20% 20%;
  animation: tt-curtain 15s ease-in-out infinite alternate;
}
@keyframes tt-document {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes tt-inkwell {
  0% { transform: translateY(0); }
  100% { transform: translateY(-2px); }
}
@keyframes tt-quill {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes tt-chair {
  0% { transform: translateX(-50%) translateY(0); }
  100% { transform: translateX(-50%) translateY(-3px); }
}
@keyframes tt-curtain {
  0% { left:10%; width:40px; }
  50% { left:12%; width:36px; }
  100% { left:8%; width:44px; }
}

/* ── bangor-archdeacon-house-moon-shines-fair ── */
.scn-bangor-archdeacon-house-moon-shines-fair {
  background:
    linear-gradient(180deg, #0b1a36 0%, #162a52 40%, #24406a 100%),
    radial-gradient(ellipse at 50% 20%, #2c4c7a 0%, transparent 80%);
}
.scn-bangor-archdeacon-house-moon-shines-fair .msf-sky {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #0e2240 0%, #1a3058 100%);
  animation: msf-sky 15s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-moon-shines-fair .msf-moon {
  position:absolute; top:12%; left:50%; width:80px; height:80px; transform:translateX(-50%);
  background: radial-gradient(circle at 50% 40%, #f0e8c8 0%, #d0c8a8 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(240,232,200,0.3);
  animation: msf-moon 8s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-moon-shines-fair .msf-cloud-a {
  position:absolute; top:22%; left:20%; width:120px; height:20px;
  background: linear-gradient(180deg, rgba(200,200,220,0.3) 0%, rgba(200,200,220,0.05) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: msf-cloud-a 40s linear infinite;
}
.scn-bangor-archdeacon-house-moon-shines-fair .msf-cloud-b {
  position:absolute; top:16%; right:15%; width:90px; height:15px;
  background: linear-gradient(180deg, rgba(200,200,220,0.25) 0%, rgba(200,200,220,0.02) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: msf-cloud-b 55s linear infinite reverse;
}
.scn-bangor-archdeacon-house-moon-shines-fair .msf-wall {
  position:absolute; bottom:30%; right:30%; width:60px; height:100px;
  background: linear-gradient(180deg, #1a2a42 0%, #0e1a2e 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-bangor-archdeacon-house-moon-shines-fair .msf-figure {
  position:absolute; bottom:30%; left:40%; width:24px; height:50px;
  background: linear-gradient(180deg, #2a3a52 0%, #161e30 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: msf-figure 6s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-moon-shines-fair .msf-ground {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #0e1a2e 0%, #061020 100%);
  box-shadow: inset 0 8px 30px rgba(0,0,0,.6);
}
.scn-bangor-archdeacon-house-moon-shines-fair .msf-gate {
  position:absolute; bottom:30%; left:60%; width:30px; height:80px;
  background: linear-gradient(180deg, #202e42 0%, #0e1626 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: msf-gate 10s ease-in-out infinite alternate;
}
@keyframes msf-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes msf-moon {
  0% { box-shadow: 0 0 50px 15px rgba(240,232,200,0.2); }
  50% { box-shadow: 0 0 70px 25px rgba(240,232,200,0.35); }
  100% { box-shadow: 0 0 50px 15px rgba(240,232,200,0.2); }
}
@keyframes msf-cloud-a {
  0% { left: -120px; }
  100% { left: 100vw; }
}
@keyframes msf-cloud-b {
  0% { right: -90px; }
  100% { right: 100vw; }
}
@keyframes msf-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes msf-gate {
  0% { transform: scaleY(1); }
  100% { transform: scaleY(0.98); }
}

/* bangor-archdeacon-house-truth-shame-devil (funny, bright-interior) */
.scn-bangor-archdeacon-house-truth-shame-devil {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #e3d0a0 40%, #d4b87a 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%);
}
.scn-bangor-archdeacon-house-truth-shame-devil .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f5e6c8 0%, #efdbb0 100%);
}
.scn-bangor-archdeacon-house-truth-shame-devil .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #c8a86e 0%, #a88550 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-bangor-archdeacon-house-truth-shame-devil .lectern {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #8b6f4a 0%, #654829 100%);
  border-radius: 5% 5% 8% 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: tru-lectern 5s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-truth-shame-devil .book {
  position: absolute; bottom: 50%; left: 50%; transform: translateX(-50%);
  width: 36px; height: 28px;
  background: linear-gradient(135deg, #d4b87a 0%, #b8965a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: tru-book 4s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-truth-shame-devil .figure-archdeacon {
  position: absolute; bottom: 30%; left: 38%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: tru-fig-arch 2s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-truth-shame-devil .figure-devil {
  position: absolute; bottom: 30%; left: 58%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #6a2a1a 0%, #3a0a0a 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  filter: drop-shadow(0 -4px 8px rgba(200,80,40,0.3));
  animation: tru-fig-devil 1.5s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-truth-shame-devil .candle {
  position: absolute; bottom: 35%; left: 45%; width: 8px; height: 22px;
  background: linear-gradient(180deg, #ffd680 0%, #e0a050 100%);
  border-radius: 3px 3px 2px 2px;
  box-shadow: inset 0 -4px 4px rgba(0,0,0,0.2);
  animation: tru-candle 3s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-truth-shame-devil .glow {
  position: absolute; bottom: 40%; left: 45%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,214,128,0.4) 0%, rgba(255,200,100,0.1) 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: tru-glow 2s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-truth-shame-devil .speckle-a {
  position: absolute; top: 10%; left: 20%; width: 4px; height: 4px;
  background: #fff8e0; border-radius: 50%;
  animation: tru-speckle 8s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-truth-shame-devil .speckle-b {
  position: absolute; top: 15%; left: 70%; width: 3px; height: 3px;
  background: #fff8e0; border-radius: 50%;
  animation: tru-speckle 12s ease-in-out infinite reverse;
}

@keyframes tru-lectern { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-0.5deg); } }
@keyframes tru-book { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) rotate(1deg); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes tru-fig-arch { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes tru-fig-devil { 0% { transform: translateX(0) scaleY(1); } 30% { transform: translateX(-8px) scaleY(1.05) rotate(-5deg); } 60% { transform: translateX(8px) scaleY(0.95) rotate(5deg); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes tru-candle { 0% { opacity: 0.7; box-shadow: inset 0 -2px 2px rgba(0,0,0,0.2); } 50% { opacity: 1; box-shadow: inset 0 -2px 2px rgba(0,0,0,0.2), 0 0 6px 2px rgba(255,200,100,0.3); } 100% { opacity: 0.8; box-shadow: inset 0 -2px 2px rgba(0,0,0,0.2); } }
@keyframes tru-glow { 0% { opacity: 0.3; transform: scale(0.95); } 50% { opacity: 0.6; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(1); } }
@keyframes tru-speckle { 0% { opacity: 1; transform: translateY(0); } 50% { opacity: 0.2; transform: translateY(-10px); } 100% { opacity: 1; transform: translateY(0); } }

/* bangor-archdeacon-house-bolingbroke-thrice (tense, bright-interior) */
.scn-bangor-archdeacon-house-bolingbroke-thrice {
  background: 
    linear-gradient(180deg, #d4c4a0 0%, #b8a078 40%, #8a6e4a 100%),
    radial-gradient(ellipse at 80% 20%, #fff8e0 0%, transparent 50%);
}
.scn-bangor-archdeacon-house-bolingbroke-thrice .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d4c4a0 0%, #c4b080 100%);
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.15);
}
.scn-bangor-archdeacon-house-bolingbroke-thrice .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a5e3a 0%, #5a3e1a 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
}
.scn-bangor-archdeacon-house-bolingbroke-thrice .window {
  position: absolute; top: 8%; right: 10%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #8a9ab0 0%, #6a7a90 100%);
  border: 4px solid #4a3a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 16px rgba(0,0,0,0.3);
  animation: bol-window 6s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-bolingbroke-thrice .rain-1 {
  position: absolute; top: 8%; right: 10%; width: 4px; height: 80px;
  background: linear-gradient(180deg, rgba(160,180,200,0.6) 0%, transparent 100%);
  transform: rotate(10deg);
  animation: bol-rain1 1.5s linear infinite;
}
.scn-bangor-archdeacon-house-bolingbroke-thrice .rain-2 {
  position: absolute; top: 8%; right: 14%; width: 3px; height: 70px;
  background: linear-gradient(180deg, rgba(160,180,200,0.5) 0%, transparent 100%);
  transform: rotate(8deg);
  animation: bol-rain2 2s linear infinite;
}
.scn-bangor-archdeacon-house-bolingbroke-thrice .table {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #8b6f4a 0%, #5a4020 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-bangor-archdeacon-house-bolingbroke-thrice .boot {
  position: absolute; bottom: 18%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform: rotate(-15deg);
  animation: bol-boot 2s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-bolingbroke-thrice .figure-bolingbroke {
  position: absolute; bottom: 15%; left: 50%; width: 25px; height: 70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bol-fig 3s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-bolingbroke-thrice .ghost-1 {
  position: absolute; bottom: 20%; left: 20%; width: 18px; height: 50px;
  background: linear-gradient(180deg, rgba(160,180,200,0.4) 0%, rgba(160,180,200,0.1) 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: bol-ghost 4s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-bolingbroke-thrice .ghost-2 {
  position: absolute; bottom: 22%; left: 25%; width: 16px; height: 45px;
  background: linear-gradient(180deg, rgba(160,180,200,0.35) 0%, rgba(160,180,200,0.05) 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: bol-ghost 5s ease-in-out infinite 0.5s;
}
.scn-bangor-archdeacon-house-bolingbroke-thrice .ghost-3 {
  position: absolute; bottom: 24%; left: 30%; width: 14px; height: 40px;
  background: linear-gradient(180deg, rgba(160,180,200,0.3) 0%, rgba(160,180,200,0.05) 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: bol-ghost 6s ease-in-out infinite 1s;
}

@keyframes bol-window { 0% { opacity: 0.7; box-shadow: inset 0 0 16px rgba(0,0,0,0.3); } 50% { opacity: 1; box-shadow: inset 0 0 16px rgba(0,0,0,0.2), 0 0 20px rgba(160,180,200,0.4); } 100% { opacity: 0.8; box-shadow: inset 0 0 16px rgba(0,0,0,0.3); } }
@keyframes bol-rain1 { 0% { transform: translateY(-10px) rotate(10deg); opacity: 0; } 10% { opacity: 0.6; } 100% { transform: translateY(100px) rotate(10deg); opacity: 0.2; } }
@keyframes bol-rain2 { 0% { transform: translateY(-10px) rotate(8deg); opacity: 0; } 15% { opacity: 0.5; } 100% { transform: translateY(100px) rotate(8deg); opacity: 0.1; } }
@keyframes bol-boot { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-3px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes bol-fig { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-4px) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes bol-ghost { 0% { transform: translateY(0) scaleY(1); opacity: 0.2; } 50% { transform: translateY(-8px) scaleY(1.05); opacity: 0.5; } 100% { transform: translateY(0) scaleY(1); opacity: 0.2; } }

/* bangor-archdeacon-house-archdeacon-divided (calm, bright-interior) */
.scn-bangor-archdeacon-house-archdeacon-divided {
  background: 
    linear-gradient(180deg, #f0e0c0 0%, #e0c8a0 40%, #c0a080 100%),
    radial-gradient(ellipse at 70% 40%, #fff8e8 0%, transparent 60%);
}
.scn-bangor-archdeacon-house-archdeacon-divided .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0e0c0 0%, #e0c8a0 100%);
}
.scn-bangor-archdeacon-house-archdeacon-divided .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b09060 0%, #907040 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-bangor-archdeacon-house-archdeacon-divided .table {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 140px; height: 16px;
  background: linear-gradient(180deg, #8b6f4a 0%, #5a4020 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-bangor-archdeacon-house-archdeacon-divided .map {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 60px;
  background: linear-gradient(180deg, #e0c8a0 0%, #d4b87a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.scn-bangor-archdeacon-house-archdeacon-divided .region-a {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 33px; height: 60px;
  background: linear-gradient(180deg, #c8a06e 0%, #b89060 100%);
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
  animation: div-region 12s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-archdeacon-divided .region-b {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 34px; height: 60px; margin-left: 33px;
  background: linear-gradient(180deg, #a08060 0%, #907050 100%);
  clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%);
  animation: div-region 14s ease-in-out infinite alternate 1s;
}
.scn-bangor-archdeacon-house-archdeacon-divided .region-c {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 33px; height: 60px; margin-left: 67px;
  background: linear-gradient(180deg, #8a704a 0%, #7a603a 100%);
  clip-path: polygon(10% 0, 100% 0, 100% 100%, 0 100%);
  animation: div-region 16s ease-in-out infinite alternate 2s;
}
.scn-bangor-archdeacon-house-archdeacon-divided .figure-archdeacon {
  position: absolute; bottom: 20%; left: 40%; width: 30px; height: 75px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: div-fig 10s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-archdeacon-divided .quill {
  position: absolute; bottom: 28%; left: 48%; width: 4px; height: 24px;
  background: linear-gradient(180deg, #e0c8a0 0%, #c0a080 100%);
  transform: rotate(20deg);
  animation: div-quill 3s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-archdeacon-divided .candle {
  position: absolute; bottom: 30%; left: 55%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #ffd680 0%, #e0a050 100%);
  border-radius: 3px;
  box-shadow: 0 0 8px 2px rgba(255,200,100,0.3);
  animation: div-candle 4s ease-in-out infinite alternate;
}

@keyframes div-region { 0% { opacity: 0.6; transform: translateX(0) scaleY(1); } 50% { opacity: 1; transform: translateX(0) scaleY(1.02); } 100% { opacity: 0.7; transform: translateX(0) scaleY(1); } }
@keyframes div-fig { 0% { transform: translateX(0) rotate(-1deg); } 33% { transform: translateX(3px) rotate(1deg); } 66% { transform: translateX(-2px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes div-quill { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-2px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes div-candle { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.8; transform: scaleY(1); } }

/* bangor-archdeacon-house-indentures (calm, bright-interior) */
.scn-bangor-archdeacon-house-indentures {
  background: 
    linear-gradient(180deg, #ede0c8 0%, #dcc8a4 40%, #c0a884 100%),
    radial-gradient(ellipse at 50% 40%, #fff8e8 0%, transparent 50%);
}
.scn-bangor-archdeacon-house-indentures .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ede0c8 0%, #dcc8a4 100%);
}
.scn-bangor-archdeacon-house-indentures .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b09870 0%, #907050 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-bangor-archdeacon-house-indentures .table {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 160px; height: 18px;
  background: linear-gradient(180deg, #8b6f4a 0%, #5a4020 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-bangor-archdeacon-house-indentures .parchment {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 50px;
  background: linear-gradient(180deg, #f0e0c0 0%, #e0c8a0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
}
.scn-bangor-archdeacon-house-indentures .seal {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 16px; height: 16px;
  margin-top: 50px; margin-left: -8px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,80,60,0.3);
  animation: ind-seal 8s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-indentures .quill-1 {
  position: absolute; bottom: 30%; left: 40%; width: 3px; height: 22px;
  background: linear-gradient(180deg, #d4b87a 0%, #c0a060 100%);
  transform: rotate(-15deg);
  animation: ind-quill 5s ease-in-out infinite alternate;
}
.scn-bangor-archdeacon-house-indentures .quill-2 {
  position: absolute; bottom: 30%; left: 55%; width: 3px; height: 22px;
  background: linear-gradient(180deg, #d4b87a 0%, #c0a060 100%);
  transform: rotate(15deg);
  animation: ind-quill 6s ease-in-out infinite alternate 1s;
}
.scn-bangor-archdeacon-house-indentures .quill-3 {
  position: absolute; bottom: 30%; left: 50%; width: 3px; height: 22px;
  background: linear-gradient(180deg, #d4b87a 0%, #c0a060 100%);
  transform: rotate(5deg);
  animation: ind-quill 7s ease-in-out infinite alternate 2s;
}
.scn-bangor-archdeacon-house-indentures .figure-percy {
  position: absolute; bottom: 18%; left: 35%; width: 25px; height: 65px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 45% 45% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: ind-fig 12s ease-in-out infinite;
}
.scn-bangor-archdeacon-house-indentures .figure-worcester {
  position: absolute; bottom: 18%; left: 55%; width: 25px; height: 65px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 45% 45% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: ind-fig 14s ease-in-out infinite 2s;
}
.scn-bangor-archdeacon-house-indentures .candle {
  position: absolute; bottom: 25%; left: 60%; width: 8px; height: 32px;
  background: linear-gradient(180deg, #ffd680 0%, #e0a050 100%);
  border-radius: 3px;
  box-shadow: 0 0 8px 2px rgba(255,200,100,0.3);
  animation: ind-candle 6s ease-in-out infinite alternate;
}

@keyframes ind-seal { 0% { transform: translateX(-50%) scale(0.95); box-shadow: 0 0 4px 1px rgba(200,80,60,0.3); } 50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 10px 4px rgba(200,80,60,0.5); } 100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 6px 2px rgba(200,80,60,0.3); } }
@keyframes ind-quill { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes ind-fig { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(-1deg); } 50% { transform: translateX(-2px) rotate(1deg); } 75% { transform: translateX(1px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ind-candle { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.8; transform: scaleY(1); } }

/* scene 1: unsavoury similes — wide room, two figures, candle table */
.scn-prince-apartment-unsavoury-similes {
  background: 
    linear-gradient(180deg, #1a1008 0%, #2a1a0e 30%, #3a2515 70%, #2a1a0e 100%),
    radial-gradient(ellipse at 50% 60%, #4a3520 0%, #1a1008 80%);
}
.scn-prince-apartment-unsavoury-similes .room-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a1008 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.5);
  border-radius: 0 0 20% 20%;
  animation: pas1-wall 10s ease-in-out infinite alternate;
}
.scn-prince-apartment-unsavoury-similes .room-floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(0deg, #1a1008 0%, #2a1a0e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: pas1-floor 8s ease-in-out infinite alternate;
}
.scn-prince-apartment-unsavoury-similes .table {
  position: absolute; bottom: 28%; left: 35%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #3a2515 0%, #2a1a0e 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.7);
  transform: perspective(500px) rotateX(20deg);
  animation: pas1-table 6s ease-in-out infinite;
}
.scn-prince-apartment-unsavoury-similes .candle {
  position: absolute; bottom: 38%; left: 48%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #e0c080 0%, #b09050 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px #d0a060, 0 0 60px 20px rgba(208,160,96,0.4);
  animation: pas1-candle 3s ease-in-out infinite alternate;
}
.scn-prince-apartment-unsavoury-similes .figure-left {
  position: absolute; bottom: 24%; left: 22%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #1a1008 0%, #0e0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pas1-figL 4s ease-in-out infinite;
}
.scn-prince-apartment-unsavoury-similes .figure-right {
  position: absolute; bottom: 22%; right: 18%; width: 14%; height: 34%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: pas1-figR 5s ease-in-out infinite;
}
.scn-prince-apartment-unsavoury-similes .glow-orb {
  position: absolute; bottom: 40%; left: 48%; width: 8%; height: 8%;
  background: radial-gradient(circle, #f0c880 0%, #d0a060 50%, transparent 100%);
  filter: blur(8px);
  animation: pas1-glow 3s ease-in-out infinite alternate;
}
.scn-prince-apartment-unsavoury-similes .shadow-pool {
  position: absolute; bottom: 26%; left: 30%; width: 40%; height: 4%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: pas1-shadow 4s ease-in-out infinite alternate;
}
@keyframes pas1-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes pas1-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pas1-table { 0%,100% { transform: perspective(500px) rotateX(20deg) translateY(0) } 50% { transform: perspective(500px) rotateX(22deg) translateY(-2px) } }
@keyframes pas1-candle { 0% { opacity: 0.9; box-shadow: 0 0 20px 6px #d0a060 } 50% { opacity: 1; box-shadow: 0 0 40px 14px #f0c880 } 100% { opacity: 0.85; box-shadow: 0 0 25px 8px #c09050 } }
@keyframes pas1-figL { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(-2deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pas1-figR { 0% { transform: translateX(0) rotate(2deg) scaleY(1) } 33% { transform: translateX(-5px) rotate(0deg) scaleY(0.98) } 66% { transform: translateX(3px) rotate(4deg) scaleY(1.01) } 100% { transform: translateX(0) rotate(2deg) scaleY(1) } }
@keyframes pas1-glow { 0% { opacity: 0.6; transform: scale(0.9) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.7; transform: scale(0.95) } }
@keyframes pas1-shadow { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.2) scaleY(0.9) } 100% { transform: scaleX(1) scaleY(1) } }

/* scene 2: corrupt saint — close-up on large figure with halo */
.scn-prince-apartment-corrupt-saint {
  background: 
    linear-gradient(180deg, #1c120a 0%, #2a1a0e 40%, #1c120a 100%),
    radial-gradient(ellipse at 50% 70%, #3a2010 0%, transparent 80%);
}
.scn-prince-apartment-corrupt-saint .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1c120a 0%, #2a1a0e 50%, #1c120a 100%);
  box-shadow: inset 0 -30px 60px rgba(0,0,0,0.7);
  animation: pas2-bg 8s ease-in-out infinite alternate;
}
.scn-prince-apartment-corrupt-saint .halo {
  position: absolute; top: 12%; left: 40%; width: 20%; height: 20%;
  background: radial-gradient(circle, #f0d080 0%, #c0a060 40%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: pas2-halo 6s ease-in-out infinite alternate;
}
.scn-prince-apartment-corrupt-saint .stool {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #3a2515 0%, #2a1a0e 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 15px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateX(15deg);
  animation: pas2-stool 4s ease-in-out infinite;
}
.scn-prince-apartment-corrupt-saint .bottle {
  position: absolute; bottom: 30%; left: 65%; width: 6%; height: 15%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: pas2-bottle 5s ease-in-out infinite alternate;
}
.scn-prince-apartment-corrupt-saint .figure-big {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 60%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.5);
  animation: pas2-fig 3s ease-in-out infinite;
}
.scn-prince-apartment-corrupt-saint .candle-stand {
  position: absolute; bottom: 35%; left: 18%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 20%;
  box-shadow: 0 0 15px 3px #c0a060;
  animation: pas2-candle 3.5s ease-in-out infinite alternate;
}
.scn-prince-apartment-corrupt-saint .flicker-light {
  position: absolute; bottom: 40%; left: 18%; width: 4%; height: 2%;
  background: radial-gradient(circle, #f0c880 0%, transparent 100%);
  filter: blur(4px);
  animation: pas2-flicker 1.5s ease-in-out infinite alternate;
}
@keyframes pas2-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes pas2-halo { 0% { transform: scale(0.95); opacity: 0.7 } 50% { transform: scale(1.05); opacity: 1 } 100% { transform: scale(0.98); opacity: 0.8 } }
@keyframes pas2-stool { 0%,100% { transform: perspective(400px) rotateX(15deg) translateY(0) } 50% { transform: perspective(400px) rotateX(17deg) translateY(-3px) } }
@keyframes pas2-bottle { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes pas2-fig { 0% { transform: translateX(0) rotate(0deg) scaleY(1) } 25% { transform: translateX(3px) rotate(2deg) scaleY(1.02) } 50% { transform: translateX(-2px) rotate(-1deg) scaleY(0.98) } 75% { transform: translateX(4px) rotate(1deg) scaleY(1.01) } 100% { transform: translateX(0) rotate(0deg) scaleY(1) } }
@keyframes pas2-candle { 0% { box-shadow: 0 0 10px 2px #c0a060 } 50% { box-shadow: 0 0 25px 8px #f0c880 } 100% { box-shadow: 0 0 15px 4px #d0b070 } }
@keyframes pas2-flicker { 0% { opacity: 0.7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.3) } 100% { opacity: 0.8; transform: scale(0.9) } }

/* scene 3: amendment purse — table, purse, reaching arm, door */
.scn-prince-apartment-amendment-purse {
  background: 
    linear-gradient(180deg, #1a1008 0%, #2a1a0e 50%, #1a1008 100%),
    radial-gradient(ellipse at 40% 50%, #3a2515 0%, transparent 70%);
}
.scn-prince-apartment-amendment-purse .chamber-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a1008 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.6);
  animation: pas3-wall 12s ease-in-out infinite alternate;
}
.scn-prince-apartment-amendment-purse .chamber-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #1a1008 0%, #2a1a0e 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: pas3-floor 10s ease-in-out infinite alternate;
}
.scn-prince-apartment-amendment-purse .table-small {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #3a2515 0%, #2a1a0e 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 16px rgba(0,0,0,0.7);
  transform: perspective(400px) rotateX(25deg);
  animation: pas3-table 6s ease-in-out infinite;
}
.scn-prince-apartment-amendment-purse .purse {
  position: absolute; bottom: 28%; left: 48%; width: 10%; height: 8%;
  background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.6);
  animation: pas3-purse 4s ease-in-out infinite alternate;
}
.scn-prince-apartment-amendment-purse .arm-reaching {
  position: absolute; bottom: 22%; left: 60%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a1008 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  transform-origin: top left;
  animation: pas3-arm 3s ease-in-out infinite;
}
.scn-prince-apartment-amendment-purse .door-frame {
  position: absolute; bottom: 15%; right: 10%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #3a2515 0%, #2a1a0e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5), 0 4px 12px rgba(0,0,0,0.4);
  animation: pas3-door 8s ease-in-out infinite alternate;
}
.scn-prince-apartment-amendment-purse .candle-set {
  position: absolute; bottom: 34%; left: 38%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #e0c080 0%, #b09050 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 24px 6px #d0a060, 0 0 50px 12px rgba(208,160,96,0.3);
  animation: pas3-candle 3s ease-in-out infinite alternate;
}
.scn-prince-apartment-amendment-purse .warm-haze {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 30%;
  background: radial-gradient(ellipse at bottom, #d0a060 0%, transparent 80%);
  filter: blur(12px);
  opacity: 0.3;
  animation: pas3-haze 5s ease-in-out infinite alternate;
}
@keyframes pas3-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes pas3-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes pas3-table { 0%,100% { transform: perspective(400px) rotateX(25deg) translateY(0) } 50% { transform: perspective(400px) rotateX(27deg) translateY(-2px) } }
@keyframes pas3-purse { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(5deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes pas3-arm { 0% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(-8px) rotate(-10deg) } 66% { transform: translateX(-4px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pas3-door { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes pas3-candle { 0% { opacity: 0.8; box-shadow: 0 0 18px 4px #d0a060 } 50% { opacity: 1; box-shadow: 0 0 35px 10px #f0c880 } 100% { opacity: 0.85; box-shadow: 0 0 22px 6px #c09050 } }
@keyframes pas3-haze { 0% { opacity: 0.2; transform: scale(1) } 50% { opacity: 0.4; transform: scale(1.05) } 100% { opacity: 0.25; transform: scale(0.95) } }

/* scene 4: good morning — reclining figure, bench, flagon, capon */
.scn-prince-apartment-good-morning {
  background: 
    linear-gradient(180deg, #1c140c 0%, #2a1e12 40%, #1c140c 100%),
    radial-gradient(ellipse at 50% 80%, #3a2818 0%, transparent 70%);
}
.scn-prince-apartment-good-morning .tavern-corner {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1c140c 0%, #2a1e12 50%, #1c140c 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
  animation: pas4-corner 12s ease-in-out infinite alternate;
}
.scn-prince-apartment-good-morning .bench {
  position: absolute; bottom: 15%; left: 15%; width: 70%; height: 10%;
  background: linear-gradient(180deg, #3a2010 0%, #2a1a0e 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.7);
  transform: perspective(400px) rotateX(20deg);
  animation: pas4-bench 8s ease-in-out infinite;
}
.scn-prince-apartment-good-morning .figure-reclining {
  position: absolute; bottom: 12%; left: 25%; width: 50%; height: 20%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  transform-origin: center bottom;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: pas4-fig 6s ease-in-out infinite;
}
.scn-prince-apartment-good-morning .capon-leg {
  position: absolute; bottom: 18%; left: 55%; width: 8%; height: 6%;
  background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: pas4-capon 3s ease-in-out infinite alternate;
}
.scn-prince-apartment-good-morning .flagon {
  position: absolute; bottom: 20%; right: 20%; width: 8%; height: 16%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 10px rgba(0,0,0,0.6);
  animation: pas4-flagon 5s ease-in-out infinite alternate;
}
.scn-prince-apartment-good-morning .candle-wax {
  position: absolute; bottom: 30%; left: 40%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #e0c080 0%, #b09050 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #d0a060, 0 0 40px 10px rgba(208,160,96,0.3);
  animation: pas4-wax 3s ease-in-out infinite alternate;
}
.scn-prince-apartment-good-morning .mug {
  position: absolute; bottom: 22%; left: 65%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: pas4-mug 7s ease-in-out infinite;
}
.scn-prince-apartment-good-morning .stain {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 4%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  border-radius: 50%;
  animation: pas4-stain 9s ease-in-out infinite alternate;
}
@keyframes pas4-corner { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes pas4-bench { 0%,100% { transform: perspective(400px) rotateX(20deg) translateY(0) } 50% { transform: perspective(400px) rotateX(22deg) translateY(-3px) } }
@keyframes pas4-fig { 0% { transform: translateX(0) rotate(0deg) scaleY(1) } 25% { transform: translateX(4px) rotate(3deg) scaleY(1.02) } 50% { transform: translateX(-2px) rotate(-2deg) scaleY(0.98) } 75% { transform: translateX(5px) rotate(1deg) scaleY(1.01) } 100% { transform: translateX(0) rotate(0deg) scaleY(1) } }
@keyframes pas4-capon { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(5deg) } 100% { transform: translateY(0) rotate(-4deg) } }
@keyframes pas4-flagon { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes pas4-wax { 0% { opacity: 0.8; box-shadow: 0 0 15px 4px #d0a060 } 50% { opacity: 1; box-shadow: 0 0 30px 10px #f0c880 } 100% { opacity: 0.85; box-shadow: 0 0 20px 5px #c09050 } }
@keyframes pas4-mug { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes pas4-stain { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.2) scaleY(0.8) } 100% { transform: scaleX(1) scaleY(1) } }

/* --- rochester-inn-yard-ostler-call --- */
.scn-rochester-inn-yard-ostler-call {
  background:
    linear-gradient(180deg, #0f0a06 0%, #1a120c 40%, #2a1e12 100%),
    radial-gradient(ellipse at 50% 0%, #3a2a1a 0%, transparent 60%);
}
.scn-rochester-inn-yard-ostler-call .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1e140e 0%, #120c08 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,.6);
  animation: ric-ground 20s ease-in-out infinite;
}
.scn-rochester-inn-yard-ostler-call .stable-roof {
  position: absolute; bottom: 42%; left: 15%; width: 40%; height: 18%;
  background: linear-gradient(135deg, #2f2216 0%, #1c140e 100%);
  border-radius: 40% 40% 8% 8% / 60% 60% 10% 10%;
  box-shadow: 0 6px 20px rgba(0,0,0,.5);
  transform: rotate(-2deg);
  animation: ric-roof 14s ease-in-out infinite alternate;
}
.scn-rochester-inn-yard-ostler-call .stable-wall {
  position: absolute; bottom: 24%; left: 25%; width: 30%; height: 24%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 4% 4% 6% 6%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.4);
}
.scn-rochester-inn-yard-ostler-call .horse {
  position: absolute; bottom: 26%; left: 40%; width: 14%; height: 20%;
  background: radial-gradient(ellipse at 50% 40%, #2a2218 0%, #0f0a06 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 -6px 8px rgba(0,0,0,.3);
  transform-origin: bottom center;
  animation: ric-horse 6s ease-in-out infinite;
}
.scn-rochester-inn-yard-ostler-call .ostler {
  position: absolute; bottom: 24%; left: 60%; width: 8%; height: 16%;
  background: linear-gradient(135deg, #1c140e 50%, #0f0a06 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ric-ostler 5s ease-in-out infinite;
}
.scn-rochester-inn-yard-ostler-call .lantern {
  position: absolute; bottom: 40%; left: 32%; width: 6px; height: 10px;
  background: radial-gradient(circle, #ffcc66 0%, #995500 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 24px 8px #ffaa44, 0 0 48px 16px rgba(255,170,68,.3);
  animation: ric-lantern 3s ease-in-out infinite alternate;
}
.scn-rochester-inn-yard-ostler-call .moon-cloud {
  position: absolute; top: 10%; right: 20%; width: 30%; height: 8%;
  background: linear-gradient(90deg, transparent, rgba(200,190,180,.2) 40%, transparent 60%);
  border-radius: 50%;
  filter: blur(10px);
  animation: ric-cloud 40s linear infinite;
}
.scn-rochester-inn-yard-ostler-call .moon {
  position: absolute; top: 12%; right: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, #d4c8b8 0%, #a09070 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(180,160,120,.4);
  opacity: 0.4;
  animation: ric-moon 12s ease-in-out infinite;
}
@keyframes ric-ground {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 0.85; transform: scaleY(1.005); }
  100% { opacity: 0.7; transform: scaleY(1); }
}
@keyframes ric-roof {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-1.5deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes ric-horse {
  0% { transform: scaleY(1) translateX(0); }
  25% { transform: scaleY(1.02) translateX(2px) rotate(2deg); }
  50% { transform: scaleY(0.98) translateX(-2px) rotate(-1deg); }
  75% { transform: scaleY(1.01) translateX(1px) rotate(1deg); }
  100% { transform: scaleY(1) translateX(0); }
}
@keyframes ric-ostler {
  0% { transform: translateX(0) rotate(0); }
  20% { transform: translateX(8px) rotate(-3deg); }
  40% { transform: translateX(16px) rotate(2deg); }
  60% { transform: translateX(24px) rotate(-2deg); }
  80% { transform: translateX(16px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ric-lantern {
  0% { box-shadow: 0 0 16px 4px #ffaa44, 0 0 32px 8px rgba(255,170,68,.2); opacity: 0.6; }
  50% { box-shadow: 0 0 28px 10px #ffcc66, 0 0 48px 16px rgba(255,170,68,.4); opacity: 1; }
  100% { box-shadow: 0 0 20px 6px #ffaa44, 0 0 36px 10px rgba(255,170,68,.25); opacity: 0.7; }
}
@keyframes ric-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(-60px); }
}
@keyframes ric-moon {
  0% { opacity: 0.3; transform: scale(0.95); }
  50% { opacity: 0.6; transform: scale(1.05); }
  100% { opacity: 0.3; transform: scale(0.95); }
}

/* --- rochester-inn-yard-oats-death --- */
.scn-rochester-inn-yard-oats-death {
  background:
    linear-gradient(180deg, #0b0705 0%, #1a120c 40%, #2a1e14 100%),
    radial-gradient(ellipse at 50% 30%, #2a1a0e 0%, transparent 70%);
}
.scn-rochester-inn-yard-oats-death .bg-horizon {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #1a120c 0%, #0f0a06 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-rochester-inn-yard-oats-death .horse-down {
  position: absolute; bottom: 24%; left: 25%; width: 30%; height: 18%;
  background: radial-gradient(ellipse at 50% 30%, #2c2218 0%, #120c08 100%);
  border-radius: 45% 45% 20% 20% / 40% 40% 20% 20%;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,.3);
  transform-origin: bottom center;
  animation: rir-horse 8s ease-in-out infinite;
}
.scn-rochester-inn-yard-oats-death .oats-left {
  position: absolute; bottom: 28%; left: 18%; width: 6px; height: 4px;
  background: #d4b482;
  border-radius: 50%;
  animation: rir-oats 4s ease-in-out infinite;
}
.scn-rochester-inn-yard-oats-death .oats-right {
  position: absolute; bottom: 26%; left: 45%; width: 5px; height: 3px;
  background: #d4b482;
  border-radius: 50%;
  animation: rir-oats 4.5s ease-in-out infinite reverse;
}
.scn-rochester-inn-yard-oats-death .flea-1 {
  position: absolute; bottom: 40%; left: 35%; width: 3px; height: 3px;
  background: #8b5e3c;
  border-radius: 50%;
  animation: rir-flea 2s ease-in-out infinite;
}
.scn-rochester-inn-yard-oats-death .flea-2 {
  position: absolute; bottom: 45%; left: 50%; width: 2px; height: 2px;
  background: #8b5e3c;
  border-radius: 50%;
  animation: rir-flea 2.3s ease-in-out infinite 0.5s;
}
.scn-rochester-inn-yard-oats-death .fellow {
  position: absolute; bottom: 24%; left: 70%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #1a140e 50%, #0f0a06 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: rir-fellow 6s ease-in-out infinite;
}
.scn-rochester-inn-yard-oats-death .ground-dirt {
  position: absolute; bottom: 0; left: 0; right: 0; height: 24%;
  background: linear-gradient(180deg, #1e140e 0%, #0c0804 100%);
  border-radius: 20% 30% 0 0 / 10% 15% 0 0;
  box-shadow: inset 0 6px 10px rgba(0,0,0,.5);
}
@keyframes rir-horse {
  0% { transform: scaleX(1) translateY(0); }
  25% { transform: scaleX(1.01) translateY(-2px) rotate(-1deg); }
  50% { transform: scaleX(0.99) translateY(1px) rotate(1deg); }
  75% { transform: scaleX(1.02) translateY(-3px) rotate(0); }
  100% { transform: scaleX(1) translateY(0); }
}
@keyframes rir-oats {
  0%,100% { transform: translateY(0) scale(1); opacity: 0.4; }
  50% { transform: translateY(-8px) scale(1.3); opacity: 0.8; }
}
@keyframes rir-flea {
  0%,100% { transform: translateY(0) translateX(0) scale(1); }
  30% { transform: translateY(-12px) translateX(4px) scale(1.4); }
  60% { transform: translateY(0) translateX(8px) scale(0.9); }
  80% { transform: translateY(-6px) translateX(10px) scale(1.2); }
}
@keyframes rir-fellow {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-6px) rotate(-2deg); }
  50% { transform: translateX(-12px) rotate(1deg); }
  75% { transform: translateX(-6px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}

/* --- rochester-inn-yard-chamber-lie --- */
.scn-rochester-inn-yard-chamber-lie {
  background:
    linear-gradient(180deg, #0f0a08 0%, #1a1410 30%, #241e14 70%, #0f0a06 100%),
    radial-gradient(ellipse at 50% 0%, #2c2014 0%, transparent 70%);
}
.scn-rochester-inn-yard-chamber-lie .chimney-bg {
  position: absolute; bottom: 0; left: 40%; width: 20%; height: 100%;
  background: linear-gradient(90deg, #1a1410 0%, #0f0c08 100%);
  border-radius: 10% 10% 0 0 / 5% 5% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
}
.scn-rochester-inn-yard-chamber-lie .chimney {
  position: absolute; bottom: 0; left: 42%; width: 16%; height: 100%;
  background: linear-gradient(180deg, #2e2218 0%, #1a120c 60%, #0a0604 100%);
  border-radius: 8% 8% 0 0 / 4% 4% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,.3);
}
.scn-rochester-inn-yard-chamber-lie .leak-drop {
  position: absolute; bottom: 30%; left: 45%; width: 6px; height: 8px;
  background: linear-gradient(180deg, #b8a07a 0%, #8a7050 100%);
  border-radius: 40% 40% 20% 20% / 30% 30% 10% 10%;
  filter: blur(1px);
  animation: ril-leak 2.5s ease-in-out infinite;
}
.scn-rochester-inn-yard-chamber-lie .chamber-pot {
  position: absolute; bottom: 14%; left: 44%; width: 12%; height: 12%;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 20%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
  transform-origin: bottom center;
  animation: ril-pot 8s ease-in-out infinite;
}
.scn-rochester-inn-yard-chamber-lie .flea-a {
  position: absolute; bottom: 40%; left: 35%; width: 3px; height: 3px;
  background: #7a5a3e;
  border-radius: 50%;
  animation: ril-flea 3s ease-in-out infinite;
}
.scn-rochester-inn-yard-chamber-lie .flea-b {
  position: absolute; bottom: 50%; left: 55%; width: 2px; height: 2px;
  background: #7a5a3e;
  border-radius: 50%;
  animation: ril-flea 3.2s ease-in-out infinite 1s;
}
.scn-rochester-inn-yard-chamber-lie .carrier {
  position: absolute; bottom: 18%; left: 28%; width: 12%; height: 28%;
  background: linear-gradient(135deg, #1e1812 60%, #0f0a06 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ril-carrier 5s ease-in-out infinite;
}
.scn-rochester-inn-yard-chamber-lie .shadow-arm {
  position: absolute; bottom: 28%; left: 38%; width: 6%; height: 8%;
  background: #140e08;
  border-radius: 30% 30% 20% 20% / 40% 40% 10% 10%;
  transform-origin: left bottom;
  animation: ril-arm 4s ease-in-out infinite alternate;
}
@keyframes ril-leak {
  0%,100% { transform: translateY(0) scaleY(1); opacity: 0.5; }
  50% { transform: translateY(20px) scaleY(1.3); opacity: 0.9; }
}
@keyframes ril-pot {
  0% { transform: rotate(0) scale(1); }
  25% { transform: rotate(3deg) scale(1.01); }
  50% { transform: rotate(-2deg) scale(0.99); }
  75% { transform: rotate(1deg) scale(1.02); }
  100% { transform: rotate(0) scale(1); }
}
@keyframes ril-flea {
  0%,100% { transform: translateY(0) translateX(0) scale(1); }
  40% { transform: translateY(-15px) translateX(5px) scale(1.5); }
  70% { transform: translateY(0) translateX(10px) scale(0.8); }
}
@keyframes ril-carrier {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(10px) rotate(2deg); }
  60% { transform: translateX(-5px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ril-arm {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}

/* --- rochester-inn-yard-starved-turkeys --- */
.scn-rochester-inn-yard-starved-turkeys {
  background:
    linear-gradient(180deg, #130e0a 0%, #1a1410 30%, #221c16 60%, #0c0804 100%),
    radial-gradient(ellipse at 30% 20%, #2c2010 0%, transparent 70%);
}
.scn-rochester-inn-yard-starved-turkeys .basket-base {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 30%;
  background: radial-gradient(ellipse at 50% 40%, #4a3520 20%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 30% 30% 20% 20%;
  box-shadow: 0 10px 20px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: rit-basket 6s ease-in-out infinite;
}
.scn-rochester-inn-yard-starved-turkeys .basket-weave {
  position: absolute; bottom: 20%; left: 27%; width: 46%; height: 26%;
  background: repeating-linear-gradient(
    45deg,
    transparent,
    transparent 4px,
    #3a2512 4px,
    #3a2512 5px
  );
  border-radius: 40% 40% 30% 30% / 30% 30% 20% 20%;
  opacity: 0.3;
}
.scn-rochester-inn-yard-starved-turkeys .turkey-1 {
  position: absolute; bottom: 38%; left: 35%; width: 8%; height: 12%;
  background: radial-gradient(ellipse at 50% 30%, #8a7a66 20%, #4a3a28 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: rit-turkey1 3s ease-in-out infinite;
}
.scn-rochester-inn-yard-starved-turkeys .turkey-2 {
  position: absolute; bottom: 36%; left: 55%; width: 7%; height: 10%;
  background: radial-gradient(ellipse at 50% 30%, #8a7a66 20%, #4a3a28 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: rit-turkey2 3.5s ease-in-out infinite;
}
.scn-rochester-inn-yard-starved-turkeys .starve-hand {
  position: absolute; bottom: 30%; left: 15%; width: 10%; height: 14%;
  background: #1c1410;
  border-radius: 30% 30% 10% 10% / 40% 40% 15% 15%;
  transform-origin: right center;
  animation: rit-hand 2s ease-in-out infinite alternate;
}
.scn-rochester-inn-yard-starved-turkeys .ground-straw {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #2a1e12 0%, #0f0a04 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.4);
}
.scn-rochester-inn-yard-starved-turkeys .dust {
  position: absolute; bottom: 20%; left: 20%; width: 4px; height: 4px;
  background: rgba(180,150,100,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: rit-dust 5s ease-out infinite;
}
@keyframes rit-basket {
  0% { transform: scale(1) rotate(0); }
  30% { transform: scale(1.01) rotate(1deg); }
  60% { transform: scale(0.99) rotate(-1deg); }
  100% { transform: scale(1) rotate(0); }
}
@keyframes rit-turkey1 {
  0% { transform: translateY(0) rotate(0); }
  20% { transform: translateY(-4px) rotate(3deg); }
  40% { transform: translateY(2px) rotate(-2deg); }
  60% { transform: translateY(-6px) rotate(4deg); }
  80% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes rit-turkey2 {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(3px) rotate(-3deg); }
  50% { transform: translateY(-5px) rotate(2deg); }
  75% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes rit-hand {
  0% { transform: translateX(0) rotate(-5deg); }
  100% { transform: translateX(15px) rotate(10deg); }
}
@keyframes rit-dust {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  100% { transform: translateY(-30px) scale(2); opacity: 0; }
}

/* boars-head-tavern-i-do-i-will */
.scn-boars-head-tavern-i-do-i-will {
  background: linear-gradient(180deg, #1a140a 0%, #2a1c0e 40%, #1a0e06 100%),
              radial-gradient(ellipse at 50% 100%, #3a2818 0%, transparent 70%);
}
.scn-boars-head-tavern-i-do-i-will .bht1-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1c0e 0%, #1a100a 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,.6);
}
.scn-boars-head-tavern-i-do-i-will .bht1-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2818 0%, #1e140a 100%);
}
.scn-boars-head-tavern-i-do-i-will .bht1-door {
  position: absolute; bottom: 25%; left: 15%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #4a3320 0%, #291a0a 100%);
  border-radius: 4% 4% 0 0; box-shadow: -2px 0 8px rgba(0,0,0,.5);
  transform-origin: left center;
  animation: bht1-door-swing 4s ease-in-out infinite;
}
.scn-boars-head-tavern-i-do-i-will .bht1-knock {
  position: absolute; bottom: 55%; left: 22%; width: 14px; height: 14px;
  background: radial-gradient(circle, #c8a060 0%, #8a6030 70%);
  border-radius: 50%; box-shadow: 0 0 12px 3px rgba(200,160,96,.4);
  animation: bht1-knock-thump 1.8s ease-in-out infinite;
}
.scn-boars-head-tavern-i-do-i-will .bht1-figure {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bht1-run 3s ease-in-out infinite;
}
.scn-boars-head-tavern-i-do-i-will .bht1-hostess {
  position: absolute; bottom: 30%; left: 70%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bht1-exit 5s ease-in-out infinite;
}
.scn-boars-head-tavern-i-do-i-will .bht1-table {
  position: absolute; bottom: 28%; left: 35%; width: 70px; height: 10px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,.4);
}
.scn-boars-head-tavern-i-do-i-will .bht1-candle {
  position: absolute; bottom: 36%; left: 45%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #d0a070 0%, #8a6030 100%);
  border-radius: 2px 2px 0 0;
  animation: bht1-candle-flicker 1.5s ease-in-out infinite alternate;
}
@keyframes bht1-door-swing {
  0%,100% { transform: rotate(0deg); }
  25% { transform: rotate(-12deg) scaleX(1.02); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(8deg) scaleX(0.98); }
}
@keyframes bht1-knock-thump {
  0%,100% { transform: translateY(0) scale(1); opacity: 0.8; }
  30% { transform: translateY(-6px) scale(1.2); opacity: 1; }
  60% { transform: translateY(0) scale(0.9); opacity: 0.6; }
}
@keyframes bht1-run {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(20px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(40px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(60px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(80px) translateY(0) rotate(0deg); }
}
@keyframes bht1-exit {
  0%,100% { transform: translateX(0) scale(1); }
  25% { transform: translateX(-10px) scale(0.95); }
  50% { transform: translateX(-20px) scale(0.9); }
  75% { transform: translateX(-30px) scale(0.85); }
  100% { transform: translateX(-40px) scale(0.8); opacity: 0; }
}
@keyframes bht1-candle-flicker {
  0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 8px 2px #d0a070; }
  50% { transform: scaleY(1.15) translateY(-2px); box-shadow: 0 0 14px 4px #e0b080; }
  100% { transform: scaleY(0.9) translateY(1px); box-shadow: 0 0 6px 1px #b08050; }
}

/* boars-head-tavern-devil-fiddlestick */
.scn-boars-head-tavern-devil-fiddlestick {
  background: linear-gradient(180deg, #1a1208 0%, #2a1c0e 50%, #120a04 100%),
              radial-gradient(ellipse at 60% 30%, #3a2210 0%, transparent 60%);
}
.scn-boars-head-tavern-devil-fiddlestick .bht2-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #24160a 0%, #1a0e06 100%);
  box-shadow: inset 0 2px 16px rgba(0,0,0,.7);
}
.scn-boars-head-tavern-devil-fiddlestick .bht2-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1c0e 0%, #140a04 100%);
}
.scn-boars-head-tavern-devil-fiddlestick .bht2-door {
  position: absolute; bottom: 25%; left: 10%; width: 50px; height: 85px;
  background: linear-gradient(180deg, #3a2818 0%, #1a100a 100%);
  border-radius: 4% 4% 0 0; box-shadow: -2px 0 8px rgba(0,0,0,.6);
  animation: bht2-door-rattle 2.4s ease-in-out infinite;
}
.scn-boars-head-tavern-devil-fiddlestick .bht2-devil {
  position: absolute; bottom: 55%; left: 40%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #3a1a0e 0%, #1a0a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: bht2-devil-bounce 1.8s ease-in-out infinite;
}
.scn-boars-head-tavern-devil-fiddlestick .bht2-fiddlestick {
  position: absolute; bottom: 52%; left: 44%; width: 60px; height: 4px;
  background: linear-gradient(90deg, #5a3a1a 0%, #3a2210 50%, #5a3a1a 100%);
  border-radius: 2px; transform-origin: bottom left;
  animation: bht2-fiddle-wobble 2s ease-in-out infinite;
}
.scn-boars-head-tavern-devil-fiddlestick .bht2-sheriff {
  position: absolute; bottom: 28%; left: 20%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a1a0e 0%, #100a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bht2-sheriff-enter 6s ease-in-out infinite;
}
.scn-boars-head-tavern-devil-fiddlestick .bht2-chair {
  position: absolute; bottom: 28%; right: 20%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #4a3320 0%, #2a1a0e 100%);
  border-radius: 4px; transform: rotate(-15deg);
  animation: bht2-chair-tilt 4s ease-in-out infinite;
}
@keyframes bht2-door-rattle {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(-2deg); }
  50% { transform: translateX(-2px) rotate(1deg); }
  75% { transform: translateX(4px) rotate(-1deg); }
}
@keyframes bht2-devil-bounce {
  0%,100% { transform: translateY(0) scale(1); }
  30% { transform: translateY(-12px) scale(1.15); }
  60% { transform: translateY(0) scale(0.95); }
}
@keyframes bht2-fiddle-wobble {
  0%,100% { transform: rotate(-5deg) scaleX(1); }
  25% { transform: rotate(8deg) scaleX(1.05); }
  50% { transform: rotate(-10deg) scaleX(0.95); }
  75% { transform: rotate(6deg) scaleX(1.02); }
}
@keyframes bht2-sheriff-enter {
  0%,100% { transform: translateX(0) scale(1); opacity: 0; }
  15% { transform: translateX(30px) scale(1.1); opacity: 1; }
  50% { transform: translateX(60px) scale(1); opacity: 1; }
  85% { transform: translateX(90px) scale(0.9); opacity: 1; }
  100% { transform: translateX(120px) scale(0.8); opacity: 0; }
}
@keyframes bht2-chair-tilt {
  0%,100% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-4px); }
}

/* boars-head-tavern-deny-sheriff */
.scn-boars-head-tavern-deny-sheriff {
  background: linear-gradient(180deg, #1a1008 0%, #2a1c0e 40%, #0e0602 100%),
              radial-gradient(ellipse at 30% 60%, #3a2010 0%, transparent 70%);
}
.scn-boars-head-tavern-deny-sheriff .bht3-back {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #22140a 0%, #140804 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,.6);
}
.scn-boars-head-tavern-deny-sheriff .bht3-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1c0e 0%, #0e0602 100%);
}
.scn-boars-head-tavern-deny-sheriff .bht3-arras {
  position: absolute; bottom: 20%; left: 20%; width: 120px; height: 160px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 50%, #1a0e06 100%);
  border-radius: 6px; box-shadow: 2px 0 12px rgba(0,0,0,.5);
  animation: bht3-arras-breathe 8s ease-in-out infinite;
}
.scn-boars-head-tavern-deny-sheriff .bht3-bulge {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 60%, #3a2210 0%, #1a0e06 100%);
  border-radius: 50%; transform: translateX(-50%);
  animation: bht3-bulge-move 5s ease-in-out infinite;
}
.scn-boars-head-tavern-deny-sheriff .bht3-stairs {
  position: absolute; bottom: 15%; right: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0e 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  animation: bht3-steps-glow 6s ease-in-out infinite;
}
.scn-boars-head-tavern-deny-sheriff .bht3-figure1 {
  position: absolute; bottom: 35%; right: 25%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bht3-climb1 7s ease-in-out infinite;
}
.scn-boars-head-tavern-deny-sheriff .bht3-figure2 {
  position: absolute; bottom: 45%; right: 30%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #3a2010 0%, #0e0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bht3-climb2 7s ease-in-out infinite 1.5s;
}
.scn-boars-head-tavern-deny-sheriff .bht3-door {
  position: absolute; bottom: 20%; left: 5%; width: 45px; height: 80px;
  background: linear-gradient(180deg, #3a2818 0%, #1a100a 100%);
  border-radius: 4% 4% 0 0; box-shadow: -2px 0 8px rgba(0,0,0,.7);
  animation: bht3-door-shake 3s ease-in-out infinite;
}
@keyframes bht3-arras-breathe {
  0%,100% { transform: scaleY(1) scaleX(1); }
  50% { transform: scaleY(1.03) scaleX(0.98); }
}
@keyframes bht3-bulge-move {
  0%,100% { transform: translateX(-50%) translateY(0) scale(1); }
  30% { transform: translateX(-50%) translateY(-4px) scale(1.1); }
  60% { transform: translateX(-50%) translateY(2px) scale(0.95); }
}
@keyframes bht3-steps-glow {
  0%,100% { opacity: 0.9; }
  50% { opacity: 1; filter: brightness(1.1); }
}
@keyframes bht3-climb1 {
  0% { transform: translateY(0) translateX(0) rotate(0deg); }
  25% { transform: translateY(-10px) translateX(5px) rotate(2deg); }
  50% { transform: translateY(-20px) translateX(10px) rotate(-1deg); }
  75% { transform: translateY(-30px) translateX(15px) rotate(1deg); }
  100% { transform: translateY(-40px) translateX(20px) rotate(0deg); }
}
@keyframes bht3-climb2 {
  0% { transform: translateY(0) translateX(0) rotate(0deg); }
  25% { transform: translateY(-8px) translateX(4px) rotate(-2deg); }
  50% { transform: translateY(-16px) translateX(8px) rotate(1deg); }
  75% { transform: translateY(-24px) translateX(12px) rotate(-1deg); }
  100% { transform: translateY(-32px) translateX(16px) rotate(0deg); }
}
@keyframes bht3-door-shake {
  0%,100% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(2px) rotate(-1deg); }
  40% { transform: translateX(-3px) rotate(1deg); }
  60% { transform: translateX(2px) rotate(-2deg); }
  80% { transform: translateX(-1px) rotate(1deg); }
}

/* boars-head-tavern-date-out */
.scn-boars-head-tavern-date-out {
  background: linear-gradient(180deg, #1c1208 0%, #2a1c0e 45%, #0e0602 100%),
              radial-gradient(ellipse at 70% 40%, #3a2818 0%, transparent 60%);
}
.scn-boars-head-tavern-date-out .bht4-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1c140a 0%, #140804 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,.6);
}
.scn-boars-head-tavern-date-out .bht4-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1c0e 0%, #0e0602 100%);
}
.scn-boars-head-tavern-date-out .bht4-door {
  position: absolute; bottom: 20%; left: 15%; width: 50px; height: 85px;
  background: linear-gradient(180deg, #3a2818 0%, #1a100a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 2px 0 8px rgba(0,0,0,.6);
  animation: bht4-door-open 5s ease-in-out infinite;
}
.scn-boars-head-tavern-date-out .bht4-sheriff {
  position: absolute; bottom: 25%; left: 8%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bht4-sheriff-in 6s ease-in-out infinite;
}
.scn-boars-head-tavern-date-out .bht4-carrier {
  position: absolute; bottom: 24%; left: 2%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2010 0%, #0e0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bht4-carrier-in 6s ease-in-out infinite 0.5s;
}
.scn-boars-head-tavern-date-out .bht4-hider1 {
  position: absolute; bottom: 30%; right: 30%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bht4-peek 4s ease-in-out infinite;
}
.scn-boars-head-tavern-date-out .bht4-hider2 {
  position: absolute; bottom: 28%; right: 20%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #3a2010 0%, #0e0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bht4-peek 4s ease-in-out infinite 1.2s;
}
.scn-boars-head-tavern-date-out .bht4-table {
  position: absolute; bottom: 28%; right: 10%; width: 60px; height: 8px;
  background: linear-gradient(180deg, #4a3320 0%, #2a1a0e 100%);
  border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,.5);
}
.scn-boars-head-tavern-date-out .bht4-candle {
  position: absolute; bottom: 34%; right: 25%; width: 5px; height: 14px;
  background: linear-gradient(180deg, #d0a070 0%, #8a6030 100%);
  border-radius: 2px 2px 0 0;
  animation: bht4-candle-flicker 1.5s ease-in-out infinite alternate;
}
@keyframes bht4-door-open {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-20px) rotate(-5deg); }
  50% { transform: translateX(-40px) rotate(-10deg); }
  75% { transform: translateX(-20px) rotate(-5deg); }
}
@keyframes bht4-sheriff-in {
  0%,100% { transform: translateX(0) scale(0.9); opacity: 0; }
  20% { transform: translateX(20px) scale(1); opacity: 1; }
  50% { transform: translateX(50px) scale(1.05); opacity: 1; }
  80% { transform: translateX(80px) scale(1); opacity: 0.8; }
  100% { transform: translateX(100px) scale(0.9); opacity: 0; }
}
@keyframes bht4-carrier-in {
  0%,100% { transform: translateX(0) scale(0.85); opacity: 0; }
  20% { transform: translateX(15px) scale(1); opacity: 0.6; }
  50% { transform: translateX(40px) scale(1.03); opacity: 0.8; }
  80% { transform: translateX(65px) scale(1); opacity: 0.5; }
  100% { transform: translateX(80px) scale(0.9); opacity: 0; }
}
@keyframes bht4-peek {
  0%,100% { transform: translateY(0) scale(1); }
  30% { transform: translateY(-6px) scale(1.08); }
  60% { transform: translateY(2px) scale(0.95); }
}
@keyframes bht4-candle-flicker {
  0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 8px 2px #d0a070; }
  50% { transform: scaleY(1.15) translateY(-2px); box-shadow: 0 0 14px 4px #e0b080; }
  100% { transform: scaleY(0.9) translateY(1px); box-shadow: 0 0 6px 1px #b08050; }
}

.scn-kings-camp-falstaff-honour-catechism{
background:linear-gradient(180deg,#f2c88a 0%,#f4d9b2 30%,#a0c4ff 100%),radial-gradient(ellipse at 50% 0%,#f2c88a 0%,transparent 70%);
}
.scn-kings-camp-falstaff-honour-catechism .kc-sky{position:absolute;inset:0 0 40% 0;background:linear-gradient(180deg,#f2c88a 0%,transparent 100%);animation:kc-sky 20s ease-in-out infinite alternate}
.scn-kings-camp-falstaff-honour-catechism .kc-ground{position:absolute;bottom:0;left:0;right:0;height:40%;background:linear-gradient(180deg,#6b8e23 0%,#3b5323 100%);border-radius:60% 40% 0 0;animation:kc-ground 15s ease-in-out infinite alternate}
.scn-kings-camp-falstaff-honour-catechism .kc-falstaff{position:absolute;bottom:38%;left:30%;width:60px;height:80px;background:radial-gradient(circle at 50% 60%,#2a1a0a 0%,#0a0500 100%),linear-gradient(180deg,#3a2a1a 0%,#1a0a00 100%);border-radius:50% 50% 60% 60%/60% 60% 40% 40%;transform-origin:bottom center;animation:kc-falstaff 3s ease-in-out infinite}
.scn-kings-camp-falstaff-honour-catechism .kc-sun{position:absolute;top:15%;right:20%;width:40px;height:40px;background:radial-gradient(circle,#fff6b0 0%,#f2c88a 80%);border-radius:50%;box-shadow:0 0 40px 20px #f2c88a;animation:kc-sun 4s ease-in-out infinite alternate}
.scn-kings-camp-falstaff-honour-catechism .kc-cloud{position:absolute;top:22%;left:10%;width:80px;height:20px;background:rgba(255,255,255,.3);border-radius:50%;filter:blur(8px);animation:kc-cloud 40s linear infinite}
@keyframes kc-sky{0%{opacity:.7}50%{opacity:1}100%{opacity:.8}}
@keyframes kc-ground{0%{transform:translateY(0)}50%{transform:translateY(-3px)}100%{transform:translateY(0)}}
@keyframes kc-falstaff{0%{transform:translateX(0) rotate(-2deg)}25%{transform:translateX(4px) rotate(2deg)}50%{transform:translateX(0) rotate(-3deg)}75%{transform:translateX(-4px) rotate(3deg)}100%{transform:translateX(0) rotate(0)}}
@keyframes kc-sun{0%{transform:scale(1);box-shadow:0 0 30px 15px #f2c88a}50%{transform:scale(1.1);box-shadow:0 0 50px 25px #ffe680}100%{transform:scale(.95);box-shadow:0 0 30px 15px #f2c88a}}
@keyframes kc-cloud{0%{transform:translateX(-100px)}100%{transform:translateX(120vw)}}

.scn-rebel-camp-worcester-hides-offer{
background:linear-gradient(180deg,#2e3b4e 0%,#4a5a6a 50%,#1a2a3a 100%),radial-gradient(ellipse at 50% 100%,#1a2a3a 0%,transparent 70%);
}
.scn-rebel-camp-worcester-hides-offer .rc1-sky{position:absolute;inset:0 0 50% 0;background:linear-gradient(180deg,#2e3b4e 0%,transparent 100%);animation:rc1-sky 30s ease-in-out infinite alternate}
.scn-rebel-camp-worcester-hides-offer .rc1-ground{position:absolute;bottom:0;left:0;right:0;height:50%;background:linear-gradient(180deg,#3a4a3a 0%,#1a2a1a 100%);border-radius:30% 70% 0 0}
.scn-rebel-camp-worcester-hides-offer .rc1-tent{position:absolute;bottom:50%;left:30%;width:80px;height:60px;background:linear-gradient(135deg,#5a4a3a 0%,#2a1a0a 100%);clip-path:polygon(0% 100%,50% 0%,100% 100%);animation:rc1-tent 6s ease-in-out infinite alternate}
.scn-rebel-camp-worcester-hides-offer .rc1-worcester{position:absolute;bottom:44%;left:20%;width:22px;height:50px;background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%);border-radius:50% 50% 30% 30%/60% 60% 40% 40%;transform-origin:bottom center;animation:rc1-wobble 4s ease-in-out infinite}
.scn-rebel-camp-worcester-hides-offer .rc1-vernon{position:absolute;bottom:44%;left:48%;width:20px;height:48px;background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%);border-radius:50% 50% 30% 30%/60% 60% 40% 40%;transform-origin:bottom center;animation:rc1-wobble 4s ease-in-out infinite .5s}
.scn-rebel-camp-worcester-hides-offer .rc1-scroll{position:absolute;bottom:48%;left:38%;width:14px;height:8px;background:radial-gradient(circle,#d4b46a 0%,#8a6e3a 100%);border-radius:4px;transform:rotate(-20deg);animation:rc1-scroll 5s ease-in-out infinite alternate}
@keyframes rc1-sky{0%{opacity:.6}50%{opacity:.9}100%{opacity:.8}}
@keyframes rc1-tent{0%{transform:rotate(1deg)}50%{transform:rotate(-1deg)}100%{transform:rotate(1deg)}}
@keyframes rc1-wobble{0%{transform:translateX(0) rotate(-1deg)}25%{transform:translateX(3px) rotate(1deg)}50%{transform:translateX(0) rotate(-1deg)}75%{transform:translateX(-3px) rotate(1deg)}100%{transform:translateX(0) rotate(0)}}
@keyframes rc1-scroll{0%{opacity:.3;transform:rotate(-20deg) scale(1)}50%{opacity:1;transform:rotate(-10deg) scale(1.1)}100%{opacity:.3;transform:rotate(-20deg) scale(1)}}

.scn-rebel-camp-worcester-undone{
background:linear-gradient(180deg,#2a2a3a 0%,#3a3a4a 50%,#1a1a2a 100%),radial-gradient(ellipse at 50% 100%,#1a1a2a 0%,transparent 70%);
}
.scn-rebel-camp-worcester-undone .rc2-sky{position:absolute;inset:0 0 60% 0;background:linear-gradient(180deg,#2a2a3a 0%,transparent 100%);animation:rc2-sky 25s ease-in-out infinite alternate}
.scn-rebel-camp-worcester-undone .rc2-ground{position:absolute;bottom:0;left:0;right:0;height:60%;background:linear-gradient(180deg,#3a3a2a 0%,#1a1a0a 100%);border-radius:50% 50% 0 0}
.scn-rebel-camp-worcester-undone .rc2-worcester{position:absolute;bottom:44%;left:45%;width:24px;height:55px;background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%);border-radius:50% 50% 30% 30%/60% 60% 40% 40%;transform-origin:bottom center;animation:rc2-figure 2s ease-in-out infinite}
.scn-rebel-camp-worcester-undone .rc2-eye1{position:absolute;top:30%;left:20%;width:10px;height:10px;background:radial-gradient(circle,#d4b46a 0%,#8a6e3a 100%);border-radius:50%;box-shadow:0 0 8px 2px #8a6e3a;animation:rc2-eye 4s step-end infinite}
.scn-rebel-camp-worcester-undone .rc2-eye2{position:absolute;top:25%;left:35%;width:12px;height:12px;background:radial-gradient(circle,#d4b46a 0%,#8a6e3a 100%);border-radius:50%;box-shadow:0 0 8px 2px #8a6e3a;animation:rc2-eye 4s step-end infinite .8s}
.scn-rebel-camp-worcester-undone .rc2-eye3{position:absolute;top:28%;right:30%;width:11px;height:11px;background:radial-gradient(circle,#d4b46a 0%,#8a6e3a 100%);border-radius:50%;box-shadow:0 0 8px 2px #8a6e3a;animation:rc2-eye 4s step-end infinite 1.6s}
.scn-rebel-camp-worcester-undone .rc2-fox{position:absolute;bottom:44%;left:20%;width:40px;height:20px;background:linear-gradient(135deg,#5a3a1a 0%,#2a1a0a 100%);clip-path:polygon(0% 50%,30% 0%,70% 0%,100% 50%,70% 100%,30% 100%);border-radius:0 0 50% 50%/0 0 100% 100%;animation:rc2-fox 8s ease-in-out infinite alternate}
@keyframes rc2-sky{0%{opacity:.7}50%{opacity:.9}100%{opacity:.8}}
@keyframes rc2-figure{0%{transform:translateX(0) rotate(0)}20%{transform:translateX(2px) rotate(1deg)}40%{transform:translateX(-2px) rotate(-1deg)}60%{transform:translateX(1px) rotate(1deg)}80%{transform:translateX(-1px) rotate(-1deg)}100%{transform:translateX(0) rotate(0)}}
@keyframes rc2-eye{0%,90%{opacity:1;transform:scaleY(1)}95%{opacity:.3;transform:scaleY(.1)}100%{opacity:1;transform:scaleY(1)}}
@keyframes rc2-fox{0%{transform:translateX(0)}50%{transform:translateX(-20px)}100%{transform:translateX(0)}}

.scn-rebel-camp-worcester-nephew-excuse{
background:linear-gradient(180deg,#2e3b4e 0%,#4a5a6a 50%,#1a2a3a 100%),radial-gradient(ellipse at 50% 0%,#1a2a3a 0%,transparent 70%);
}
.scn-rebel-camp-worcester-nephew-excuse .rc3-sky{position:absolute;inset:0 0 70% 0;background:linear-gradient(180deg,#2e3b4e 0%,transparent 100%);animation:rc3-sky 30s ease-in-out infinite alternate}
.scn-rebel-camp-worcester-nephew-excuse .rc3-ground{position:absolute;bottom:0;left:0;right:0;height:70%;background:linear-gradient(180deg,#3a4a3a 0%,#1a2a1a 100%);border-radius:0 0 0 0}
.scn-rebel-camp-worcester-nephew-excuse .rc3-worcester{position:absolute;bottom:40%;left:45%;width:24px;height:60px;background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%);border-radius:50% 50% 30% 30%/60% 60% 40% 40%;transform-origin:bottom center;animation:rc3-figure 3s ease-in-out infinite}
.scn-rebel-camp-worcester-nephew-excuse .rc3-weight1{position:absolute;bottom:70%;left:40%;width:20px;height:20px;background:radial-gradient(circle,#5a4a3a 0%,#2a1a0a 100%);border-radius:50%;box-shadow:0 4px 6px rgba(0,0,0,.5);animation:rc3-weight 4s ease-in-out infinite}
.scn-rebel-camp-worcester-nephew-excuse .rc3-weight2{position:absolute;bottom:72%;left:50%;width:18px;height:18px;background:radial-gradient(circle,#5a4a3a 0%,#2a1a0a 100%);border-radius:50%;box-shadow:0 4px 6px rgba(0,0,0,.5);animation:rc3-weight 4s ease-in-out infinite 1s}
.scn-rebel-camp-worcester-nephew-excuse .rc3-weight3{position:absolute;bottom:68%;left:55%;width:22px;height:22px;background:radial-gradient(circle,#5a4a3a 0%,#2a1a0a 100%);border-radius:50%;box-shadow:0 4px 6px rgba(0,0,0,.5);animation:rc3-weight 4s ease-in-out infinite 2s}
@keyframes rc3-sky{0%{opacity:.6}50%{opacity:.9}100%{opacity:.7}}
@keyframes rc3-figure{0%{transform:translateY(0)}30%{transform:translateY(-2px)}60%{transform:translateY(1px)}100%{transform:translateY(0)}}
@keyframes rc3-weight{0%{transform:translateY(0) scale(1)}50%{transform:translateY(-8px) scale(1.1)}100%{transform:translateY(0) scale(1)}}

.scn-field-douglas-flees { background: linear-gradient(180deg, #87CEEB 0%, #FDE08B 40%, #E6A123 100%), radial-gradient(ellipse at 50% 100%, #D99B2C 0%, transparent 70%); }
.scn-field-douglas-flees .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #7EC8E3 0%, #B8D4E8 40%, transparent 100%); animation: dgf-sky 15s ease-in-out infinite alternate; }
.scn-field-douglas-flees .sun { position:absolute; top:15%; right:20%; width:60px; height:60px; background: radial-gradient(circle, #FFF7C0 0%, #FFD700 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 20px #FFD700; animation: dgf-sun 8s ease-in-out infinite alternate; }
.scn-field-douglas-flees .hills { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #6B8E23 0%, #4A6B1A 100%); border-radius: 50% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: dgf-hills 25s ease-in-out infinite alternate; }
.scn-field-douglas-flees .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8B7355 0%, #6B5B3E 80%, #4A3D2A 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.5); animation: dgf-ground 20s ease-in-out infinite; }
.scn-field-douglas-flees .figure1 { position:absolute; bottom:15%; left:10%; width:30px; height:60px; background: linear-gradient(180deg, #3A3A4A 0%, #1A1A2A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dgf-fig1 2.5s ease-in-out infinite; }
.scn-field-douglas-flees .figure2 { position:absolute; bottom:15%; left:28%; width:32px; height:62px; background: linear-gradient(180deg, #4A3A3A 0%, #2A1A1A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dgf-fig2 3s ease-in-out infinite 0.5s; }
.scn-field-douglas-flees .cloud { position:absolute; top:10%; left:-80px; width:120px; height:30px; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter: blur(12px); animation: dgf-cloud 50s linear infinite; }
@keyframes dgf-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes dgf-sun { 0% { transform: scale(1) translate(0,0); box-shadow: 0 0 60px 15px #FFD700; } 50% { transform: scale(1.05) translate(-2px, -2px); box-shadow: 0 0 100px 25px #FFE44D; } 100% { transform: scale(1) translate(0,0); box-shadow: 0 0 80px 20px #FFD700; } }
@keyframes dgf-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes dgf-ground { 0% { background-position: 0 0; } 50% { background-position: 0 5px; } 100% { background-position: 0 0; } }
@keyframes dgf-fig1 { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-3px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes dgf-fig2 { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(6px) translateY(-2px) rotate(-1deg); } 50% { transform: translateX(12px) translateY(0) rotate(1deg); } 75% { transform: translateX(18px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(24px) translateY(0) rotate(0deg); } }
@keyframes dgf-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(150vw); } }

.scn-field-hal-injury { background: linear-gradient(180deg, #B0D4E8 0%, #FCE68B 30%, #D4A024 100%), radial-gradient(ellipse at 50% 80%, #D49A2A 0%, transparent 60%); }
.scn-field-hal-injury .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #9FCAE0 0%, #D4E4B0 40%, transparent 100%); animation: hin-sky 12s ease-in-out infinite; }
.scn-field-hal-injury .sun { position:absolute; top:20%; left:50%; width:50px; height:50px; background: radial-gradient(circle, #FFEAAA 0%, #FFC125 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 100px 30px #FFC125; animation: hin-sun 6s ease-in-out infinite alternate; }
.scn-field-hal-injury .hills { position:absolute; bottom:35%; left:0; right:0; height:25%; background: linear-gradient(180deg, #6B8E23 0%, #4A6B1A 100%); border-radius: 40% 60% 0 0; animation: hin-hills 20s ease-in-out infinite alternate; }
.scn-field-hal-injury .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8B7355 0%, #5C4A31 100%); box-shadow: inset 0 8px 25px rgba(0,0,0,.4); animation: hin-ground 15s ease-in-out infinite; }
.scn-field-hal-injury .figure { position:absolute; bottom:12%; left:45%; width:28px; height:55px; background: linear-gradient(180deg, #3A3A4A 0%, #1A1A2A 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: hin-fig 4s ease-in-out infinite; }
.scn-field-hal-injury .sword { position:absolute; bottom:22%; left:48%; width:3px; height:35px; background: linear-gradient(180deg, #C0C0C0 0%, #808080 100%); border-radius: 2px; transform: rotate(-30deg); transform-origin: bottom center; animation: hin-sword 2s ease-in-out infinite alternate; }
.scn-field-hal-injury .blood { position:absolute; bottom:28%; left:44%; width:8px; height:8px; background: radial-gradient(circle, #C8553D 0%, #8B2A1A 100%); border-radius:50%; box-shadow: 0 0 10px 3px #C8553D; animation: hin-blood 3s ease-in-out infinite alternate; }
@keyframes hin-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes hin-sun { 0% { transform: scale(1); box-shadow: 0 0 80px 20px #FFC125; } 50% { transform: scale(0.95); box-shadow: 0 0 120px 30px #FFD44D; } 100% { transform: scale(1); box-shadow: 0 0 100px 25px #FFC125; } }
@keyframes hin-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes hin-ground { 0% { background-position: 0 0; } 50% { background-position: 0 3px; } 100% { background-position: 0 0; } }
@keyframes hin-fig { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hin-sword { 0% { transform: rotate(-30deg); } 100% { transform: rotate(-20deg); } }
@keyframes hin-blood { 0% { opacity:.6; transform: scale(1); } 100% { opacity:1; transform: scale(1.2); } }

.scn-field-king-sends { background: linear-gradient(135deg, #7E5C3A 0%, #B0925C 50%, #D6B66B 100%), radial-gradient(ellipse at 50% 50%, #C9A84A 0%, transparent 60%); }
.scn-field-king-sends .tent-back { position:absolute; inset:10% 25% 10% 25%; background: linear-gradient(180deg, #D4A84B 0%, #A8843A 100%); border-radius: 20px; box-shadow: inset 0 0 30px rgba(0,0,0,.3); animation: ksd-tentback 20s ease-in-out infinite; }
.scn-field-king-sends .tent-front { position:absolute; inset:15% 30% 15% 30%; background: linear-gradient(180deg, #EAC77A 0%, #C9A34A 100%); border-radius: 15px; box-shadow: 0 0 40px rgba(0,0,0,.2); clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%); animation: ksd-tentfront 25s ease-in-out infinite alternate; }
.scn-field-king-sends .ground { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #6B5B3E 0%, #4A3D2A 100%); box-shadow: inset 0 5px 10px rgba(0,0,0,.5); }
.scn-field-king-sends .figure-king { position:absolute; bottom:18%; left:30%; width:35px; height:65px; background: linear-gradient(180deg, #3A3A4A 0%, #1A1A2A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ksd-king 6s ease-in-out infinite; }
.scn-field-king-sends .figure-messenger { position:absolute; bottom:18%; left:48%; width:30px; height:55px; background: linear-gradient(180deg, #4A4A5A 0%, #2A2A3A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ksd-mess 4s ease-in-out infinite 0.3s; }
.scn-field-king-sends .figure-hotspur { position:absolute; bottom:18%; left:65%; width:33px; height:60px; background: linear-gradient(180deg, #2A2A3A 0%, #0A0A1A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ksd-hotspur 3s ease-in-out infinite 0.6s; }
.scn-field-king-sends .table { position:absolute; bottom:18%; left:38%; width:40px; height:15px; background: linear-gradient(180deg, #8B6914 0%, #6B4E0A 100%); border-radius: 5px; box-shadow: 0 3px 6px rgba(0,0,0,.4); animation: ksd-table 10s ease-in-out infinite; }
@keyframes ksd-tentback { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ksd-tentfront { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes ksd-king { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ksd-mess { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(3px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes ksd-hotspur { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-3deg); } 75% { transform: translateX(-2px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ksd-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

.scn-field-hal-challenges { background: linear-gradient(180deg, #F9D976 0%, #E8B84E 40%, #C68D2A 100%), radial-gradient(ellipse at 50% 100%, #D4A024 0%, transparent 70%); }
.scn-field-hal-challenges .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #FCE68B 0%, #FFD580 40%, transparent 100%); animation: hch-sky 14s ease-in-out infinite; }
.scn-field-hal-challenges .sun { position:absolute; top:20%; right:25%; width:55px; height:55px; background: radial-gradient(circle, #FFF7C0 0%, #FFD700 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 90px 25px #FFD700; animation: hch-sun 7s ease-in-out infinite alternate; }
.scn-field-hal-challenges .hills { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #6B8E23 0%, #4A6B1A 100%); border-radius: 40% 60% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.3); animation: hch-hills 30s ease-in-out infinite alternate; }
.scn-field-hal-challenges .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8B7355 0%, #5C4A31 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.4); animation: hch-ground 18s ease-in-out infinite; }
.scn-field-hal-challenges .figure-hal { position:absolute; bottom:15%; left:25%; width:30px; height:58px; background: linear-gradient(180deg, #3A3A4A 0%, #1A1A2A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hch-hal 2s ease-in-out infinite; }
.scn-field-hal-challenges .figure-percy { position:absolute; bottom:15%; right:25%; width:32px; height:60px; background: linear-gradient(180deg, #2A2A3A 0%, #0A0A1A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hch-percy 2.2s ease-in-out infinite 0.1s; }
.scn-field-hal-challenges .sword-hal { position:absolute; bottom:28%; left:27%; width:3px; height:40px; background: linear-gradient(180deg, #C0C0C0 0%, #808080 100%); border-radius: 2px; transform: rotate(-40deg); transform-origin: bottom center; animation: hch-sword1 1.5s ease-in-out infinite alternate; }
.scn-field-hal-challenges .sword-percy { position:absolute; bottom:28%; right:27%; width:3px; height:40px; background: linear-gradient(180deg, #C0C0C0 0%, #808080 100%); border-radius: 2px; transform: rotate(40deg); transform-origin: bottom center; animation: hch-sword2 1.5s ease-in-out infinite alternate 0.2s; }
@keyframes hch-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes hch-sun { 0% { transform: scale(1); box-shadow: 0 0 70px 20px #FFD700; } 50% { transform: scale(1.03); box-shadow: 0 0 110px 30px #FFE44D; } 100% { transform: scale(1); box-shadow: 0 0 90px 25px #FFD700; } }
@keyframes hch-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hch-ground { 0% { background-position: 0 0; } 50% { background-position: 0 4px; } 100% { background-position: 0 0; } }
@keyframes hch-hal { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hch-percy { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes hch-sword1 { 0% { transform: rotate(-40deg); } 100% { transform: rotate(-30deg); } }
@keyframes hch-sword2 { 0% { transform: rotate(40deg); } 100% { transform: rotate(30deg); } }

.scn-warkworth-castle-not-inch-further {
  background: linear-gradient(180deg, #2c1e1a 0%, #1a1210 40%, #0d0a08 100%), radial-gradient(ellipse at 50% 30%, #3a2820 0%, transparent 70%);
}
.scn-warkworth-castle-not-inch-further .wall-back { position:absolute; inset:0; background: linear-gradient(90deg, #2c1e1a, #1a1210); animation: wc-wall 12s ease-in-out infinite alternate; }
.scn-warkworth-castle-not-inch-further .window { position:absolute; top:20%; left:30%; width:40%; height:30%; background: linear-gradient(180deg, #1a2a3a 0%, #0d1520 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.8); animation: wc-window 8s ease-in-out infinite; }
.scn-warkworth-castle-not-inch-further .sill { position:absolute; top:48%; left:28%; width:44%; height:4%; background: #3a2a20; border-radius: 2px; animation: wc-sill 8s ease-in-out infinite alternate; }
.scn-warkworth-castle-not-inch-further .candle { position:absolute; bottom:47%; left:45%; width:4px; height:12px; background: linear-gradient(180deg, #ffaa40, #ff6600); border-radius: 2px; box-shadow: 0 0 16px 6px #ff6600; animation: wc-candle 3s ease-in-out infinite alternate; }
.scn-warkworth-castle-not-inch-further .figure-left { position:absolute; bottom:30%; left:28%; width:20px; height:50px; background: #1a1210; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wc-figure 6s ease-in-out infinite; }
.scn-warkworth-castle-not-inch-further .figure-right { position:absolute; bottom:30%; right:28%; width:20px; height:50px; background: #1a1210; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wc-figure 6s ease-in-out infinite reverse; }
@keyframes wc-wall { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes wc-window { 0% { background: linear-gradient(180deg, #1a2a3a, #0d1520); } 50% { background: linear-gradient(180deg, #2a3a4a, #1a2a30); } 100% { background: linear-gradient(180deg, #1a2a3a, #0d1520); } }
@keyframes wc-sill { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(1); } }
@keyframes wc-candle { 0% { transform: scaleY(1); opacity:.9; } 50% { transform: scaleY(1.2); opacity:1; } 100% { transform: scaleY(0.95); opacity:.85; } }
@keyframes wc-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }

.scn-boars-head-tavern-where-been {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 50%, #1a1008 100%), radial-gradient(ellipse at 50% 20%, #4a3a20 0%, transparent 70%);
}
.scn-boars-head-tavern-where-been .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a, #1a1008); animation: bw-wall 15s ease-in-out infinite alternate; }
.scn-boars-head-tavern-where-been .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a20, #2a1a10); animation: bw-floor 10s ease-in-out infinite alternate; }
.scn-boars-head-tavern-where-been .barrel-left { position:absolute; bottom:30%; left:10%; width:40px; height:50px; background: linear-gradient(90deg, #5a4030, #3a2820); border-radius: 20% 20% 10% 10%; animation: bw-barrel 6s ease-in-out infinite; }
.scn-boars-head-tavern-where-been .barrel-right { position:absolute; bottom:30%; right:10%; width:40px; height:50px; background: linear-gradient(90deg, #5a4030, #3a2820); border-radius: 20% 20% 10% 10%; animation: bw-barrel 6s ease-in-out infinite; animation-delay: -3s; }
.scn-boars-head-tavern-where-been .table { position:absolute; bottom:35%; left:30%; width:30%; height:5%; background: #4a3020; border-radius: 4px; animation: bw-table 8s ease-in-out infinite; }
.scn-boars-head-tavern-where-been .mug { position:absolute; bottom:37%; left:48%; width:10px; height:15px; background: linear-gradient(180deg, #7a5a40, #5a3a28); border-radius: 0 0 4px 4px; animation: bw-mug 3s ease-in-out infinite alternate; }
.scn-boars-head-tavern-where-been .figure { position:absolute; bottom:30%; left:38%; width:18px; height:45px; background: #1a1008; border-radius: 50% 40% 40% 40% / 60% 60% 40% 40%; animation: bw-figure 4s ease-in-out infinite; }
.scn-boars-head-tavern-where-been .figure-back { position:absolute; bottom:30%; right:38%; width:18px; height:45px; background: #1a1008; border-radius: 50% 40% 40% 40% / 60% 60% 40% 40%; animation: bw-figure 4s ease-in-out infinite reverse; }
@keyframes bw-wall { 0%,100% { opacity:.9; } 50% { opacity:1; } }
@keyframes bw-floor { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes bw-barrel { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02) rotate(1deg); } }
@keyframes bw-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes bw-mug { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes bw-figure { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-3px) rotate(1deg); } }

.scn-boars-head-tavern-loggerheads {
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 50%, #0d0604 100%), radial-gradient(ellipse at 50% 10%, #3a2018 0%, transparent 70%);
}
.scn-boars-head-tavern-loggerheads .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a10, #0d0604); animation: bl-wall 20s ease-in-out infinite alternate; }
.scn-boars-head-tavern-loggerheads .table { position:absolute; bottom:25%; left:15%; right:15%; height:8%; background: #3a2018; border-radius: 4px; animation: bl-table 12s ease-in-out infinite alternate; }
.scn-boars-head-tavern-loggerheads .head-left { position:absolute; bottom:30%; left:25%; width:20px; height:24px; background: #0d0604; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bl-head 5s ease-in-out infinite; }
.scn-boars-head-tavern-loggerheads .head-right { position:absolute; bottom:30%; left:55%; width:18px; height:22px; background: #0d0604; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bl-head 5s ease-in-out infinite; animation-delay: -2.5s; }
.scn-boars-head-tavern-loggerheads .mug { position:absolute; bottom:27%; left:45%; width:12px; height:18px; background: linear-gradient(180deg, #5a3a28, #3a2018); border-radius: 0 0 4px 4px; animation: bl-mug 4s ease-in-out infinite alternate; }
.scn-boars-head-tavern-loggerheads .candle { position:absolute; bottom:28%; left:48%; width:4px; height:15px; background: linear-gradient(180deg, #ffaa40, #ff6600); border-radius: 2px; box-shadow: 0 0 12px 3px #ff6600; animation: bl-candle 3s ease-in-out infinite alternate; }
@keyframes bl-wall { 0%,100% { opacity:.8; } 50% { opacity:1; } }
@keyframes bl-table { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } }
@keyframes bl-head { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(3deg); } }
@keyframes bl-mug { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }
@keyframes bl-candle { 0%,100% { transform: scaleY(1); opacity:.8; } 50% { transform: scaleY(1.3); opacity:1; } }

.scn-boars-head-tavern-drinking-deep {
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 50%, #0d0604 100%), radial-gradient(ellipse at 50% 30%, #3a2018 0%, transparent 70%);
}
.scn-boars-head-tavern-drinking-deep .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a12, #0d0604); animation: bd-bg 15s ease-in-out infinite alternate; }
.scn-boars-head-tavern-drinking-deep .table { position:absolute; bottom:0; left:10%; right:10%; height:20%; background: #3a2018; border-radius: 4px; animation: bd-table 10s ease-in-out infinite alternate; }
.scn-boars-head-tavern-drinking-deep .mug { position:absolute; bottom:18%; left:40%; width:24px; height:30px; background: linear-gradient(180deg, #5a3a28, #3a2018); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: bd-mug 6s ease-in-out infinite; }
.scn-boars-head-tavern-drinking-deep .liquid { position:absolute; bottom:18%; left:40%; width:20px; height:15px; background: linear-gradient(180deg, #c8553d, #8c2a1a); border-radius: 0 0 4px 4px; animation: bd-liquid 4s ease-in-out infinite alternate; }
.scn-boars-head-tavern-drinking-deep .hand { position:absolute; bottom:20%; left:35%; width:16px; height:20px; background: #2a1a12; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: bd-hand 5s ease-in-out infinite; }
.scn-boars-head-tavern-drinking-deep .spill { position:absolute; bottom:10%; left:30%; width:40%; height:4px; background: linear-gradient(90deg, #c8553d, #8c2a1a); border-radius: 0 0 4px 4px; animation: bd-spill 7s ease-in-out infinite; }
@keyframes bd-bg { 0%,100% { opacity:.8; } 50% { opacity:1; } }
@keyframes bd-table { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } }
@keyframes bd-mug { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes bd-liquid { 0% { height:15px; opacity:.7; } 50% { height:18px; opacity:.9; } 100% { height:15px; opacity:.7; } }
@keyframes bd-hand { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(5px) rotate(5deg); } }
@keyframes bd-spill { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } }

.scn-field-king-division {
  background: linear-gradient(180deg, #4A90D9 0%, #87CEEB 30%, #F0C060 60%, #D2691E 75%, #8B4513 100%), radial-gradient(ellipse at 50% 20%, #FFD700 0%, transparent 70%);
}
.scn-field-king-division .sky {
  position: absolute; inset: 0 0 65% 0;
  background: linear-gradient(180deg, #3A7BD5 0%, transparent 100%);
  animation: fkd-sky 20s ease-in-out infinite alternate;
}
.scn-field-king-division .sun {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 60px;
  background: radial-gradient(circle, #FFF8DC 0%, #FFD700 40%, #FF8C00 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,215,0,0.5), 0 0 160px 60px rgba(255,215,0,0.2);
  animation: fkd-sun 4s ease-in-out infinite alternate;
}
.scn-field-king-division .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8B7355 0%, #6B4226 40%, #4A2A1A 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: fkd-ground 8s ease-in-out infinite alternate;
}
.scn-field-king-division .hill {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, #6B8E23 0%, #556B2F 60%, transparent 70%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 -5px 15px rgba(0,0,0,0.3);
  animation: fkd-hill 10s ease-in-out infinite alternate;
}
.scn-field-king-division .banner-left {
  position: absolute; bottom: 38%; left: 15%; width: 10px; height: 80px;
  background: linear-gradient(180deg, #8B4513 0%, #5C3A1E 100%);
  border-radius: 2px;
}
.scn-field-king-division .banner-left::before {
  content: ''; position: absolute; top: 0; left: 5px; width: 40px; height: 30px;
  background: linear-gradient(135deg, #c8553d 0%, #8B3A2A 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 80%);
  transform-origin: left center;
  animation: fkd-banner-left 3s ease-in-out infinite alternate;
}
.scn-field-king-division .banner-right {
  position: absolute; bottom: 38%; right: 15%; width: 10px; height: 80px;
  background: linear-gradient(180deg, #8B4513 0%, #5C3A1E 100%);
  border-radius: 2px;
}
.scn-field-king-division .banner-right::before {
  content: ''; position: absolute; top: 0; right: 5px; width: 40px; height: 30px;
  background: linear-gradient(135deg, #7B6B3A 0%, #5C4A2A 100%);
  clip-path: polygon(0 0, 100% 0, 0 100%, 0 80%);
  transform-origin: right center;
  animation: fkd-banner-right 3.5s ease-in-out infinite alternate;
}
.scn-field-king-division .figure {
  position: absolute; bottom: 43%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 50px;
  background: radial-gradient(circle at 50% 20%, #1a1a1a 7px, transparent 7px), linear-gradient(180deg, #1a1a1a 0%, #1a1a1a 60%, transparent 60%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  animation: fkd-figure 2s ease-in-out infinite alternate;
}
.scn-field-king-division .shadow {
  position: absolute; bottom: 42%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: fkd-shadow 2s ease-in-out infinite alternate;
}
.scn-field-king-division .cloud {
  position: absolute; top: 15%; left: -100px; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: fkd-cloud 25s linear infinite;
}
@keyframes fkd-sky {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; }
}
@keyframes fkd-sun {
  0% { transform: translateX(-50%) scale(1); opacity: 0.9; box-shadow: 0 0 80px 30px rgba(255,215,0,0.5); }
  50% { transform: translateX(-50%) scale(1.05); opacity: 1; box-shadow: 0 0 100px 40px rgba(255,215,0,0.7); }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.85; box-shadow: 0 0 60px 20px rgba(255,215,0,0.4); }
}
@keyframes fkd-ground {
  0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); }
}
@keyframes fkd-hill {
  0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(0.98); }
}
@keyframes fkd-banner-left {
  0% { transform: skewX(0deg); } 25% { transform: skewX(8deg); } 50% { transform: skewX(-5deg); } 75% { transform: skewX(6deg); } 100% { transform: skewX(0deg); }
}
@keyframes fkd-banner-right {
  0% { transform: skewX(0deg); } 25% { transform: skewX(-8deg); } 50% { transform: skewX(5deg); } 75% { transform: skewX(-6deg); } 100% { transform: skewX(0deg); }
}
@keyframes fkd-figure {
  0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1.5deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(-0.5deg); }
}
@keyframes fkd-shadow {
  0% { transform: translateX(-50%) scaleX(1); opacity: 0.4; } 50% { transform: translateX(-50%) scaleX(1.2); opacity: 0.6; } 100% { transform: translateX(-50%) scaleX(0.8); opacity: 0.3; }
}
@keyframes fkd-cloud {
  0% { transform: translateX(0); opacity: 0; } 10% { opacity: 0.7; } 90% { opacity: 0.7; } 100% { transform: translateX(calc(100vw + 200px)); opacity: 0; }
}

/* Scene: hotspur-corrects */
.scn-plain-camp-hotspur-corrects {
  background: linear-gradient(180deg, #7ec8e3 0%, #f9e79f 40%, #f0c27a 100%),
              radial-gradient(ellipse at 50% 0%, #fff5c0 0%, transparent 50%);
}
.scn-plain-camp-hotspur-corrects .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b6d7e8 0%, transparent 100%);
  animation: hsp-sky 8s ease-in-out infinite alternate;
}
.scn-plain-camp-hotspur-corrects .sun {
  position: absolute; top: 8%; left: 50%; width: 40px; height: 40px; transform: translateX(-50%);
  background: radial-gradient(circle at 50% 50%, #fff5c0 30%, #f9e79f 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #f9e79f, 0 0 60px 20px rgba(249,231,159,0.4);
  animation: hsp-sun 6s ease-in-out infinite alternate;
}
.scn-plain-camp-hotspur-corrects .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #a6b07a 0%, #6b7a3e 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-plain-camp-hotspur-corrects .knight-left {
  position: absolute; bottom: 35%; left: 20%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #5a6b8a 0%, #3a4a6a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hsp-knight-left 4s ease-in-out infinite;
}
.scn-plain-camp-hotspur-corrects .knight-left::before {
  content: ''; position: absolute; top: -15px; left: 50%; transform: translateX(-50%);
  width: 30px; height: 30px;
  background: linear-gradient(180deg, #7a8aa0 0%, #4a5a70 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
}
.scn-plain-camp-hotspur-corrects .knight-right {
  position: absolute; bottom: 35%; right: 20%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hsp-knight-right 4s ease-in-out infinite;
}
.scn-plain-camp-hotspur-corrects .knight-right::before {
  content: ''; position: absolute; top: -15px; left: 50%; transform: translateX(-50%);
  width: 30px; height: 30px;
  background: linear-gradient(180deg, #a08050 0%, #705030 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
}
.scn-plain-camp-hotspur-corrects .sword-clash {
  position: absolute; bottom: 55%; left: 50%; width: 20px; height: 20px; transform: translate(-50%, -50%);
  background: radial-gradient(circle, #fff9e0 0%, #f0d060 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #f0d060, 0 0 40px 15px rgba(240,208,96,0.5);
  animation: hsp-clash 1.5s ease-in-out infinite alternate;
}
.scn-plain-camp-hotspur-corrects .flag {
  position: absolute; bottom: 55%; left: 35%; width: 10px; height: 20px;
  background: #c8553d;
  border-radius: 20% / 50%;
  transform-origin: bottom center;
  animation: hsp-flag 2s ease-in-out infinite alternate;
}
@keyframes hsp-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hsp-sun { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05); } 100% { transform: translateX(-50%) scale(0.95); } }
@keyframes hsp-knight-left { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes hsp-knight-right { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes hsp-clash { 0% { opacity: 0.5; transform: translate(-50%, -50%) scale(0.8); } 50% { opacity: 1; transform: translate(-50%, -50%) scale(1.2); } 100% { opacity: 0.3; transform: translate(-50%, -50%) scale(0.6); } }
@keyframes hsp-flag { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }

/* Scene: douglas-kill-all-coats */
.scn-plain-camp-douglas-kill-all-coats {
  background: linear-gradient(180deg, #c8d8e8 0%, #f0d6a0 40%, #c8a070 100%),
              radial-gradient(ellipse at 50% 20%, #fff3c0 0%, transparent 60%);
}
.scn-plain-camp-douglas-kill-all-coats .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #a8b8d8 0%, transparent 100%);
  animation: dgl-sky 12s ease-in-out infinite alternate;
}
.scn-plain-camp-douglas-kill-all-coats .sun {
  position: absolute; top: 6%; left: 50%; width: 50px; height: 50px; transform: translateX(-50%);
  background: radial-gradient(circle, #fff8d0 20%, #f0d060 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #f0d060, 0 0 80px 30px rgba(240,208,96,0.3);
  animation: dgl-sun 8s ease-in-out infinite alternate;
}
.scn-plain-camp-douglas-kill-all-coats .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #a0825a 0%, #605030 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,0.4);
}
.scn-plain-camp-douglas-kill-all-coats .douglas {
  position: absolute; bottom: 25%; left: 50%; width: 45px; height: 110px; transform: translateX(-50%);
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dgl-douglas 5s ease-in-out infinite;
}
.scn-plain-camp-douglas-kill-all-coats .douglas::before {
  content: ''; position: absolute; top: -18px; left: 50%; transform: translateX(-50%);
  width: 35px; height: 35px;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
}
.scn-plain-camp-douglas-kill-all-coats .coat1,
.scn-plain-camp-douglas-kill-all-coats .coat2,
.scn-plain-camp-douglas-kill-all-coats .coat3 {
  position: absolute; bottom: 15%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #a0461a 0%, #7a2e0a 100%); /* rust */
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  opacity: 0.7;
  animation: dgl-coat 6s ease-in-out infinite;
}
.scn-plain-camp-douglas-kill-all-coats .coat1 { left: 15%; animation-delay: 0s; }
.scn-plain-camp-douglas-kill-all-coats .coat2 { left: 35%; width: 40px; background: linear-gradient(180deg, #6b5a4a 0%, #4a3a2a 100%); animation-delay: -2s; }
.scn-plain-camp-douglas-kill-all-coats .coat3 { left: 60%; width: 45px; background: linear-gradient(180deg, #704830 0%, #503020 100%); animation-delay: -4s; }
.scn-plain-camp-douglas-kill-all-coats .dagger {
  position: absolute; bottom: 35%; left: 45%; width: 8px; height: 25px;
  background: linear-gradient(180deg, #d0d0d0 0%, #808080 100%);
  border-radius: 10% / 50%;
  transform-origin: bottom center;
  animation: dgl-dagger 2s ease-in-out infinite alternate;
}
@keyframes dgl-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes dgl-sun { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.06); } 100% { transform: translateX(-50%) scale(0.94); } }
@keyframes dgl-douglas { 0% { transform: translateX(-50%) rotate(0deg) translateY(0); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-3px); } 100% { transform: translateX(-50%) rotate(-1deg) translateY(0); } }
@keyframes dgl-coat { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dgl-dagger { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(20deg) scaleY(1.1); } 100% { transform: rotate(5deg) scaleY(1); } }

/* Scene: falstaff-solus */
.scn-plain-camp-falstaff-solus {
  background: linear-gradient(180deg, #8fc5e8 0%, #fce5b0 50%, #f0c27a 100%),
              radial-gradient(ellipse at 50% 30%, #fff8d0 0%, transparent 60%);
}
.scn-plain-camp-falstaff-solus .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0d8f0 0%, transparent 100%);
  animation: fsl-sky 10s ease-in-out infinite alternate;
}
.scn-plain-camp-falstaff-solus .sun {
  position: absolute; top: 5%; left: 50%; width: 45px; height: 45px; transform: translateX(-50%);
  background: radial-gradient(circle, #fff8c0 20%, #f0d060 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 35px 12px #f0d060, 0 0 70px 25px rgba(240,208,96,0.3);
  animation: fsl-sun 7s ease-in-out infinite alternate;
}
.scn-plain-camp-falstaff-solus .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b8a070 0%, #7a5a30 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.3);
}
.scn-plain-camp-falstaff-solus .falstaff-body {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 90px; height: 70px;
  background: radial-gradient(ellipse at 50% 60%, #c8845a 0%, #a06038 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  animation: fsl-body 3s ease-in-out infinite;
}
.scn-plain-camp-falstaff-solus .falstaff-head {
  position: absolute; bottom: 68%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 40px;
  background: radial-gradient(circle at 50% 40%, #d8a070 0%, #b87850 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fsl-head 4s ease-in-out infinite alternate;
}
.scn-plain-camp-falstaff-solus .flagon {
  position: absolute; bottom: 30%; left: 35%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: fsl-flagon 5s ease-in-out infinite;
}
.scn-plain-camp-falstaff-solus .sword {
  position: absolute; bottom: 15%; right: 25%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #d0d0d0 0%, #707070 100%);
  border-radius: 20% / 50%;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: fsl-sword 6s ease-in-out infinite;
}
.scn-plain-camp-falstaff-solus .sweat-drop {
  position: absolute; bottom: 72%; left: 55%; width: 6px; height: 10px;
  background: radial-gradient(circle, #a0d8f0 0%, #70b8d0 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: fsl-sweat 2.5s ease-in-out infinite;
}
@keyframes fsl-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes fsl-sun { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.04); } 100% { transform: translateX(-50%) scale(0.96); } }
@keyframes fsl-body { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.03) translateY(-2px); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes fsl-head { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(-5deg); } }
@keyframes fsl-flagon { 0% { transform: rotate(0deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(0deg); } }
@keyframes fsl-sword { 0% { transform: rotate(20deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(25deg); } }
@keyframes fsl-sweat { 0% { transform: translateX(0) translateY(0) scale(1); opacity: 1; } 50% { transform: translateX(5px) translateY(-10px) scale(1.5); opacity: 0.8; } 100% { transform: translateX(10px) translateY(-20px) scale(0.5); opacity: 0; } }

/* Scene: falstaff-claims-percy */
.scn-plain-camp-falstaff-claims-percy {
  background: linear-gradient(180deg, #a0c8e8 0%, #fce5b0 50%, #f0c27a 100%),
              radial-gradient(ellipse at 50% 20%, #fff8d0 0%, transparent 60%);
}
.scn-plain-camp-falstaff-claims-percy .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #c0d8f0 0%, transparent 100%);
  animation: fcp-sky 9s ease-in-out infinite alternate;
}
.scn-plain-camp-falstaff-claims-percy .sun {
  position: absolute; top: 5%; left: 50%; width: 55px; height: 55px; transform: translateX(-50%);
  background: radial-gradient(circle, #fff8d0 20%, #f0d060 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 45px 15px #f0d060, 0 0 90px 30px rgba(240,208,96,0.3);
  animation: fcp-sun 9s ease-in-out infinite alternate;
}
.scn-plain-camp-falstaff-claims-percy .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #b8a070 0%, #7a5a30 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,0.3);
}
.scn-plain-camp-falstaff-claims-percy .falstaff {
  position: absolute; bottom: 20%; left: 30%; transform: translateX(-50%);
  width: 80px; height: 80px;
  background: radial-gradient(ellipse at 50% 60%, #d0885a 0%, #a06038 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  animation: fcp-falstaff 4s ease-in-out infinite;
}
.scn-plain-camp-falstaff-claims-percy .falstaff::before {
  content: ''; position: absolute; top: -20px; left: 50%; transform: translateX(-50%);
  width: 40px; height: 35px;
  background: radial-gradient(circle at 50% 40%, #d8a070 0%, #b87850 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-plain-camp-falstaff-claims-percy .hal {
  position: absolute; bottom: 15%; right: 20%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fcp-hal 5s ease-in-out infinite;
}
.scn-plain-camp-falstaff-claims-percy .hal::before {
  content: ''; position: absolute; top: -15px; left: 50%; transform: translateX(-50%);
  width: 30px; height: 30px;
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
}
.scn-plain-camp-falstaff-claims-percy .sword-f {
  position: absolute; bottom: 30%; left: 38%; width: 6px; height: 45px;
  background: linear-gradient(180deg, #d0d0d0 0%, #707070 100%);
  border-radius: 20% / 50%;
  transform: rotate(30deg);
  transform-origin: bottom center;
  animation: fcp-sword 3s ease-in-out infinite alternate;
}
.scn-plain-camp-falstaff-claims-percy .percy-body {
  position: absolute; bottom: 5%; left: 60%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #704830 0%, #503020 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  animation: fcp-percy-body 7s ease-in-out infinite;
}
.scn-plain-camp-falstaff-claims-percy .percy-head {
  position: absolute; bottom: 30%; left: 68%; width: 25px; height: 25px;
  background: radial-gradient(circle at 50% 40%, #c08050 0%, #a06030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fcp-percy-head 7s ease-in-out infinite;
}
@keyframes fcp-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes fcp-sun { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05); } 100% { transform: translateX(-50%) scale(0.95); } }
@keyframes fcp-falstaff { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.04) translateY(-3px); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes fcp-hal { 0% { transform: rotate(0deg); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(2deg); } }
@keyframes fcp-sword { 0% { transform: rotate(30deg); } 50% { transform: rotate(40deg); } 100% { transform: rotate(25deg); } }
@keyframes fcp-percy-body { 0% { transform: translateY(0) rotate(0deg); opacity: 0.8; } 50% { transform: translateY(-2px) rotate(5deg); opacity: 1; } 100% { transform: translateY(0) rotate(0deg); opacity: 0.7; } }
@keyframes fcp-percy-head { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(3px,-2px) rotate(-10deg); } 100% { transform: translate(0,0) rotate(0deg); } }

/* Scene 1 – own-example */
.scn-london-palace-king-own-example {
  background: linear-gradient(180deg, #f5e6c8 0%, #e6d5b0 40%, #d4c6a0 100%), radial-gradient(ellipse at 50% 30%, #fff8e7 0%, transparent 60%);
}
.scn-london-palace-king-own-example .column-left {
  position: absolute; bottom: 30%; left: 5%; width: 6%; height: 70%;
  background: repeating-linear-gradient(90deg, #b8a88a 0px, #d4c6a0 4px, #e6d5b0 8px, #b8a88a 12px);
  border-radius: 4px; box-shadow: -10px 0 20px rgba(0,0,0,0.3);
  animation: s1-col-left 6s ease-in-out infinite alternate;
}
.scn-london-palace-king-own-example .column-right {
  position: absolute; bottom: 30%; right: 5%; width: 6%; height: 70%;
  background: repeating-linear-gradient(90deg, #b8a88a 0px, #d4c6a0 4px, #e6d5b0 8px, #b8a88a 12px);
  border-radius: 4px; box-shadow: 10px 0 20px rgba(0,0,0,0.3);
  animation: s1-col-right 6s ease-in-out infinite alternate;
}
.scn-london-palace-king-own-example .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: s1-floor 8s ease-in-out infinite;
}
.scn-london-palace-king-own-example .throne {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 35%; height: 45%;
  background: linear-gradient(180deg, #a06030 0%, #704020 50%, #502010 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 15px 30px rgba(0,0,0,0.6);
  animation: s1-throne 4s ease-in-out infinite;
}
.scn-london-palace-king-own-example .king {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 18%; height: 40%;
  background: radial-gradient(ellipse at 50% 30%, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s1-king 3s ease-in-out infinite alternate;
}
.scn-london-palace-king-own-example .crown {
  position: absolute; bottom: 68%; left: 50%; transform: translateX(-50%);
  width: 12%; height: 6%;
  background: radial-gradient(ellipse at 50% 50%, #ffd700 0%, #b8860b 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 15px 5px #ffd700;
  animation: s1-crown 1.6s ease-in-out infinite alternate;
}
.scn-london-palace-king-own-example .scepter {
  position: absolute; bottom: 40%; left: 35%; width: 2%; height: 25%;
  background: linear-gradient(180deg, #ffd700 0%, #b8860b 50%, #8b6914 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: s1-scepter 1.6s ease-in-out infinite alternate;
}
.scn-london-palace-king-own-example .shadow {
  position: absolute; bottom: 30%; left: 30%; right: 30%; height: 15%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: s1-shadow 4s ease-in-out infinite;
}
@keyframes s1-col-left { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes s1-col-right { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1.02); } }
@keyframes s1-floor { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes s1-throne { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.01) ; } 100% { transform: translateX(-50%) scale(1); } }
@keyframes s1-king { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes s1-crown { 0% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(1px); } }
@keyframes s1-scepter { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-1deg); } }
@keyframes s1-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* Scene 2 – robe-pontifical */
.scn-london-palace-king-robe-pontifical {
  background: linear-gradient(180deg, #f5e6c8 0%, #e6d5b0 50%, #c4b090 100%), radial-gradient(ellipse at 50% 40%, #fffaee 0%, transparent 70%);
}
.scn-london-palace-king-robe-pontifical .robe {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 60%; height: 70%;
  background: radial-gradient(ellipse at 50% 80%, #6a2040 0%, #3a1020 70%, #1a0810 100%);
  border-radius: 30% 30% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 20px 40px rgba(0,0,0,0.5), inset 0 10px 30px rgba(200,100,50,0.3);
  animation: s2-robe 8s ease-in-out infinite;
}
.scn-london-palace-king-robe-pontifical .mannequin {
  position: absolute; bottom: 75%; left: 50%; transform: translateX(-50%);
  width: 15%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: s2-mannequin 4s ease-in-out infinite alternate;
}
.scn-london-palace-king-robe-pontifical .candle-left {
  position: absolute; bottom: 20%; left: 10%; width: 4%; height: 30%;
  background: linear-gradient(180deg, #f5e6c8 0%, #d4c6a0 80%, #a09070 100%);
  border-radius: 10%; box-shadow: 0 0 10px rgba(255,200,100,0.3);
  animation: s2-candle-left 3s ease-in-out infinite;
}
.scn-london-palace-king-robe-pontifical .candle-right {
  position: absolute; bottom: 20%; right: 10%; width: 4%; height: 30%;
  background: linear-gradient(180deg, #f5e6c8 0%, #d4c6a0 80%, #a09070 100%);
  border-radius: 10%; box-shadow: 0 0 10px rgba(255,200,100,0.3);
  animation: s2-candle-right 3s ease-in-out infinite 1.5s;
}
.scn-london-palace-king-robe-pontifical .flame-left {
  position: absolute; bottom: 48%; left: 10.5%; width: 3%; height: 8%;
  background: radial-gradient(ellipse at 50% 80%, #ffd700 0%, #ff8c00 50%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: s2-flame 1.6s ease-in-out infinite alternate;
}
.scn-london-palace-king-robe-pontifical .flame-right {
  position: absolute; bottom: 48%; right: 10.5%; width: 3%; height: 8%;
  background: radial-gradient(ellipse at 50% 80%, #ffd700 0%, #ff8c00 50%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: s2-flame 1.6s ease-in-out infinite alternate 0.4s;
}
.scn-london-palace-king-robe-pontifical .halo {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%);
  width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,215,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: s2-halo 6s ease-in-out infinite alternate;
}
@keyframes s2-robe { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.03); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes s2-mannequin { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes s2-candle-left { 0% { height: 30%; } 50% { height: 29%; } 100% { height: 30.5%; } }
@keyframes s2-candle-right { 0% { height: 30%; } 50% { height: 30.5%; } 100% { height: 29%; } }
@keyframes s2-flame { 0% { transform: scaleY(1) scaleX(1); opacity: 0.8; } 50% { transform: scaleY(1.15) scaleX(0.9); opacity: 1; } 100% { transform: scaleY(0.85) scaleX(1.1); opacity: 0.9; } }
@keyframes s2-halo { 0% { opacity: 0.3; transform: translateX(-50%) scale(1); } 50% { opacity: 0.5; transform: translateX(-50%) scale(1.2); } 100% { opacity: 0.4; transform: translateX(-50%) scale(0.9); } }

/* Scene 3 – sick-taste */
.scn-london-palace-king-sick-taste {
  background: linear-gradient(180deg, #f5e6c8 0%, #e6d5b0 30%, #d4c6a0 100%), radial-gradient(ellipse at 50% 50%, #fff8e7 0%, transparent 50%);
}
.scn-london-palace-king-sick-taste .table {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 60%;
  background: radial-gradient(ellipse at 50% 30%, #c4a88a 0%, #9a7a6a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
  animation: s3-table 12s ease-in-out infinite;
}
.scn-london-palace-king-sick-taste .goblet {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 12%; height: 18%;
  background: linear-gradient(180deg, #d4c6a0 0%, #b8a88a 60%, #8a7a6a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.3);
  animation: s3-goblet 6s ease-in-out infinite;
}
.scn-london-palace-king-sick-taste .honey-pool {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 25%; height: 12%;
  background: radial-gradient(ellipse at 50% 50%, #ffb347 0%, #d4943a 70%, transparent 100%);
  border-radius: 50%;
  animation: s3-pool 4s ease-in-out infinite alternate;
}
.scn-london-palace-king-sick-taste .drip1 {
  position: absolute; bottom: 28%; left: 45%; width: 2%; height: 10%;
  background: radial-gradient(ellipse at 50% 100%, #ffb347 0%, transparent 100%);
  border-radius: 50% 50% 0 0;
  animation: s3-drip1 2.4s ease-in-out infinite;
}
.scn-london-palace-king-sick-taste .drip2 {
  position: absolute; bottom: 28%; left: 52%; width: 2%; height: 8%;
  background: radial-gradient(ellipse at 50% 100%, #ffb347 0%, transparent 100%);
  border-radius: 50% 50% 0 0;
  animation: s3-drip2 1.8s ease-in-out infinite 0.5s;
}
.scn-london-palace-king-sick-taste .drip3 {
  position: absolute; bottom: 28%; left: 48%; width: 1.5%; height: 6%;
  background: radial-gradient(ellipse at 50% 100%, #ffb347 0%, transparent 100%);
  border-radius: 50% 50% 0 0;
  animation: s3-drip3 2s ease-in-out infinite 1s;
}
.scn-london-palace-king-sick-taste .spoon {
  position: absolute; bottom: 32%; left: 42%; width: 3%; height: 15%;
  background: linear-gradient(180deg, #d4c6a0 0%, #a09070 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 30% 30%;
  transform-origin: 50% 0%;
  animation: s3-spoon 3s ease-in-out infinite alternate;
}
@keyframes s3-table { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes s3-goblet { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes s3-pool { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.1); } 100% { transform: translateX(-50%) scaleX(0.9); } }
@keyframes s3-drip1 { 0% { height: 10%; } 50% { height: 14%; } 100% { height: 8%; } }
@keyframes s3-drip2 { 0% { height: 8%; } 50% { height: 12%; } 100% { height: 6%; } }
@keyframes s3-drip3 { 0% { height: 6%; } 50% { height: 10%; } 100% { height: 4%; } }
@keyframes s3-spoon { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-2deg); } }

/* Scene 4 – you-stand */
.scn-london-palace-king-you-stand {
  background: linear-gradient(180deg, #f5e6c8 0%, #e6d5b0 40%, #d4c6a0 100%), radial-gradient(ellipse at 50% 50%, #fff8e7 0%, transparent 70%);
}
.scn-london-palace-king-you-stand .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: s4-floor 8s ease-in-out infinite;
}
.scn-london-palace-king-you-stand .steps {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 20%;
  background: repeating-linear-gradient(180deg, #8a7a6a 0px, #6a5a4a 5px, #8a7a6a 10px);
  border-radius: 10% 10% 0 0;
  animation: s4-steps 6s ease-in-out infinite alternate;
}
.scn-london-palace-king-you-stand .throne {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 30%; height: 50%;
  background: linear-gradient(180deg, #8a4a2a 0%, #5a2a1a 50%, #3a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 15px 30px rgba(0,0,0,0.6);
  animation: s4-throne 4s ease-in-out infinite;
}
.scn-london-palace-king-you-stand .king {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 18%; height: 45%;
  background: radial-gradient(ellipse at 50% 30%, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s4-king 3s ease-in-out infinite alternate;
}
.scn-london-palace-king-you-stand .prince {
  position: absolute; bottom: 5%; left: 35%; width: 15%; height: 35%;
  background: radial-gradient(ellipse at 50% 30%, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s4-prince 4s ease-in-out infinite;
}
.scn-london-palace-king-you-stand .spotlight {
  position: absolute; top: 0; left: 30%; right: 30%; bottom: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,240,200,0.4) 0%, transparent 70%);
  pointer-events: none;
  animation: s4-spotlight 5s ease-in-out infinite alternate;
}
.scn-london-palace-king-you-stand .shadow {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 80%);
  animation: s4-shadow 5s ease-in-out infinite;
}
@keyframes s4-floor { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes s4-steps { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1.02); } }
@keyframes s4-throne { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes s4-king { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes s4-prince { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-5px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes s4-spotlight { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes s4-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

/* scene: prince-apartment-falstaff-blessing */
.scn-prince-apartment-falstaff-blessing { background: linear-gradient(180deg, #2a1a0a 0%, #4a2a0a 50%, #6a3a0a 100%), radial-gradient(ellipse at 50% 100%, #6a3a0a 0%, transparent 70%); }
.scn-prince-apartment-falstaff-blessing .bg-wall { position: absolute; inset: 0; background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 100%); animation: fa-wall 12s ease-in-out infinite alternate; }
.scn-prince-apartment-falstaff-blessing .candle { position: absolute; bottom: 30%; left: 40%; width: 12px; height: 40px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 4px 4px 2px 2px; box-shadow: inset -2px 0 4px rgba(0,0,0,.4); }
.scn-prince-apartment-falstaff-blessing .flame { position: absolute; bottom: calc(30% + 40px); left: calc(40% + 4px); width: 8px; height: 20px; background: radial-gradient(ellipse at 50% 80%, #ffd080 0%, #ff8c00 60%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: fa-flame 1.5s ease-in-out infinite alternate; }
.scn-prince-apartment-falstaff-blessing .figure { position: absolute; bottom: 20%; left: 30%; width: 60px; height: 80px; background: linear-gradient(180deg, #1a120a 0%, #0a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fa-figure 5s ease-in-out infinite; }
.scn-prince-apartment-falstaff-blessing .hand { position: absolute; bottom: 50%; left: 35%; width: 20px; height: 30px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom center; animation: fa-hand 4s ease-in-out infinite; }
.scn-prince-apartment-falstaff-blessing .shadow { position: absolute; bottom: 0; left: 25%; width: 100px; height: 20px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%); animation: fa-shadow 6s ease-in-out infinite alternate; }
@keyframes fa-wall { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .75; } }
@keyframes fa-flame { 0% { transform: scaleY(1) translateY(0); opacity: .9; } 50% { transform: scaleY(1.2) translateY(-2px); opacity: 1; } 100% { transform: scaleY(0.9) translateY(1px); opacity: .8; } }
@keyframes fa-figure { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 75% { transform: rotate(-1deg) translateY(1px); } }
@keyframes fa-hand { 0%,100% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(10deg) scale(1.1); } }
@keyframes fa-shadow { 0% { transform: scale(1); opacity: .5; } 50% { transform: scale(1.2); opacity: .7; } 100% { transform: scale(0.9); opacity: .4; } }

/* scene: prince-apartment-allhallown-summer */
.scn-prince-apartment-allhallown-summer { background: linear-gradient(180deg, #2a1a0a 0%, #4a2a0a 50%, #6a3a0a 100%), radial-gradient(ellipse at 50% 100%, #6a3a0a 0%, transparent 70%); }
.scn-prince-apartment-allhallown-summer .bg-room { position: absolute; inset: 0; background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 100%); }
.scn-prince-apartment-allhallown-summer .window { position: absolute; top: 20%; left: 60%; width: 80px; height: 100px; background: #1a1a0a; border: 4px solid #4a2a0a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,200,100,.2); }
.scn-prince-apartment-allhallown-summer .window-glow { position: absolute; top: 20%; left: 60%; width: 80px; height: 100px; background: radial-gradient(ellipse at 50% 50%, rgba(255,180,80,.6) 0%, rgba(255,150,30,.2) 50%, transparent 100%); border-radius: 4px; animation: al-glow 4s ease-in-out infinite alternate; }
.scn-prince-apartment-allhallown-summer .figure-leaving { position: absolute; bottom: 20%; left: 50%; width: 40px; height: 70px; background: linear-gradient(180deg, #1a120a 0%, #0a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: al-leave 8s ease-in-out infinite; }
.scn-prince-apartment-allhallown-summer .figure-staying { position: absolute; bottom: 20%; left: 30%; width: 40px; height: 70px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: al-stay 5s ease-in-out infinite; }
.scn-prince-apartment-allhallown-summer .candle { position: absolute; bottom: 30%; left: 35%; width: 10px; height: 30px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 2px; box-shadow: inset -2px 0 4px rgba(0,0,0,.4); }
.scn-prince-apartment-allhallown-summer .flame { position: absolute; bottom: calc(30% + 30px); left: calc(35% + 1px); width: 8px; height: 15px; background: radial-gradient(ellipse at 50% 80%, #ffd080 0%, #ff8c00 60%, transparent 100%); border-radius: 50%; filter: blur(1px); animation: al-flame 2.4s ease-in-out infinite alternate; }
@keyframes al-glow { 0% { opacity: .6; box-shadow: 0 0 10px 5px rgba(255,180,80,.3); } 50% { opacity: 1; box-shadow: 0 0 20px 10px rgba(255,180,80,.6); } 100% { opacity: .7; box-shadow: 0 0 15px 8px rgba(255,180,80,.4); } }
@keyframes al-leave { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-15px) rotate(-3deg); } 75% { transform: translateX(-5px) rotate(2deg); } }
@keyframes al-stay { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 75% { transform: rotate(-1deg) translateY(1px); } }
@keyframes al-flame { 0% { transform: scaleY(1) translateY(0); opacity: .9; } 50% { transform: scaleY(1.3) translateY(-2px); opacity: 1; } 100% { transform: scaleY(0.8) translateY(1px); opacity: .7; } }

/* scene: prince-apartment-how-part */
.scn-prince-apartment-how-part { background: linear-gradient(180deg, #2a1a0a 0%, #4a2a0a 50%, #6a3a0a 100%), radial-gradient(ellipse at 50% 100%, #6a3a0a 0%, transparent 70%); }
.scn-prince-apartment-how-part .table { position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-prince-apartment-how-part .map { position: absolute; top: 30%; left: 25%; width: 50%; height: 40%; background: linear-gradient(135deg, #b08040 0%, #a07030 100%); border: 2px solid #806030; border-radius: 4px; transform: rotate(2deg); box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: hp-map 12s ease-in-out infinite alternate; }
.scn-prince-apartment-how-part .hand-left { position: absolute; top: 45%; left: 20%; width: 30px; height: 40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hp-hand-l 5s ease-in-out infinite; }
.scn-prince-apartment-how-part .hand-right { position: absolute; top: 45%; left: 50%; width: 30px; height: 40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hp-hand-r 6s ease-in-out infinite; }
.scn-prince-apartment-how-part .candle { position: absolute; top: 25%; left: 45%; width: 10px; height: 30px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 2px; box-shadow: inset -2px 0 4px rgba(0,0,0,.4); }
.scn-prince-apartment-how-part .flame { position: absolute; top: calc(25% - 12px); left: calc(45% + 1px); width: 8px; height: 15px; background: radial-gradient(ellipse at 50% 80%, #ffd080 0%, #ff8c00 60%, transparent 100%); border-radius: 50%; filter: blur(1px); animation: hp-flame 1.5s ease-in-out infinite alternate; }
@keyframes hp-map { 0% { transform: rotate(2deg) scale(1); } 50% { transform: rotate(0deg) scale(1.02); } 100% { transform: rotate(2deg) scale(1); } }
@keyframes hp-hand-l { 0%,100% { transform: rotate(0deg) translate(0,0); } 25% { transform: rotate(-10deg) translate(-5px, 0); } 75% { transform: rotate(5deg) translate(3px, -2px); } }
@keyframes hp-hand-r { 0%,100% { transform: rotate(0deg) translate(0,0); } 25% { transform: rotate(10deg) translate(5px, 0); } 75% { transform: rotate(-5deg) translate(-3px, -2px); } }
@keyframes hp-flame { 0% { transform: scaleY(1) translateY(0); opacity: .9; } 50% { transform: scaleY(1.2) translateY(-2px); opacity: 1; } 100% { transform: scaleY(0.9) translateY(1px); opacity: .8; } }

/* scene: prince-apartment-disguise-plan */
.scn-prince-apartment-disguise-plan { background: linear-gradient(180deg, #2a1a0a 0%, #4a2a0a 50%, #6a3a0a 100%), radial-gradient(ellipse at 50% 100%, #6a3a0a 0%, transparent 70%); }
.scn-prince-apartment-disguise-plan .bg-room { position: absolute; inset: 0; background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 100%); }
.scn-prince-apartment-disguise-plan .figure-main { position: absolute; bottom: 20%; left: 30%; width: 60px; height: 80px; background: linear-gradient(180deg, #1a120a 0%, #0a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dp-fig-main 6s ease-in-out infinite; }
.scn-prince-apartment-disguise-plan .mask { position: absolute; bottom: 55%; left: calc(30% + 10px); width: 25px; height: 15px; background: linear-gradient(180deg, #4a2a0a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30%; border: 2px solid #6a3a0a; transform-origin: center; animation: dp-mask 4s ease-in-out infinite; }
.scn-prince-apartment-disguise-plan .hat { position: absolute; bottom: calc(20% + 80px); left: calc(30% - 5px); width: 70px; height: 15px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 0 0; animation: dp-hat 8s ease-in-out infinite; }
.scn-prince-apartment-disguise-plan .figure-watch { position: absolute; bottom: 20%; left: 55%; width: 50px; height: 70px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dp-watch 7s ease-in-out infinite; }
.scn-prince-apartment-disguise-plan .candle { position: absolute; bottom: 30%; left: 15%; width: 10px; height: 30px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 2px; box-shadow: inset -2px 0 4px rgba(0,0,0,.4); }
.scn-prince-apartment-disguise-plan .flame { position: absolute; bottom: calc(30% + 30px); left: calc(15% + 1px); width: 8px; height: 15px; background: radial-gradient(ellipse at 50% 80%, #ffd080 0%, #ff8c00 60%, transparent 100%); border-radius: 50%; filter: blur(1px); animation: dp-flame 1.5s ease-in-out infinite alternate; }
@keyframes dp-fig-main { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } }
@keyframes dp-mask { 0%,100% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(5deg) scale(1.1); } }
@keyframes dp-hat { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes dp-watch { 0%,100% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(-2deg) translateX(-3px); } 75% { transform: rotate(2deg) translateX(3px); } }
@keyframes dp-flame { 0% { transform: scaleY(1) translateY(0); opacity: .9; } 50% { transform: scaleY(1.2) translateY(-2px); opacity: 1; } 100% { transform: scaleY(0.9) translateY(1px); opacity: .8; } }

.scn-bangor-archdeacon-house-head-broken { background: linear-gradient(180deg, #0c1230 0%, #161a3a 50%, #0c1230 100%), radial-gradient(ellipse at 70% 20%, rgba(180,200,255,0.3), transparent 60%); }
.scn-bangor-archdeacon-house-head-broken .night-sky { position:absolute; inset:0; background: linear-gradient(180deg, #12163a 0%, transparent 100%); animation: s1-sky 15s ease-in-out infinite alternate; }
.scn-bangor-archdeacon-house-head-broken .moon { position:absolute; top:5%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #e8ecff 0%, #a0b0d0 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(180,200,255,0.4); animation: s1-moon 10s ease-in-out infinite alternate; }
.scn-bangor-archdeacon-house-head-broken .window-frame { position:absolute; bottom:30%; left:15%; width:120px; height:160px; border:4px solid #2a2a3a; background:rgba(0,0,20,0.5); border-radius:4px; }
.scn-bangor-archdeacon-house-head-broken .head-broken { position:absolute; bottom:35%; left:45%; width:50px; height:60px; background:radial-gradient(ellipse at 50% 40%, #3a3a4a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform:rotate(-10deg); animation: s1-head 4s ease-in-out infinite; }
.scn-bangor-archdeacon-house-head-broken .crack { position:absolute; bottom:45%; left:47%; width:20px; height:30px; border-left:2px solid #8a8a9a; transform:rotate(20deg); animation: s1-crack 2s ease-in-out infinite; }
.scn-bangor-archdeacon-house-head-broken .woman { position:absolute; bottom:30%; left:20%; width:40px; height:70px; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:rotate(10deg); animation: s1-woman 6s ease-in-out infinite; }
.scn-bangor-archdeacon-house-head-broken .shadow { position:absolute; bottom:20%; left:30%; width:100px; height:20px; background:rgba(0,0,0,0.4); border-radius:50%; filter:blur(6px); animation: s1-shadow 8s ease-in-out infinite; }
@keyframes s1-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes s1-moon { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes s1-head { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes s1-crack { 0% { opacity:0.3 } 50% { opacity:1 } 100% { opacity:0.3 } }
@keyframes s1-woman { 0% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(12deg) translateX(3px) } 100% { transform: rotate(10deg) translateX(0) } }
@keyframes s1-shadow { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(1) } }

.scn-bangor-archdeacon-house-swear-like-comfit-maker { background: linear-gradient(180deg, #0d1430 0%, #121840 50%, #0d1430 100%), radial-gradient(ellipse at 30% 70%, rgba(200,200,255,0.2), transparent 60%); }
.scn-bangor-archdeacon-house-swear-like-comfit-maker .room { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0a0f20 70%); animation: s2-room 12s ease-in-out infinite; }
.scn-bangor-archdeacon-house-swear-like-comfit-maker .shelf { position:absolute; bottom:45%; left:5%; right:5%; height:8px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-bangor-archdeacon-house-swear-like-comfit-maker .figure { position:absolute; bottom:20%; left:40%; width:40px; height:80px; background:linear-gradient(180deg, #2a2e3a 0%, #1a1e2a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:rotate(5deg); animation: s2-figure 5s ease-in-out infinite; }
.scn-bangor-archdeacon-house-swear-like-comfit-maker .hand { position:absolute; bottom:35%; left:50%; width:15px; height:20px; background:radial-gradient(ellipse at 50% 40%, #3a3e4a 0%, #1a1e2a 100%); border-radius:40% 40% 30% 30%; transform-origin: bottom center; transform:rotate(-30deg); animation: s2-hand 2s ease-in-out infinite; }
.scn-bangor-archdeacon-house-swear-like-comfit-maker .comfit-1, .scn-bangor-archdeacon-house-swear-like-comfit-maker .comfit-2 { position:absolute; width:10px; height:10px; background:radial-gradient(circle, #e0c8a0 0%, #b09060 100%); border-radius:50%; box-shadow: 0 0 6px rgba(200,180,150,0.5); animation: s2-comfit 3s ease-in-out infinite; }
.scn-bangor-archdeacon-house-swear-like-comfit-maker .comfit-1 { top:40%; left:30%; animation-delay: -0.5s; }
.scn-bangor-archdeacon-house-swear-like-comfit-maker .comfit-2 { top:50%; left:60%; animation-delay: -1.5s; }
.scn-bangor-archdeacon-house-swear-like-comfit-maker .moonlight { position:absolute; top:10%; right:15%; width:30px; height:30px; background:radial-gradient(circle, #e0e8ff 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(180,200,255,0.3); animation: s2-moonlight 20s ease-in-out infinite alternate; }
@keyframes s2-room { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes s2-figure { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-3px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes s2-hand { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-20deg) } 100% { transform: rotate(-30deg) } }
@keyframes s2-comfit { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-10px) rotate(180deg) } 100% { transform: translateY(0) rotate(360deg) } }
@keyframes s2-moonlight { 0% { opacity:0.5 } 100% { opacity:1 } }

.scn-bangor-archdeacon-house-will-not-sing { background: linear-gradient(180deg, #0d1430 0%, #121840 50%, #0d1430 100%), radial-gradient(ellipse at 50% 50%, rgba(180,200,255,0.1), transparent 70%); }
.scn-bangor-archdeacon-house-will-not-sing .night-sky { position:absolute; inset:0; background: linear-gradient(180deg, #0e1230 0%, transparent 100%); animation: s3-sky 18s ease-in-out infinite alternate; }
.scn-bangor-archdeacon-house-will-not-sing .moon { position:absolute; top:8%; left:10%; width:35px; height:35px; background:radial-gradient(circle, #e8ecff 0%, #a0b0d0 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(180,200,255,0.4); animation: s3-moon 12s ease-in-out infinite alternate; }
.scn-bangor-archdeacon-house-will-not-sing .branch { position:absolute; bottom:40%; left:0; right:60%; height:6px; background: linear-gradient(180deg, #1a1e2a 0%, #0a0e1a 100%); border-radius:3px; transform:rotate(-15deg); animation: s3-branch 8s ease-in-out infinite; }
.scn-bangor-archdeacon-house-will-not-sing .figure { position:absolute; bottom:15%; left:40%; width:35px; height:70px; background:linear-gradient(180deg, #2a2e3a 0%, #1a1e2a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:rotate(0deg); animation: s3-figure 5s ease-in-out infinite; }
.scn-bangor-archdeacon-house-will-not-sing .bird { position:absolute; bottom:45%; left:30%; width:20px; height:15px; background:radial-gradient(ellipse at 50% 60%, #a05040 0%, #502020 100%); border-radius:50% 50% 50% 50% / 60% 50% 50% 40%; animation: s3-bird 3s ease-in-out infinite; }
.scn-bangor-archdeacon-house-will-not-sing .note-1, .scn-bangor-archdeacon-house-will-not-sing .note-2 { position:absolute; width:8px; height:12px; background:radial-gradient(circle, #d0c090 0%, #a08050 100%); border-radius:40% 40% 20% 20%; animation: s3-note 4s ease-in-out infinite; }
.scn-bangor-archdeacon-house-will-not-sing .note-1 { top:50%; left:25%; animation-delay: -1s; }
.scn-bangor-archdeacon-house-will-not-sing .note-2 { top:30%; left:45%; animation-delay: -2s; }
@keyframes s3-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes s3-moon { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes s3-branch { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-12deg) } 100% { transform: rotate(-15deg) } }
@keyframes s3-figure { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes s3-bird { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes s3-note { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-8px) rotate(30deg) } 100% { transform: translateY(0) rotate(0) } }

.scn-bangor-archdeacon-house-all-heart { background: linear-gradient(180deg, #0c1230 0%, #161a3a 50%, #0c1230 100%), radial-gradient(ellipse at 50% 50%, rgba(200,200,255,0.15), transparent 70%); }
.scn-bangor-archdeacon-house-all-heart .palace-bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0a0f20 80%); animation: s4-palace 20s ease-in-out infinite; }
.scn-bangor-archdeacon-house-all-heart .column-left, .scn-bangor-archdeacon-house-all-heart .column-right { position:absolute; bottom:0; width:20px; height:70%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:4px; box-shadow: inset -2px 0 6px rgba(0,0,0,0.5); }
.scn-bangor-archdeacon-house-all-heart .column-left { left:20%; }
.scn-bangor-archdeacon-house-all-heart .column-right { right:20%; }
.scn-bangor-archdeacon-house-all-heart .king { position:absolute; bottom:10%; left:30%; width:40px; height:60px; background:linear-gradient(180deg, #2a2e3a 0%, #1a1e2a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:rotate(5deg); animation: s4-king 10s ease-in-out infinite; }
.scn-bangor-archdeacon-house-all-heart .prince { position:absolute; bottom:10%; right:30%; width:35px; height:55px; background:linear-gradient(180deg, #2a2e3a 0%, #1a1e2a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:rotate(-5deg); animation: s4-prince 10s ease-in-out infinite; }
.scn-bangor-archdeacon-house-all-heart .heart { position:absolute; bottom:30%; left:50%; width:30px; height:26px; background:radial-gradient(circle, #e0a0a0 0%, #b07070 100%); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; transform:translateX(-50%) rotate(45deg); box-shadow: 0 0 20px 10px rgba(200,120,120,0.4); animation: s4-heart 15s ease-in-out infinite; }
.scn-bangor-archdeacon-house-all-heart .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a1e2a 0%, #0a0e1a 100%); box-shadow: inset 0 4px 8px rgba(0,0,0,0.6); }
@keyframes s4-palace { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes s4-king { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(6deg) translateY(-1px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes s4-prince { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-6deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes s4-heart { 0% { transform: translateX(-50%) rotate(45deg) scale(1) } 50% { transform: translateX(-50%) rotate(45deg) scale(1.05) } 100% { transform: translateX(-50%) rotate(45deg) scale(1) } }

.scn-eastcheap-boars-head-guts-fall { background: linear-gradient(180deg, #2a1f1a 0%, #1f1510 60%, #0f0a08 100%), radial-gradient(ellipse at 20% 80%, #d97a3b 0%, transparent 50%); }
.scn-eastcheap-boars-head-guts-fall .back-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 100%); }
.scn-eastcheap-boars-head-guts-fall .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%); }
.scn-eastcheap-boars-head-guts-fall .hearth { position:absolute; bottom:30%; left:5%; width:30%; height:40%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 50% 50% 0 0; box-shadow: inset 0 0 30px rgba(200,100,50,.3); }
.scn-eastcheap-boars-head-guts-fall .fire { position:absolute; bottom:40%; left:12%; width:16%; height:20%; background: radial-gradient(ellipse at 50% 100%, #ffaa40 0%, #ff6600 40%, transparent 70%); box-shadow: 0 0 40px 20px rgba(255,102,0,.4), 0 0 80px 40px rgba(255,102,0,.2); animation: ebh1-fire 2s ease-in-out infinite alternate; }
.scn-eastcheap-boars-head-guts-fall .table { position:absolute; bottom:25%; left:35%; width:40%; height:20%; background: linear-gradient(180deg, #5a3a20 0%, #3a2a10 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-eastcheap-boars-head-guts-fall .figure-stout { position:absolute; bottom:30%; left:40%; width:20%; height:50%; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ebh1-stout 4s ease-in-out infinite; }
.scn-eastcheap-boars-head-guts-fall .figure-slim { position:absolute; bottom:30%; left:60%; width:12%; height:45%; background: linear-gradient(180deg, #221818 0%, #101010 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ebh1-slim 3s ease-in-out infinite; }
.scn-eastcheap-boars-head-guts-fall .tankard { position:absolute; bottom:28%; left:48%; width:6%; height:12%; background: linear-gradient(180deg, #8a6a40 0%, #5a3a20 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ebh1-tankard 3s ease-in-out infinite; }
.scn-eastcheap-boars-head-guts-fall .smoke { position:absolute; top:10%; left:20%; width:10%; height:20%; background: rgba(180,140,100,.15); border-radius: 50%; filter: blur(10px); animation: ebh1-smoke 8s ease-in-out infinite alternate; }
@keyframes ebh1-fire { 0% { opacity:.7; transform: scaleY(.95) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:.8; transform: scaleY(.98) } }
@keyframes ebh1-stout { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3%) rotate(2deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-3%) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ebh1-slim { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5%) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ebh1-tankard { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2%) rotate(5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ebh1-smoke { 0% { transform: translateX(0) translateY(0) scale(1) opacity:.3 } 50% { transform: translateX(10%) translateY(-5%) scale(1.2) opacity:.6 } 100% { transform: translateX(0) translateY(0) scale(1) opacity:.3 } }

.scn-eastcheap-boars-head-adam-fell { background: linear-gradient(180deg, #2a1f1a 0%, #1f1510 60%, #0f0a08 100%), radial-gradient(ellipse at 50% 100%, #d97a3b 0%, transparent 50%); }
.scn-eastcheap-boars-head-adam-fell .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 100%); }
.scn-eastcheap-boars-head-adam-fell .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%); }
.scn-eastcheap-boars-head-adam-fell .bench { position:absolute; bottom:25%; left:20%; width:60%; height:15%; background: linear-gradient(180deg, #5a3a20 0%, #3a2a10 100%); border-radius: 5%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-eastcheap-boars-head-adam-fell .figure-falstaff { position:absolute; bottom:30%; left:25%; width:50%; height:30%; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); transform-origin: center; animation: ebh2-falstaff 6s ease-in-out infinite; }
.scn-eastcheap-boars-head-adam-fell .figure-hal { position:absolute; bottom:32%; left:60%; width:10%; height:45%; background: linear-gradient(180deg, #221818 0%, #101010 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ebh2-hal 4s ease-in-out infinite; }
.scn-eastcheap-boars-head-adam-fell .lantern { position:absolute; bottom:35%; left:80%; width:8%; height:12%; background: radial-gradient(circle, #ffd080 0%, #b08040 70%); border-radius: 50%; box-shadow: 0 0 20px 5px rgba(255,208,128,.5); animation: ebh2-lantern 3s ease-in-out infinite alternate; }
.scn-eastcheap-boars-head-adam-fell .tankard { position:absolute; bottom:28%; left:40%; width:5%; height:10%; background: linear-gradient(180deg, #8a6a40 0%, #5a3a20 100%); border-radius: 10%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ebh2-tankard 4s ease-in-out infinite; }
.scn-eastcheap-boars-head-adam-fell .smoke { position:absolute; top:15%; left:30%; width:15%; height:15%; background: rgba(180,140,100,.1); border-radius: 50%; filter: blur(12px); animation: ebh2-smoke 10s ease-in-out infinite alternate; }
@keyframes ebh2-falstaff { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(5%) } 100% { transform: rotate(-10deg) translateX(0) } }
@keyframes ebh2-hal { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(8%) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ebh2-lantern { 0% { opacity:.7; box-shadow: 0 0 15px 3px rgba(255,208,128,.4) } 50% { opacity:1; box-shadow: 0 0 30px 8px rgba(255,208,128,.7) } 100% { opacity:.8; box-shadow: 0 0 20px 5px rgba(255,208,128,.5) } }
@keyframes ebh2-tankard { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3%) rotate(8deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ebh2-smoke { 0% { transform: translateX(0) translateY(0) scale(1) opacity:.2 } 50% { transform: translateX(15%) translateY(-10%) scale(1.3) opacity:.5 } 100% { transform: translateX(0) translateY(0) scale(1) opacity:.2 } }

.scn-eastcheap-boars-head-falstaff-forgives { background: linear-gradient(180deg, #2a1f1a 0%, #1f1510 60%, #0f0a08 100%), radial-gradient(ellipse at 30% 70%, #d97a3b 0%, transparent 50%); }
.scn-eastcheap-boars-head-falstaff-forgives .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 100%); }
.scn-eastcheap-boars-head-falstaff-forgives .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%); }
.scn-eastcheap-boars-head-falstaff-forgives .door { position:absolute; right:10%; bottom:30%; width:15%; height:50%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,.5); }
.scn-eastcheap-boars-head-falstaff-forgives .table { position:absolute; bottom:25%; left:25%; width:40%; height:18%; background: linear-gradient(180deg, #5a3a20 0%, #3a2a10 100%); border-radius: 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-eastcheap-boars-head-falstaff-forgives .figure-falstaff { position:absolute; bottom:30%; left:30%; width:18%; height:50%; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ebh3-falstaff 5s ease-in-out infinite; }
.scn-eastcheap-boars-head-falstaff-forgives .figure-hal { position:absolute; bottom:30%; left:45%; width:10%; height:45%; background: linear-gradient(180deg, #221818 0%, #101010 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: ebh3-hal 4s ease-in-out infinite; }
.scn-eastcheap-boars-head-falstaff-forgives .figure-hostess { position:absolute; bottom:32%; right:20%; width:8%; height:40%; background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: ebh3-hostess 6s ease-in-out infinite; }
.scn-eastcheap-boars-head-falstaff-forgives .lantern { position:absolute; bottom:35%; left:15%; width:7%; height:10%; background: radial-gradient(circle, #ffd080 0%, #b08040 70%); border-radius: 50%; box-shadow: 0 0 15px 3px rgba(255,208,128,.4); animation: ebh3-lantern 3s ease-in-out infinite alternate; }
.scn-eastcheap-boars-head-falstaff-forgives .smoke { position:absolute; top:10%; left:40%; width:12%; height:15%; background: rgba(180,140,100,.15); border-radius: 50%; filter: blur(10px); animation: ebh3-smoke 12s ease-in-out infinite alternate; }
@keyframes ebh3-falstaff { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(5%) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes ebh3-hal { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-3%) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ebh3-hostess { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-10%) scaleX(0.8) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes ebh3-lantern { 0% { opacity:.7; box-shadow: 0 0 12px 2px rgba(255,208,128,.3) } 50% { opacity:1; box-shadow: 0 0 25px 6px rgba(255,208,128,.6) } 100% { opacity:.8; box-shadow: 0 0 18px 4px rgba(255,208,128,.4) } }
@keyframes ebh3-smoke { 0% { transform: translateX(0) translateY(0) scale(1) opacity:.2 } 50% { transform: translateX(-10%) translateY(-10%) scale(1.4) opacity:.4 } 100% { transform: translateX(0) translateY(0) scale(1) opacity:.2 } }

.scn-eastcheap-boars-head-double-labour { background: linear-gradient(180deg, #2a1f1a 0%, #1f1510 60%, #0f0a08 100%), radial-gradient(ellipse at 70% 80%, #d97a3b 0%, transparent 50%); }
.scn-eastcheap-boars-head-double-labour .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 100%); }
.scn-eastcheap-boars-head-double-labour .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%); }
.scn-eastcheap-boars-head-double-labour .table { position:absolute; bottom:25%; left:25%; width:45%; height:20%; background: linear-gradient(180deg, #5a3a20 0%, #3a2a10 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-eastcheap-boars-head-double-labour .figure-falstaff { position:absolute; bottom:30%; left:28%; width:18%; height:50%; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ebh4-falstaff 5s ease-in-out infinite; }
.scn-eastcheap-boars-head-double-labour .figure-hal { position:absolute; bottom:30%; right:28%; width:10%; height:45%; background: linear-gradient(180deg, #221818 0%, #101010 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: ebh4-hal 4s ease-in-out infinite; }
.scn-eastcheap-boars-head-double-labour .coin-bag { position:absolute; bottom:30%; left:48%; width:8%; height:10%; background: radial-gradient(ellipse at 50% 60%, #8a6a40 0%, #5a3a20 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: ebh4-coinbag 3s ease-in-out infinite; }
.scn-eastcheap-boars-head-double-labour .crown { position:absolute; bottom:32%; left:55%; width:6%; height:8%; background: linear-gradient(180deg, #c09030 0%, #806020 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; animation: ebh4-crown 4s ease-in-out infinite; }
.scn-eastcheap-boars-head-double-labour .lantern { position:absolute; bottom:35%; left:18%; width:7%; height:10%; background: radial-gradient(circle, #ffd080 0%, #b08040 70%); border-radius: 50%; box-shadow: 0 0 15px 3px rgba(255,208,128,.4); animation: ebh4-lantern 3s ease-in-out infinite alternate; }
.scn-eastcheap-boars-head-double-labour .smoke { position:absolute; top:12%; left:35%; width:14%; height:16%; background: rgba(180,140,100,.12); border-radius: 50%; filter: blur(12px); animation: ebh4-smoke 10s ease-in-out infinite alternate; }
@keyframes ebh4-falstaff { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3%) rotate(0deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes ebh4-hal { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-4%) rotate(0deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes ebh4-coinbag { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3%) scale(1.1) } 100% { transform: translateY(0) scale(1) } }
@keyframes ebh4-crown { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes ebh4-lantern { 0% { opacity:.7; box-shadow: 0 0 12px 2px rgba(255,208,128,.3) } 50% { opacity:1; box-shadow: 0 0 25px 6px rgba(255,208,128,.6) } 100% { opacity:.8; box-shadow: 0 0 18px 4px rgba(255,208,128,.4) } }
@keyframes ebh4-smoke { 0% { transform: translateX(0) translateY(0) scale(1) opacity:.2 } 50% { transform: translateX(10%) translateY(-8%) scale(1.3) opacity:.5 } 100% { transform: translateX(0) translateY(0) scale(1) opacity:.2 } }

.scn-rebel-camp-night-not-be {
  background: linear-gradient(180deg, #1a1a2e 0%, #2c2c3e 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 100%, #2c2c3e 0%, transparent 70%);
}
.scn-rebel-camp-night-not-be .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, transparent 100%);
  animation: rn1-sky 15s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-not-be .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2c2c3a 0%, #1a1a2a 100%);
}
.scn-rebel-camp-night-not-be .tent {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 80px;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  animation: rn1-tent 8s ease-in-out infinite;
}
.scn-rebel-camp-night-not-be .fire {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 50px;
  background: radial-gradient(circle at 50% 100%, #f0a060 0%, #c07030 40%, transparent 70%);
  border-radius: 50%;
  animation: rn1-fire 2s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-not-be .figure {
  position: absolute; bottom: 30%; left: 45%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rn1-figure 6s ease-in-out infinite;
}
.scn-rebel-camp-night-not-be .cloud {
  position: absolute; top: 15%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%; filter: blur(6px);
}
.scn-rebel-camp-night-not-be .cloud-a { left: -10%; animation: rn1-drift-a 40s linear infinite; }
.scn-rebel-camp-night-not-be .cloud-b { left: 20%; width: 60px; height: 15px; animation: rn1-drift-b 50s linear infinite reverse; }
@keyframes rn1-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes rn1-tent { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes rn1-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.95); opacity: 0.85; } }
@keyframes rn1-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(5px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(10px) translateY(0) rotate(0); } }
@keyframes rn1-drift-a { 0% { transform: translateX(-100px); } 100% { transform: translateX(110vw); } }
@keyframes rn1-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-110vw); } }

.scn-rebel-camp-night-douglas-no-slander {
  background: linear-gradient(180deg, #12121e 0%, #1a1a2e 50%, #12121e 100%), radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, transparent 60%);
}
.scn-rebel-camp-night-douglas-no-slander .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1e1e2e 0%, transparent 100%);
  animation: rn2-sky 10s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-douglas-no-slander .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
}
.scn-rebel-camp-night-douglas-no-slander .tent-left {
  position: absolute; bottom: 35%; left: 20%; width: 80px; height: 70px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 5% 5%;
  animation: rn2-tent-left 6s ease-in-out infinite;
}
.scn-rebel-camp-night-douglas-no-slander .tent-right {
  position: absolute; bottom: 35%; right: 20%; width: 80px; height: 70px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 5% 5%;
  animation: rn2-tent-right 6s ease-in-out infinite reverse;
}
.scn-rebel-camp-night-douglas-no-slander .figure-left {
  position: absolute; bottom: 30%; left: 30%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000005 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rn2-figure-left 3s ease-in-out infinite;
}
.scn-rebel-camp-night-douglas-no-slander .figure-right {
  position: absolute; bottom: 30%; right: 30%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000005 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rn2-figure-right 3.5s ease-in-out infinite;
}
.scn-rebel-camp-night-douglas-no-slander .fire {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 25px; height: 45px;
  background: radial-gradient(circle at 50% 100%, #e89050 0%, #b06030 40%, transparent 70%);
  border-radius: 50%;
  animation: rn2-fire 2.4s ease-in-out infinite alternate;
}
@keyframes rn2-sky { 0%,100% { opacity: 0.7; } 50% { opacity: 0.9; } }
@keyframes rn2-tent-left { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes rn2-tent-right { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes rn2-figure-left { 0% { transform: translateX(0) translateY(0) rotate(-3deg); } 33% { transform: translateX(-4px) translateY(-1px) rotate(3deg); } 66% { transform: translateX(4px) translateY(0) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes rn2-figure-right { 0% { transform: translateX(0) translateY(0) rotate(3deg); } 33% { transform: translateX(4px) translateY(-1px) rotate(-3deg); } 66% { transform: translateX(-4px) translateY(0) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes rn2-fire { 0% { transform: translateX(-50%) scaleY(0.8); opacity: 0.7; } 50% { transform: translateX(-50%) scaleY(1.2); opacity: 1; } 100% { transform: translateX(-50%) scaleY(0.9); opacity: 0.8; } }

.scn-rebel-camp-night-content {
  background: linear-gradient(180deg, #141428 0%, #1c1c30 50%, #141428 100%), radial-gradient(ellipse at 50% 100%, #1c1c30 0%, transparent 60%);
}
.scn-rebel-camp-night-content .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #20203a 0%, transparent 100%);
  animation: rn3-sky 12s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-content .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 100%);
}
.scn-rebel-camp-night-content .tent-bg {
  position: absolute; bottom: 40%; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  clip-path: polygon(10% 100%, 20% 0%, 80% 0%, 90% 100%);
  border-radius: 20% 20% 5% 5% / 30% 30% 5% 5%;
  animation: rn3-tent-bg 9s ease-in-out infinite;
}
.scn-rebel-camp-night-content .table {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 15px;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%);
  border-radius: 5px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: rn3-table 7s ease-in-out infinite;
}
.scn-rebel-camp-night-content .figure-a {
  position: absolute; bottom: 28%; left: 35%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000005 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rn3-figure-a 5s ease-in-out infinite;
}
.scn-rebel-camp-night-content .figure-b {
  position: absolute; bottom: 28%; left: 47%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000005 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rn3-figure-b 5.5s ease-in-out infinite;
}
.scn-rebel-camp-night-content .figure-c {
  position: absolute; bottom: 28%; right: 35%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000005 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rn3-figure-c 6s ease-in-out infinite;
}
.scn-rebel-camp-night-content .lantern {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #f0c060 0%, #b08030 50%, transparent 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(240,192,96,0.4);
  animation: rn3-lantern 3s ease-in-out infinite alternate;
}
@keyframes rn3-sky { 0%,100% { opacity: 0.75; } 50% { opacity: 0.95; } }
@keyframes rn3-tent-bg { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes rn3-table { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px) scale(1.01); } }
@keyframes rn3-figure-a { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rn3-figure-b { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rn3-figure-c { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rn3-lantern { 0% { box-shadow: 0 0 15px 4px rgba(240,192,96,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 30px 10px rgba(240,192,96,0.6); opacity: 1; } 100% { box-shadow: 0 0 20px 6px rgba(240,192,96,0.4); opacity: 0.9; } }

.scn-rebel-camp-night-enemy-horses {
  background: linear-gradient(180deg, #0f0f1e 0%, #181828 50%, #0f0f1e 100%), radial-gradient(ellipse at 50% 100%, #181828 0%, transparent 60%);
}
.scn-rebel-camp-night-enemy-horses .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, transparent 100%);
  animation: rn4-sky 14s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-enemy-horses .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1c1c2a 0%, #080818 100%);
}
.scn-rebel-camp-night-enemy-horses .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  animation: rn4-hills 20s ease-in-out infinite alternate;
}
.scn-rebel-camp-night-enemy-horses .horse-1 {
  position: absolute; bottom: 35%; left: 25%; width: 30px; height: 25px;
  background: #0e0e1e;
  border-radius: 50% 50% 20% 20% / 50% 50% 30% 30%;
  clip-path: polygon(0% 50%, 30% 0%, 70% 0%, 100% 50%, 90% 100%, 10% 100%);
  animation: rn4-horse-1 4s ease-in-out infinite;
}
.scn-rebel-camp-night-enemy-horses .horse-2 {
  position: absolute; bottom: 35%; right: 30%; width: 30px; height: 25px;
  background: #0e0e1e;
  border-radius: 50% 50% 20% 20% / 50% 50% 30% 30%;
  clip-path: polygon(0% 50%, 30% 0%, 70% 0%, 100% 50%, 90% 100%, 10% 100%);
  animation: rn4-horse-2 4.5s ease-in-out infinite;
}
.scn-rebel-camp-night-enemy-horses .figure {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 18px; height: 40px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000005 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rn4-figure 5s ease-in-out infinite;
}
.scn-rebel-camp-night-enemy-horses .tent {
  position: absolute; bottom: 32%; right: 15%; width: 70px; height: 55px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 5% 5%;
  animation: rn4-tent 8s ease-in-out infinite;
}
@keyframes rn4-sky { 0%,100% { opacity: 0.7; } 50% { opacity: 0.9; } }
@keyframes rn4-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes rn4-horse-1 { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rn4-horse-2 { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rn4-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0); } 50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes rn4-tent { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }

/* Scene: highway-gadshill-levers */
.scn-highway-gadshill-levers {
  background:
    linear-gradient(180deg, #0d0d2b 0%, #1a1a3e 40%, #2a2a4e 100%),
    radial-gradient(ellipse at 50% 100%, #3a3a5e 0%, transparent 70%);
}
.scn-highway-gadshill-levers .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, #0d0d2b 100%);
  animation: hgl-sky 20s ease-in-out infinite alternate;
}
.scn-highway-gadshill-levers .hills {
  position: absolute; bottom: 30%; left: -10%; right: -10%; height: 25%;
  background: linear-gradient(180deg, #1e2a1e 0%, #0f1a0f 100%);
  border-radius: 60% 40% 0 0 / 70% 90% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: hgl-hills 30s ease-in-out infinite alternate;
}
.scn-highway-gadshill-levers .horse {
  position: absolute; bottom: 28%; right: 15%; width: 60px; height: 50px;
  background: linear-gradient(135deg, #2a1a1a 0%, #0d0d12 100%);
  border-radius: 40% 60% 30% 50% / 30% 40% 60% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: hgl-horse 8s ease-in-out infinite;
}
.scn-highway-gadshill-levers .fallen-figure {
  position: absolute; bottom: 18%; left: 20%; width: 28px; 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: hgl-fallen 5s ease-in-out infinite;
}
.scn-highway-gadshill-levers .standing-figure {
  position: absolute; bottom: 20%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0f0f1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hgl-stand 6s ease-in-out infinite;
}
.scn-highway-gadshill-levers .lantern {
  position: absolute; bottom: 32%; left: 48%; width: 8px; height: 10px;
  background: radial-gradient(circle, #ffd680 0%, #cc8800 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(255,214,128,0.6), 0 0 40px 12px rgba(200,120,0,0.3);
  animation: hgl-lantern 3s ease-in-out infinite alternate;
}
.scn-highway-gadshill-levers .cloud {
  position: absolute; top: 12%; left: -20%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, rgba(255,255,255,0.02) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: hgl-cloud 60s linear infinite;
}
@keyframes hgl-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes hgl-hills {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-4px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes hgl-horse {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hgl-fallen {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(3px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(0) translateY(0) rotate(-2deg); }
  75% { transform: translateX(-2px) translateY(1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes hgl-stand {
  0% { transform: translateY(0) rotate(-1deg) scaleX(1); }
  33% { transform: translateY(-3px) rotate(1deg) scaleX(1.02); }
  66% { transform: translateY(-1px) rotate(-1deg) scaleX(0.98); }
  100% { transform: translateY(0) rotate(-1deg) scaleX(1); }
}
@keyframes hgl-lantern {
  0% { box-shadow: 0 0 15px 4px rgba(255,214,128,0.5), 0 0 30px 10px rgba(200,120,0,0.2); transform: rotate(-5deg); }
  50% { box-shadow: 0 0 25px 8px rgba(255,214,128,0.8), 0 0 50px 16px rgba(200,120,0,0.4); transform: rotate(5deg); }
  100% { box-shadow: 0 0 18px 5px rgba(255,214,128,0.6), 0 0 35px 12px rgba(200,120,0,0.3); transform: rotate(-3deg); }
}
@keyframes hgl-cloud {
  0% { transform: translateX(-100px); }
  100% { transform: translateX(120vw); }
}

/* Scene: highway-gadshill-ostler-insult */
.scn-highway-gadshill-ostler-insult {
  background:
    linear-gradient(180deg, #0d0d1a 0%, #1a1a30 40%, #2a2a45 100%),
    radial-gradient(ellipse at 70% 50%, #3a3a55 0%, transparent 70%);
}
.scn-highway-gadshill-ostler-insult .stable-arch {
  position: absolute; top: 8%; left: 10%; right: 10%; bottom: 10%;
  border: 3px solid #3a2a1a;
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0f05 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
  animation: hgo-arch 12s ease-in-out infinite;
}
.scn-highway-gadshill-ostler-insult .hay-bale {
  position: absolute; bottom: 12%; left: 25%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #6a5a30 0%, #4a3a1a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: hgo-hay 8s ease-in-out infinite alternate;
}
.scn-highway-gadshill-ostler-insult .ostler-figure {
  position: absolute; bottom: 25%; left: 30%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #2a2a35 0%, #121217 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hgo-ostler 5s ease-in-out infinite;
}
.scn-highway-gadshill-ostler-insult .prince-figure {
  position: absolute; bottom: 22%; left: 55%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0f0f 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hgo-prince 4s ease-in-out infinite;
}
.scn-highway-gadshill-ostler-insult .lantern {
  position: absolute; bottom: 35%; left: 65%; width: 10px; height: 12px;
  background: radial-gradient(circle, #ffcc80 0%, #b07030 100%);
  border-radius: 20% 20% 15% 15%;
  box-shadow: 0 0 18px 5px rgba(255,204,128,0.6), 0 0 36px 12px rgba(180,100,40,0.3);
  animation: hgo-lantern 3s ease-in-out infinite alternate;
}
.scn-highway-gadshill-ostler-insult .moon {
  position: absolute; top: 15%; left: 75%; width: 20px; height: 20px;
  background: radial-gradient(circle, #e0e0ff 0%, #a0a0c0 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,200,255,0.3);
  animation: hgo-moon 30s ease-in-out infinite alternate;
}
.scn-highway-gadshill-ostler-insult .door {
  position: absolute; bottom: 10%; left: 60%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0f 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
  animation: hgo-door 15s ease-in-out infinite;
}
@keyframes hgo-arch {
  0% { box-shadow: inset 0 0 30px rgba(0,0,0,0.7); }
  50% { box-shadow: inset 0 0 40px rgba(0,0,0,0.9); }
  100% { box-shadow: inset 0 0 30px rgba(0,0,0,0.7); }
}
@keyframes hgo-hay {
  0% { transform: translateY(0) rotate(0deg) scaleX(1); }
  50% { transform: translateY(-3px) rotate(2deg) scaleX(1.05); }
  100% { transform: translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes hgo-ostler {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(-4px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(0) translateY(0) rotate(-2deg); }
  75% { transform: translateX(3px) translateY(0) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes hgo-prince {
  0% { transform: translateY(0) rotate(0deg) scaleY(1); }
  33% { transform: translateY(-5px) rotate(3deg) scaleY(1.03); }
  66% { transform: translateY(-2px) rotate(-2deg) scaleY(0.98); }
  100% { transform: translateY(0) rotate(0deg) scaleY(1); }
}
@keyframes hgo-lantern {
  0% { box-shadow: 0 0 15px 4px rgba(255,204,128,0.5), 0 0 30px 10px rgba(180,100,40,0.2); transform: rotate(-10deg); }
  50% { box-shadow: 0 0 25px 8px rgba(255,204,128,0.8), 0 0 50px 16px rgba(180,100,40,0.4); transform: rotate(10deg); }
  100% { box-shadow: 0 0 18px 5px rgba(255,204,128,0.6), 0 0 35px 12px rgba(180,100,40,0.3); transform: rotate(-8deg); }
}
@keyframes hgo-moon {
  0% { opacity: 0.6; transform: translateY(0) scale(0.95); }
  50% { opacity: 1; transform: translateY(-2px) scale(1.05); }
  100% { opacity: 0.7; transform: translateY(0) scale(0.95); }
}
@keyframes hgo-door {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-highway-gadshill-eight-yards { background: linear-gradient(180deg, #0d0d2b 0%, #1a1a3e 40%, #2a2a4e 100%), radial-gradient(ellipse at 50% 30%, #3a3a6e 0%, transparent 60%); }
.scn-highway-gadshill-eight-yards .sky { position:absolute; inset:0 0 60% 0; background:linear-gradient(180deg,#1a1a3e 0%,transparent 100%); animation:hg1-sky 10s ease-in-out infinite alternate; }
.scn-highway-gadshill-eight-yards .moon { position:absolute; top:15%; left:65%; width:40px; height:40px; background:radial-gradient(circle,#f0e8c0 0%,#c0b080 60%,transparent 100%); border-radius:50%; box-shadow:0 0 30px #c0b080; animation:hg1-moon 20s ease-in-out infinite; }
.scn-highway-gadshill-eight-yards .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg,#2a2a3a 0%,#1a1a2a 100%); border-radius:20% 30% 0 0 / 10% 20% 0 0; box-shadow:inset 0 10px 20px rgba(0,0,0,0.5); animation:hg1-ground 12s ease-in-out infinite alternate; }
.scn-highway-gadshill-eight-yards .stone1, .scn-highway-gadshill-eight-yards .stone2 { position:absolute; bottom:20%; left:30%; width:30px; height:20px; background:#3a3a4a; border-radius:40% 30% 50% 20%/30% 40% 20% 50%; box-shadow:inset 0 2px 5px rgba(0,0,0,0.3); animation:hg1-stone 8s ease-in-out infinite alternate; }
.scn-highway-gadshill-eight-yards .stone2 { left:60%; width:20px; height:15px; animation-delay:-4s; }
.scn-highway-gadshill-eight-yards .figure { position:absolute; bottom:25%; left:40%; width:20px; height:50px; background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom center; animation:hg1-figure 6s ease-in-out infinite; }
@keyframes hg1-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes hg1-moon { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(3px) scale(1.02); } 100% { transform:translateY(0) scale(1); } }
@keyframes hg1-ground { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes hg1-stone { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-1px) rotate(2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes hg1-figure { 0% { transform:translateX(0) rotate(-2deg); } 25% { transform:translateX(5px) rotate(2deg); } 50% { transform:translateX(10px) rotate(-1deg); } 75% { transform:translateX(15px) rotate(1deg); } 100% { transform:translateX(20px) rotate(0deg); } }

.scn-highway-gadshill-whistle { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a5a 100%), radial-gradient(ellipse at 50% 25%, #4a4a7a 0%, transparent 60%); }
.scn-highway-gadshill-whistle .sky { position:absolute; inset:0 0 65% 0; background:linear-gradient(180deg, #1a1a3a 0%, transparent 100%); animation:hg2-sky 12s ease-in-out infinite alternate; }
.scn-highway-gadshill-whistle .moon { position:absolute; top:20%; left:70%; width:35px; height:35px; background:radial-gradient(circle,#f0e8c0 0%,#c0b080 60%,transparent 100%); border-radius:50%; box-shadow:0 0 25px #c0b080; animation:hg2-moon 22s ease-in-out infinite; }
.scn-highway-gadshill-whistle .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background:#1a1a2a; border-radius:30% 20% 0 0 / 10% 15% 0 0; box-shadow:inset 0 8px 16px rgba(0,0,0,0.6); animation:hg2-ground 14s ease-in-out infinite alternate; }
.scn-highway-gadshill-whistle .lying-body { position:absolute; bottom:20%; left:30%; width:40px; height:15px; background:#1a1a2a; border-radius:50% 50% 30% 30%/40% 40% 20% 20%; animation:hg2-lying-body 8s ease-in-out infinite; }
.scn-highway-gadshill-whistle .lying-head { position:absolute; bottom:21%; left:28%; width:10px; height:10px; background:#1a1a2a; border-radius:50%; animation:hg2-lying-head 8s ease-in-out infinite; }
.scn-highway-gadshill-whistle .standing { position:absolute; bottom:20%; left:55%; width:18px; height:50px; background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom center; animation:hg2-standing 6s ease-in-out infinite; }
.scn-highway-gadshill-whistle .horse-body { position:absolute; bottom:20%; left:40%; width:50px; height:25px; background:#1a1a2a; border-radius:30% 40% 20% 20%/40% 40% 20% 20%; animation:hg2-horse-body 5s ease-in-out infinite; }
.scn-highway-gadshill-whistle .horse-head { position:absolute; bottom:25%; left:38%; width:15px; height:20px; background:#1a1a2a; border-radius:40% 20% 10% 10%/30% 20% 20% 30%; transform-origin:bottom left; animation:hg2-horse-head 5s ease-in-out infinite; }
.scn-highway-gadshill-whistle .horse-legs { position:absolute; bottom:10%; left:42%; width:4px; height:20px; background:#1a1a2a; box-shadow: 8px 0 0 #1a1a2a, 16px 0 0 #1a1a2a, 24px 0 0 #1a1a2a; animation:hg2-horse-legs 5s ease-in-out infinite; }
@keyframes hg2-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes hg2-moon { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(2px) scale(1.02); } 100% { transform:translateY(0) scale(1); } }
@keyframes hg2-ground { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(0); } }
@keyframes hg2-lying-body { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(2px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes hg2-lying-head { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-1px) rotate(2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes hg2-standing { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes hg2-horse-body { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(0); } }
@keyframes hg2-horse-head { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(1px) rotate(3deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes hg2-horse-legs { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(0); } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.beam { position: absolute; pointer-events: none; }
.call { position: absolute; pointer-events: none; }
.flea { position: absolute; pointer-events: none; }
.fly { position: absolute; pointer-events: none; }
.mote { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }
.vine { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
/* rebels-advance-battle – overcast tense wide horizon */
.scn-rebels-advance-battle {
  background: linear-gradient(180deg, #5a6068 0%, #3e4550 35%, #2c3238 100%), 
              radial-gradient(ellipse at 30% 100%, #4a5058 0%, transparent 70%);
}
.scn-rebels-advance-battle .overcast-sky {
  position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #6a727a 0%, #4a5058 100%); animation: rb-sky 14s ease-in-out infinite alternate;
}
.scn-rebels-advance-battle .battlefield {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%; background: linear-gradient(180deg, #5e623a 0%, #3a3e1e 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.5); animation: rb-field 12s ease-in-out infinite alternate;
}
.scn-rebels-advance-battle .soldier-line {
  position: absolute; bottom: 25%; left: 10%; width: 80%; height: 18%; background: linear-gradient(90deg, #2c2e1a 0%, #3a3c20 50%, #2c2e1a 100%); border-radius: 30% 30% 0 0; filter: blur(2px); box-shadow: 0 -2px 10px rgba(0,0,0,.3); animation: rb-advance 8s ease-in-out infinite;
}
.scn-rebels-advance-battle .banner {
  position: absolute; bottom: 30%; width: 8px; height: 28px; background: #2c1a1a; border-radius: 0 0 2px 2px; animation: rb-flag 3s ease-in-out infinite;
}
.scn-rebels-advance-battle .banner-a { left: 25%; animation-delay: .2s; }
.scn-rebels-advance-battle .banner-b { left: 55%; animation-delay: .7s; }
.scn-rebels-advance-battle .horseman {
  position: absolute; bottom: 20%; left: 15%; width: 24px; height: 32px; background: #1a1a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rb-ride 6s ease-in-out infinite;
}
.scn-rebels-advance-battle .dust {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 8%; background: radial-gradient(ellipse at 50% 100%, rgba(120,110,70,.3) 0%, transparent 70%); filter: blur(8px); animation: rb-dust 10s ease-in-out infinite alternate;
}
@keyframes rb-sky { 0% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.02) } 100% { opacity:.75; transform: scaleY(.98) } }
@keyframes rb-field { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes rb-advance { 0% { transform: translateX(-2%) } 50% { transform: translateX(2%) } 100% { transform: translateX(-2%) } }
@keyframes rb-flag { 0% { transform: rotate(-5deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-5deg) } }
@keyframes rb-ride { 0% { transform: translate(0,0) rotate(0) } 30% { transform: translate(8px,-2px) rotate(2deg) } 70% { transform: translate(16px,-1px) rotate(-1deg) } 100% { transform: translate(24px,0) rotate(0) } }
@keyframes rb-dust { 0% { opacity:.15; transform: scaleX(1) } 50% { opacity:.35; transform: scaleX(1.1) } 100% { opacity:.15; transform: scaleX(1) } }

/* douglas-kills-blunt – overcast dark close-up action */
.scn-douglas-kills-blunt {
  background: linear-gradient(180deg, #1c1e24 0%, #24282e 40%, #2a2e34 100%), 
              radial-gradient(ellipse at 60% 80%, #2a2e34 0%, transparent 70%);
}
.scn-douglas-kills-blunt .dark-woods {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1a1c1e 0%, #2a2e32 50%, #1a1c1e 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.6); animation: dk-woods 15s ease-in-out infinite alternate;
}
.scn-douglas-kills-blunt .douglas {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 50px; background: linear-gradient(180deg, #2c2a24 0%, #1a1814 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dk-strike 2s ease-in-out 5;
}
.scn-douglas-kills-blunt .blunt-falling {
  position: absolute; bottom: 18%; left: 22%; width: 28px; height: 40px; background: linear-gradient(180deg, #3a3030 0%, #1a1212 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: 50% 100%; animation: dk-fall 2s ease-in-out 5;
}
.scn-douglas-kills-blunt .sword-stroke {
  position: absolute; bottom: 40%; left: 32%; width: 4px; height: 40px; background: linear-gradient(180deg, #a0a0a0 0%, #606060 100%); border-radius: 2px; transform-origin: 50% 0%; animation: dk-sword 2s ease-in-out 5;
}
.scn-douglas-kills-blunt .falstaff-corpse {
  position: absolute; bottom: 5%; left: 55%; width: 40px; height: 20px; background: #3a3430; border-radius: 60% 60% 40% 40% / 80% 80% 20% 20%; box-shadow: inset 0 4px 6px rgba(0,0,0,.5); animation: dk-fake 4s ease-in-out infinite;
}
.scn-douglas-kills-blunt .blood-pool {
  position: absolute; bottom: 0; left: 20%; width: 30%; height: 6%; background: radial-gradient(ellipse at 50% 100%, #5e1a1d 0%, transparent 70%); filter: blur(3px); animation: dk-blood 3s ease-in-out infinite alternate;
}
@keyframes dk-woods { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes dk-strike { 0% { transform: translate(0,0) rotate(0) } 20% { transform: translate(5px,0) rotate(10deg) } 40% { transform: translate(8px,0) rotate(-5deg) } 60% { transform: translate(12px,0) rotate(0) } 80% { transform: translate(15px,0) rotate(5deg) } 100% { transform: translate(20px,0) rotate(0) } }
@keyframes dk-fall { 0% { transform: rotate(0) translateY(0) } 20% { transform: rotate(15deg) translateY(-2px) } 40% { transform: rotate(-10deg) translateY(0) } 60% { transform: rotate(30deg) translateY(2px) } 80% { transform: rotate(0) translateY(4px) } 100% { transform: rotate(20deg) translateY(6px) } }
@keyframes dk-sword { 0% { transform: rotate(0) } 20% { transform: rotate(-30deg) } 40% { transform: rotate(20deg) } 60% { transform: rotate(-15deg) } 80% { transform: rotate(40deg) } 100% { transform: rotate(0) } }
@keyframes dk-fake { 0% { transform: scale(1) } 50% { transform: scale(1.03) translateY(-1px) } 100% { transform: scale(1) } }
@keyframes dk-blood { 0% { opacity:.4; transform: scaleX(1) } 50% { opacity:.7; transform: scaleX(1.2) } 100% { opacity:.4; transform: scaleX(1) } }

/* item-sack-pistol – overcast funny close-up */
.scn-item-sack-pistol {
  background: linear-gradient(180deg, #4a4e54 0%, #363a40 100%), 
              radial-gradient(ellipse at 50% 30%, #5a5e64 0%, transparent 60%);
}
.scn-item-sack-pistol .stormy-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #5a5e64 0%, #3a3e44 100%); animation: sp-bg 10s ease-in-out infinite alternate;
}
.scn-item-sack-pistol .falstaff-silhouette {
  position: absolute; bottom: 15%; left: 25%; width: 40px; height: 55px; background: #2c2e28; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sp-falstaff 3s ease-in-out infinite;
}
.scn-item-sack-pistol .sack-bottle {
  position: absolute; bottom: 30%; left: 32%; width: 14px; height: 22px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: 2px 2px 4px rgba(0,0,0,.3); animation: sp-bottle 1.5s ease-in-out infinite;
}
.scn-item-sack-pistol .hal-fig {
  position: absolute; bottom: 20%; right: 25%; width: 30px; height: 45px; background: #1a1c1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: sp-hal 4s ease-in-out infinite;
}
.scn-item-sack-pistol .sparkle {
  position: absolute; top: 35%; right: 20%; width: 8px; height: 8px; background: #e0ca80; border-radius: 50%; box-shadow: 0 0 12px 4px rgba(224,202,128,.6); animation: sp-sparkle 2s ease-in-out infinite;
}
.scn-item-sack-pistol .mock-crown {
  position: absolute; top: 20%; right: 15%; width: 20px; height: 10px; background: #a0925a; border-radius: 50% 50% 0 0 / 100% 100% 0 0; transform: rotate(15deg); animation: sp-crown 3.5s ease-in-out infinite;
}
@keyframes sp-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes sp-falstaff { 0% { transform: translate(0,0) rotate(0) } 25% { transform: translate(2px,-1px) rotate(3deg) } 50% { transform: translate(4px,0) rotate(-2deg) } 75% { transform: translate(1px,-1px) rotate(1deg) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes sp-bottle { 0% { transform: rotate(0) } 25% { transform: rotate(15deg) } 50% { transform: rotate(-10deg) } 75% { transform: rotate(20deg) } 100% { transform: rotate(0) } }
@keyframes sp-hal { 0% { transform: scaleX(-1) translate(0,0) } 50% { transform: scaleX(-1) translate(-3px,-1px) } 100% { transform: scaleX(-1) translate(0,0) } }
@keyframes sp-sparkle { 0% { opacity:.2; transform: scale(.5) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.2; transform: scale(.5) } }
@keyframes sp-crown { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-3px) } 100% { transform: rotate(15deg) translateY(0) } }

/* post-battle-executions – bright interior tense */
.scn-post-battle-executions {
  background: linear-gradient(180deg, #d4c8a8 0%, #b8a888 50%, #a09478 100%), 
              radial-gradient(ellipse at 50% 0%, #e8dcc0 0%, transparent 60%);
}
.scn-post-battle-executions .hall-walls {
  position: absolute; inset: 0; background: linear-gradient(90deg, #9a8a6a 0%, #b8a888 20%, #d4c8a8 50%, #b8a888 80%, #9a8a6a 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.15); animation: pb-walls 20s ease-in-out infinite alternate;
}
.scn-post-battle-executions .throne {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 70px; transform: translateX(-50%); background: linear-gradient(180deg, #c8b080 0%, #a89060 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: pb-throne 6s ease-in-out infinite alternate;
}
.scn-post-battle-executions .king-figure {
  position: absolute; bottom: 24%; left: 50%; width: 28px; height: 48px; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 8px rgba(0,0,0,.4); animation: pb-king 8s ease-in-out infinite;
}
.scn-post-battle-executions .guard {
  position: absolute; bottom: 20%; width: 24px; height: 50px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: inset 0 -4px 6px rgba(0,0,0,.5); animation: pb-guard 4s ease-in-out infinite;
}
.scn-post-battle-executions .left-guard { left: 20%; }
.scn-post-battle-executions .right-guard { right: 20%; }
.scn-post-battle-executions .prisoner {
  position: absolute; bottom: 16%; width: 22px; height: 40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: pb-prisoner 3s ease-in-out infinite;
}
.scn-post-battle-executions .wr { left: 35%; }
.scn-post-battle-executions .vn { left: 45%; }
.scn-post-battle-executions .hal-figure {
  position: absolute; bottom: 18%; left: 15%; width: 26px; height: 44px; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pb-hal 7s ease-in-out infinite;
}
@keyframes pb-walls { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pb-throne { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes pb-king { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes pb-guard { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pb-prisoner { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes pb-hal { 0% { transform: translate(0,0) rotate(0) } 50% { transform: translate(2px,-1px) rotate(1deg) } 100% { transform: translate(0,0) rotate(0) } }

/* palace-crusade-plans */
.scn-palace-crusade-plans {
  background: linear-gradient(180deg, #d4c8a8 0%, #b8a88a 40%, #8a7a5a 100%),
              radial-gradient(ellipse at 50% 0%, #f0e8d0 0%, transparent 60%);
}
.scn-palace-crusade-plans .throne {
  position: absolute; bottom: 10%; left: 30%; width: 24%; height: 60%;
  background: linear-gradient(180deg, #c8b080 0%, #806040 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 8px 0 20px rgba(0,0,0,0.3);
  animation: pcp-throne 12s ease-in-out infinite;
}
.scn-palace-crusade-plans .king {
  position: absolute; bottom: 12%; left: 32%; width: 14%; height: 26%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pcp-king 6s ease-in-out infinite alternate;
}
.scn-palace-crusade-plans .map {
  position: absolute; bottom: 8%; left: 48%; width: 20%; height: 14%;
  background: linear-gradient(135deg, #d4c090 0%, #b8a070 50%, #8a7040 100%);
  border-radius: 4%; border: 2px solid #6a5020;
  transform: rotate(4deg);
  animation: pcp-map 20s ease-in-out infinite alternate;
}
.scn-palace-crusade-plans .candle-left,
.scn-palace-crusade-plans .candle-right {
  position: absolute; bottom: 30%; width: 2%; height: 10%;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8a860 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px #f0c040;
  animation: pcp-candle 3s ease-in-out infinite alternate;
}
.scn-palace-crusade-plans .candle-left { left: 20%; }
.scn-palace-crusade-plans .candle-right { left: 70%; animation-delay: 1.5s; }
.scn-palace-crusade-plans .tapestry {
  position: absolute; top: 5%; right: 5%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #7a4a3a 0%, #4a2a1a 100%);
  border-radius: 4%; border: 3px solid #a08060;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.4);
  animation: pcp-tapestry 15s ease-in-out infinite;
}
.scn-palace-crusade-plans .shadow-figure {
  position: absolute; bottom: 12%; right: 12%; width: 10%; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.7) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: pcp-shadow 8s ease-in-out infinite alternate;
}
@keyframes pcp-throne {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(1px) scale(0.99); }
}
@keyframes pcp-king {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(1px) rotate(-1deg); }
}
@keyframes pcp-map {
  0% { transform: rotate(2deg) translateX(0); }
  50% { transform: rotate(6deg) translateX(2px); }
  100% { transform: rotate(0deg) translateX(-2px); }
}
@keyframes pcp-candle {
  0% { box-shadow: 0 0 15px 5px #f0c040; opacity: 0.8; transform: scaleY(1); }
  50% { box-shadow: 0 0 30px 12px #f0d860; opacity: 1; transform: scaleY(1.05); }
  100% { box-shadow: 0 0 20px 8px #d0a030; opacity: 0.9; transform: scaleY(0.98); }
}
@keyframes pcp-tapestry {
  0% { filter: brightness(0.9); }
  50% { filter: brightness(1.05); }
  100% { filter: brightness(0.95); }
}
@keyframes pcp-shadow {
  0% { transform: translateX(0) scale(1); opacity: 0.6; }
  50% { transform: translateX(4px) scale(1.02); opacity: 0.8; }
  100% { transform: translateX(-2px) scale(0.98); opacity: 0.7; }
}

/* prince-apartment-jests */
.scn-prince-apartment-jests {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0e00 100%),
              radial-gradient(ellipse at 30% 50%, #5a3a20 0%, transparent 70%);
}
.scn-prince-apartment-jests .table {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 10%; box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
  animation: paj-table 5s ease-in-out infinite alternate;
}
.scn-prince-apartment-jests .flagon {
  position: absolute; bottom: 15%; left: 40%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
  animation: paj-flagon 4s ease-in-out infinite alternate;
}
.scn-prince-apartment-jests .falstaff {
  position: absolute; bottom: 8%; left: 22%; width: 20%; height: 40%;
  background: radial-gradient(ellipse 70% 60% at 50% 30%, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: paj-falstaff 3s ease-in-out infinite;
}
.scn-prince-apartment-jests .prince-hal {
  position: absolute; bottom: 8%; right: 22%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: paj-hal 4s ease-in-out infinite alternate;
}
.scn-prince-apartment-jests .lamp {
  position: absolute; top: 10%; left: 45%; width: 8%; height: 12%;
  background: radial-gradient(circle at 50% 40%, #f0d080 0%, #c09040 60%, #805020 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 20px #f0c040;
  animation: paj-lamp 3s ease-in-out infinite alternate;
}
.scn-prince-apartment-jests .stool {
  position: absolute; bottom: 10%; right: 38%; width: 10%; height: 12%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 10%; box-shadow: 0 -2px 6px rgba(0,0,0,0.5);
  animation: paj-stool 7s ease-in-out infinite;
}
@keyframes paj-table {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.01); }
  100% { transform: translateY(1px) scaleX(0.99); }
}
@keyframes paj-flagon {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-3px); }
  100% { transform: rotate(-1deg) translateY(1px); }
}
@keyframes paj-falstaff {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(2deg) scale(1.02); }
  50% { transform: translateY(1px) rotate(-2deg); }
  75% { transform: translateY(-1px) rotate(1deg) scale(0.98); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes paj-hal {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-4px) rotate(-1deg) scale(1.01); }
  100% { transform: translateY(2px) rotate(0deg); }
}
@keyframes paj-lamp {
  0% { box-shadow: 0 0 30px 15px #f0c040; opacity: 0.8; }
  50% { box-shadow: 0 0 50px 25px #f0d860; opacity: 1; }
  100% { box-shadow: 0 0 35px 18px #d0a030; opacity: 0.85; }
}
@keyframes paj-stool {
  0% { transform: translateX(0); }
  50% { transform: translateX(3px); }
  100% { transform: translateX(-2px); }
}

/* prince-robbery-scheme */
.scn-prince-robbery-scheme {
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 60%, #0a0500 100%),
              radial-gradient(ellipse at 70% 50%, #3a2a18 0%, transparent 70%);
}
.scn-prince-robbery-scheme .corner-bg {
  position: absolute; top: 0; right: 0; width: 40%; height: 100%;
  background: linear-gradient(225deg, #3a2a18 0%, #1a0e08 100%);
  border-radius: 80% 0 0 0;
  animation: prs-bg 20s ease-in-out infinite alternate;
}
.scn-prince-robbery-scheme .poins {
  position: absolute; bottom: 10%; left: 30%; width: 14%; height: 36%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: prs-poins 4s ease-in-out infinite alternate;
}
.scn-prince-robbery-scheme .hal {
  position: absolute; bottom: 10%; left: 46%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: prs-hal 3.5s ease-in-out infinite alternate;
}
.scn-prince-robbery-scheme .moneybag {
  position: absolute; bottom: 8%; left: 35%; width: 8%; height: 10%;
  background: radial-gradient(ellipse at 50% 30%, #7a5a2a 0%, #4a2a0a 100%);
  border-radius: 40% 40% 50% 50% / 30% 30% 50% 50%;
  transform: rotate(-10deg);
  animation: prs-bag 6s ease-in-out infinite alternate;
}
.scn-prince-robbery-scheme .lantern {
  position: absolute; top: 15%; left: 35%; width: 6%; height: 10%;
  background: radial-gradient(circle at 50% 40%, #f0c860 0%, #c08840 70%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 0 30px 15px #d0a040;
  animation: prs-lantern 2.5s ease-in-out infinite alternate;
}
.scn-prince-robbery-scheme .mask {
  position: absolute; top: 25%; left: 44%; width: 10%; height: 6%;
  background: #1a0e08;
  border-radius: 50% 50% 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: prs-mask 8s ease-in-out infinite;
}
@keyframes prs-bg {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes prs-poins {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(1px) rotate(-1deg); }
}
@keyframes prs-hal {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg) scale(1.02); }
  100% { transform: translateY(2px) rotate(0deg); }
}
@keyframes prs-bag {
  0% { transform: rotate(-12deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-15deg) translateY(1px); }
}
@keyframes prs-lantern {
  0% { box-shadow: 0 0 20px 10px #d0a040; opacity: 0.8; }
  50% { box-shadow: 0 0 40px 20px #f0d860; opacity: 1; }
  100% { box-shadow: 0 0 25px 12px #c08830; opacity: 0.9; }
}
@keyframes prs-mask {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(-3px); }
}

/* palace-hotspur-defiance */
.scn-palace-hotspur-defiance {
  background: linear-gradient(180deg, #c0b098 0%, #a09078 40%, #807058 100%),
              radial-gradient(ellipse at 50% 0%, #e0d4c0 0%, transparent 60%);
}
.scn-palace-hotspur-defiance .throne {
  position: absolute; bottom: 8%; left: 20%; width: 20%; height: 55%;
  background: linear-gradient(180deg, #b8a080 0%, #806040 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 8px 0 20px rgba(0,0,0,0.2);
  animation: phd-throne 10s ease-in-out infinite;
}
.scn-palace-hotspur-defiance .king {
  position: absolute; bottom: 12%; left: 22%; width: 12%; height: 24%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: phd-king 5s ease-in-out infinite alternate;
}
.scn-palace-hotspur-defiance .hotspur {
  position: absolute; bottom: 10%; left: 55%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: phd-hotspur 4s ease-in-out infinite alternate;
}
.scn-palace-hotspur-defiance .guard-left,
.scn-palace-hotspur-defiance .guard-right {
  position: absolute; bottom: 8%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 10px rgba(0,0,0,0.2);
  animation: phd-guard 12s ease-in-out infinite alternate;
}
.scn-palace-hotspur-defiance .guard-left { left: 40%; }
.scn-palace-hotspur-defiance .guard-right { left: 68%; }
.scn-palace-hotspur-defiance .standard {
  position: absolute; top: 5%; left: 60%; width: 3%; height: 35%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 10%;
  transform-origin: top center;
  animation: phd-flag 8s ease-in-out infinite;
}
.scn-palace-hotspur-defiance .map {
  position: absolute; bottom: 6%; left: 50%; width: 15%; height: 10%;
  background: linear-gradient(135deg, #d4c090 0%, #b8a070 50%, #8a7040 100%);
  border-radius: 4%; border: 2px solid #6a5020;
  transform: rotate(-3deg);
  animation: phd-map 25s ease-in-out infinite alternate;
}
.scn-palace-hotspur-defiance .candle {
  position: absolute; bottom: 28%; left: 72%; width: 2%; height: 10%;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8a860 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px #f0c040;
  animation: phd-candle 3s ease-in-out infinite alternate;
}
@keyframes phd-throne {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(1px) scale(0.99); }
}
@keyframes phd-king {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(1px) rotate(-1deg); }
}
@keyframes phd-hotspur {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(-2deg) scale(1.03); }
  100% { transform: translateY(2px) rotate(1deg); }
}
@keyframes phd-guard {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(1px) scaleY(0.98); }
}
@keyframes phd-flag {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(1.05); }
  100% { transform: rotate(-3deg) scaleY(0.95); }
}
@keyframes phd-map {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-1deg) translateX(3px); }
  100% { transform: rotate(-7deg) translateX(-2px); }
}
@keyframes phd-candle {
  0% { box-shadow: 0 0 15px 5px #f0c040; opacity: 0.8; transform: scaleY(1); }
  50% { box-shadow: 0 0 30px 12px #f0d860; opacity: 1; transform: scaleY(1.05); }
  100% { box-shadow: 0 0 20px 8px #d0a030; opacity: 0.9; transform: scaleY(0.98); }
}

/* === Scene: hotspur-resolves-fight (tense, dim-interior) === */
.scn-hotspur-resolves-fight {
  background:
    linear-gradient(180deg, #1a1110 0%, #2a1a15 40%, #1e1210 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a20 0%, transparent 70%);
}
.scn-hotspur-resolves-fight .tent-wall-left {
  position: absolute; left: 0; top: 0; width: 40%; height: 100%;
  background: linear-gradient(135deg, #2a1e1a 0%, #1a1210 100%);
  clip-path: polygon(0 0, 100% 15%, 100% 85%, 0 100%);
  animation: hr-tent 6s ease-in-out infinite alternate;
}
.scn-hotspur-resolves-fight .tent-wall-right {
  position: absolute; right: 0; top: 0; width: 40%; height: 100%;
  background: linear-gradient(225deg, #2a1e1a 0%, #1a1210 100%);
  clip-path: polygon(0 15%, 100% 0, 100% 100%, 0 85%);
  animation: hr-tent 6s ease-in-out infinite alternate-reverse;
}
.scn-hotspur-resolves-fight .table {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 160px; height: 20px;
  background: linear-gradient(90deg, #4a3022 0%, #5a3a28 50%, #4a3022 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-hotspur-resolves-fight .candle-flame {
  position: absolute; bottom: 32%; left: 48%; width: 12px; height: 20px;
  background: radial-gradient(circle, #ffcc66 0%, #ff8833 50%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 12px rgba(255,136,51,0.4), 0 0 60px 24px rgba(255,136,51,0.2);
  animation: hr-candle 2s ease-in-out infinite alternate;
}
.scn-hotspur-resolves-fight .map-scroll {
  position: absolute; bottom: 21%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 8px;
  background: linear-gradient(90deg, #c8b282 0%, #e0c898 50%, #c8b282 100%);
  border-radius: 2px;
  animation: hr-map 4s ease-in-out infinite;
}
.scn-hotspur-resolves-fight .hotspur-silhouette {
  position: absolute; bottom: 20%; left: 42%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #0e0806 0%, #1a0e0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hr-figure 5s ease-in-out infinite;
}
.scn-hotspur-resolves-fight .shadow-flicker {
  position: absolute; bottom: 16%; left: 30%; width: 80px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(4px);
  animation: hr-shadow 3s ease-in-out infinite alternate;
}
@keyframes hr-tent {
  0%   { opacity: 0.9; transform: none; }
  50%  { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.85; transform: scaleY(0.98); }
}
@keyframes hr-candle {
  0%   { transform: scale(1) rotate(-2deg); opacity: 0.8; box-shadow: 0 0 20px 8px rgba(255,136,51,0.3); }
  50%  { transform: scale(1.1) rotate(0deg); opacity: 1; box-shadow: 0 0 40px 16px rgba(255,136,51,0.6); }
  100% { transform: scale(0.95) rotate(2deg); opacity: 0.75; box-shadow: 0 0 25px 10px rgba(255,136,51,0.35); }
}
@keyframes hr-map {
  0%   { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50%  { transform: translateX(-50%) translateY(-2px) rotate(3deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-3deg); }
}
@keyframes hr-figure {
  0%   { transform: translateX(0) translateY(0) rotate(-2deg); }
  30%  { transform: translateX(4px) translateY(-2px) rotate(1deg); }
  60%  { transform: translateX(8px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(12px) translateY(-1px) rotate(0deg); }
}
@keyframes hr-shadow {
  0%   { opacity: 0.4; transform: scale(1) translateX(0); }
  100% { opacity: 0.7; transform: scale(1.1) translateX(8px); }
}

/* === Scene: falstaff-ragged-recruits (funny, overcast) === */
.scn-falstaff-ragged-recruits {
  background:
    linear-gradient(180deg, #8a8a7a 0%, #b0b0a0 40%, #7a7a6a 100%),
    radial-gradient(ellipse at 50% 80%, #c0c0a0 0%, transparent 60%);
}
.scn-falstaff-ragged-recruits .overcast-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #9a9a8a 0%, #c0c0b0 60%, transparent 100%);
  animation: fr-sky 20s ease-in-out infinite alternate;
}
.scn-falstaff-ragged-recruits .distant-hills {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a6a5a 0%, #5a5a4a 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: fr-hills 30s ease-in-out infinite alternate;
}
.scn-falstaff-ragged-recruits .ragged-soldiers {
  position: absolute; bottom: 20%; left: 20%; width: 120px; height: 50px;
  background:
    linear-gradient(90deg, transparent 0%, #4a4a3a 15%, #5a4a3a 30%, #3a3a2a 45%, #4a3a2a 60%, #3a4a3a 75%, transparent 100%);
  clip-path: polygon(10% 100%, 90% 100%, 80% 0%, 20% 0%);
  filter: blur(1px);
  animation: fr-soldiers 8s ease-in-out infinite;
}
.scn-falstaff-ragged-recruits .falstaff-body {
  position: absolute; bottom: 18%; left: 55%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 40%, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: fr-falstaff 6s ease-in-out infinite;
}
.scn-falstaff-ragged-recruits .falstaff-belly {
  position: absolute; bottom: 14%; left: 55%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, #5a3a2a 0%, #3a2218 100%);
  border-radius: 50% 50% 40% 40%;
  transform: translateX(4px);
  animation: fr-belly 4s ease-in-out infinite alternate;
}
.scn-falstaff-ragged-recruits .hal-westmoreland {
  position: absolute; bottom: 22%; right: 18%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: scale(0.9) rotate(-5deg);
  animation: fr-observers 10s ease-in-out infinite alternate;
}
.scn-falstaff-ragged-recruits .mud-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 50%, #2a2a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.5);
}
@keyframes fr-sky {
  0%   { opacity: 0.7; }
  50%  { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes fr-hills {
  0%   { transform: translateY(0); }
  100% { transform: translateY(-5px); }
}
@keyframes fr-soldiers {
  0%   { transform: translateX(0) scaleY(1); }
  25%  { transform: translateX(8px) scaleY(1.02); }
  50%  { transform: translateX(16px) scaleY(0.98); }
  75%  { transform: translateX(24px) scaleY(1.01); }
  100% { transform: translateX(32px) scaleY(1); }
}
@keyframes fr-falstaff {
  0%   { transform: translateX(0) translateY(0) rotate(0deg); }
  30%  { transform: translateX(6px) translateY(-3px) rotate(3deg); }
  60%  { transform: translateX(12px) translateY(0) rotate(-2deg); }
  100% { transform: translateX(18px) translateY(-1px) rotate(0deg); }
}
@keyframes fr-belly {
  0%   { transform: translateX(4px) scale(1); }
  100% { transform: translateX(4px) scale(1.08) rotate(5deg); }
}
@keyframes fr-observers {
  0%   { transform: scale(0.9) rotate(-5deg) translateY(0); }
  50%  { transform: scale(0.92) rotate(-3deg) translateY(-2px); }
  100% { transform: scale(0.88) rotate(-7deg) translateY(1px); }
}

/* === Scene: pre-battle-peace-offer (tense, dim-interior) === */
.scn-pre-battle-peace-offer {
  background:
    linear-gradient(180deg, #1a0e0a 0%, #2a1a12 50%, #1e120e 100%),
    radial-gradient(ellipse at 50% 20%, #3a2018 0%, transparent 70%);
}
.scn-pre-battle-peace-offer .tent-back {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 100%, #2a1a12 0%, #1a0e0a 100%);
  animation: pb-back 10s ease-in-out infinite alternate;
}
.scn-pre-battle-peace-offer .tent-opening {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #1a1210 0%, #2a1e1a 100%);
  clip-path: polygon(20% 100%, 80% 100%, 90% 0%, 10% 0%);
  animation: pb-opening 6s ease-in-out infinite alternate;
}
.scn-pre-battle-peace-offer .hotspur-figure {
  position: absolute; bottom: 22%; left: 45%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #0e0806 0%, #1a0e0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pb-hotspur 7s ease-in-out infinite;
}
.scn-pre-battle-peace-offer .letter-hand {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #c8b282 0%, #a89062 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.6);
  animation: pb-letter 5s ease-in-out infinite;
}
.scn-pre-battle-peace-offer .blunt-figure {
  position: absolute; bottom: 22%; right: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: scaleX(-1);
  animation: pb-blunt 8s ease-in-out infinite alternate;
}
.scn-pre-battle-peace-offer .camp-table {
  position: absolute; bottom: 18%; left: 40%; width: 120px; height: 16px;
  background: linear-gradient(90deg, #4a3022 0%, #5a3a28 50%, #4a3022 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: pb-table 4s ease-in-out infinite;
}
@keyframes pb-back {
  0%   { opacity: 0.9; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.02); }
}
@keyframes pb-opening {
  0%   { transform: scaleY(1); opacity: 0.8; }
  50%  { transform: scaleY(1.05); opacity: 1; }
  100% { transform: scaleY(0.95); opacity: 0.75; }
}
@keyframes pb-hotspur {
  0%   { transform: translateX(0) translateY(0) rotate(-2deg); }
  30%  { transform: translateX(4px) translateY(-2px) rotate(1deg); }
  60%  { transform: translateX(8px) translateY(0) rotate(-3deg); }
  100% { transform: translateX(12px) translateY(-1px) rotate(0deg); }
}
@keyframes pb-letter {
  0%   { transform: translateX(-50%) rotate(-5deg); opacity: 0.7; }
  50%  { transform: translateX(-50%) rotate(5deg); opacity: 1; }
  100% { transform: translateX(-50%) rotate(-3deg); opacity: 0.8; }
}
@keyframes pb-blunt {
  0%   { transform: scaleX(-1) translateX(0); }
  100% { transform: scaleX(-1) translateX(10px); }
}
@keyframes pb-table {
  0%   { transform: translateX(-50%) scale(1); }
  50%  { transform: translateX(-50%) scale(1.02); }
  100% { transform: translateX(-50%) scale(0.98); }
}

/* === Scene: worcester-accuses-king (tense, bright-interior) === */
.scn-worcester-accuses-king {
  background:
    linear-gradient(180deg, #e8d4b0 0%, #d0b890 40%, #b09878 100%),
    radial-gradient(ellipse at 50% 60%, #f0d8b8 0%, transparent 70%);
}
.scn-worcester-accuses-king .bright-tent {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, #f0e0c8 0%, #d0b890 100%);
  animation: wa-tent 12s ease-in-out infinite alternate;
}
.scn-worcester-accuses-king .king-henry {
  position: absolute; bottom: 18%; left: 30%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 4px 0 12px rgba(0,0,0,0.3);
  animation: wa-king 8s ease-in-out infinite;
}
.scn-worcester-accuses-king .hal-figure {
  position: absolute; bottom: 20%; left: 42%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #2a2218 0%, #1a120e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(5deg);
  animation: wa-hal 6s ease-in-out infinite alternate;
}
.scn-worcester-accuses-king .hotspur-figure {
  position: absolute; bottom: 18%; right: 40%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #1a0e0a 0%, #0e0604 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: scaleX(-1);
  animation: wa-hotspur 7s ease-in-out infinite;
}
.scn-worcester-accuses-king .worcester-figure {
  position: absolute; bottom: 22%; right: 20%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: wa-worcester 9s ease-in-out infinite alternate;
}
.scn-worcester-accuses-king .falstaff-figure {
  position: absolute; bottom: 15%; left: 55%; width: 30px; height: 45px;
  background: radial-gradient(ellipse at 50% 40%, #5a3a2a 0%, #3a2218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: wa-falstaff 5s ease-in-out infinite;
}
.scn-worcester-accuses-king .battle-map {
  position: absolute; bottom: 12%; left: 35%; width: 100px; height: 12px;
  background: linear-gradient(90deg, #c8b282 0%, #d8c898 50%, #c8b282 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: wa-map 10s ease-in-out infinite alternate;
}
@keyframes wa-tent {
  0%   { opacity: 0.9; transform: scale(1); }
  50%  { opacity: 1; transform: scale(1.01); }
  100% { opacity: 0.95; transform: scale(0.99); }
}
@keyframes wa-king {
  0%   { transform: translateX(0) translateY(0) rotate(0deg); }
  40%  { transform: translateX(-4px) translateY(-2px) rotate(-2deg); }
  80%  { transform: translateX(4px) translateY(1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes wa-hal {
  0%   { transform: rotate(5deg) translateY(0); }
  50%  { transform: rotate(3deg) translateY(-3px); }
  100% { transform: rotate(8deg) translateY(1px); }
}
@keyframes wa-hotspur {
  0%   { transform: scaleX(-1) translateX(0) rotate(0deg); }
  50%  { transform: scaleX(-1) translateX(-6px) rotate(-4deg); }
  100% { transform: scaleX(-1) translateX(6px) rotate(4deg); }
}
@keyframes wa-worcester {
  0%   { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(-10px) rotate(-5deg); }
}
@keyframes wa-falstaff {
  0%   { transform: rotate(-10deg) scale(1); }
  50%  { transform: rotate(-5deg) scale(1.05); }
  100% { transform: rotate(-12deg) scale(0.95); }
}
@keyframes wa-map {
  0%   { transform: scaleX(1) translateX(0); }
  50%  { transform: scaleX(1.02) translateX(4px); }
  100% { transform: scaleX(0.98) translateX(-4px); }
}

/* falstaff-hiding-sheriff */
.scn-falstaff-hiding-sheriff {
  background: linear-gradient(180deg, #2b1a14 0%, #3d2418 40%, #1a0e0a 100%),
              radial-gradient(ellipse at 60% 80%, #c05830 0%, transparent 60%);
  filter: brightness(0.7) contrast(1.1);
}
.scn-falstaff-hiding-sheriff .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #3d2b20 0%, #4a3428 50%, #2e1a12 100%);
  border-bottom: 4px solid #1a0e0a;
}
.scn-falstaff-hiding-sheriff .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2e1a12 0%, #1a0e0a 100%);
}
.scn-falstaff-hiding-sheriff .curtain {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 70%;
  background: linear-gradient(180deg, #8a3a1a 0%, #502010 100%);
  border-radius: 0 0 20% 20%;
  transform-origin: top center;
  animation: fhs-curtain 4s ease-in-out infinite alternate;
}
.scn-falstaff-hiding-sheriff .falstaff {
  position: absolute; bottom: 30%; left: 18%; width: 24px; height: 40px;
  background: radial-gradient(ellipse at 50% 40%, #3a2520 30%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fhs-falstaff 2s ease-in-out infinite alternate;
}
.scn-falstaff-hiding-sheriff .sheriff {
  position: absolute; bottom: 34%; right: 20%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1a12 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: fhs-sheriff 6s ease-in-out infinite;
}
.scn-falstaff-hiding-sheriff .lantern {
  position: absolute; top: 22%; right: 35%; width: 10px; height: 14px;
  background: radial-gradient(circle at 50% 40%, #e8a840 0%, #c08030 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 6px #e8a840, 0 0 40px 12px rgba(232,168,64,0.3);
  animation: fhs-lantern 3s ease-in-out infinite alternate;
}
.scn-falstaff-hiding-sheriff .table {
  position: absolute; bottom: 32%; left: 10%; width: 80px; height: 8px;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 2px;
  box-shadow: 0 4px 6px #1a0e0a;
}
@keyframes fhs-curtain {
  0% { transform: rotateY(0deg) scaleX(1); }
  50% { transform: rotateY(5deg) scaleX(1.02); }
  100% { transform: rotateY(0deg) scaleX(1); }
}
@keyframes fhs-falstaff {
  0% { transform: translate(0, 0) scaleY(1); }
  50% { transform: translate(-2px, -2px) scaleY(1.03); }
  100% { transform: translate(0, 0) scaleY(1); }
}
@keyframes fhs-sheriff {
  0% { transform: rotate(-2deg) translateX(0); }
  25% { transform: rotate(2deg) translateX(3px); }
  50% { transform: rotate(-1deg) translateX(6px); }
  75% { transform: rotate(2deg) translateX(3px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes fhs-lantern {
  0% { box-shadow: 0 0 12px 3px #e8a840, 0 0 30px 8px rgba(232,168,64,0.2); opacity: 0.7; }
  50% { box-shadow: 0 0 24px 8px #f0b850, 0 0 50px 15px rgba(240,184,80,0.4); opacity: 1; }
  100% { box-shadow: 0 0 16px 5px #e8a840, 0 0 35px 10px rgba(232,168,64,0.3); opacity: 0.85; }
}

/* rebel-council-division */
.scn-rebel-council-division {
  background: linear-gradient(180deg, #d4c4a4 0%, #c8b088 50%, #a88c70 100%),
              radial-gradient(ellipse at 50% 20%, #f0e0c0 0%, transparent 60%);
  filter: brightness(1.05) saturate(1.2);
}
.scn-rebel-council-division .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8b088 0%, #b49c7a 100%);
  border-bottom: 3px solid #8a7050;
}
.scn-rebel-council-division .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%);
}
.scn-rebel-council-division .table {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 8px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 4px;
  transform: perspective(300px) rotateX(30deg);
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.scn-rebel-council-division .map {
  position: absolute; bottom: 30%; left: 25%; width: 50%; height: 6px;
  background: linear-gradient(180deg, #e8d8b8 0%, #d0b890 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: rcd-map 12s ease-in-out infinite;
}
.scn-rebel-council-division .hotspur {
  position: absolute; bottom: 28%; left: 25%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rcd-hotspur 5s ease-in-out infinite;
}
.scn-rebel-council-division .glendower {
  position: absolute; bottom: 28%; right: 30%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rcd-glendower 5s ease-in-out infinite reverse;
}
.scn-rebel-council-division .mortimer {
  position: absolute; bottom: 28%; left: 48%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rcd-mortimer 7s ease-in-out infinite;
}
.scn-rebel-council-division .candle {
  position: absolute; bottom: 32%; left: 5%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #f0d080 0%, #e0b860 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 12px 4px #e0b860;
  animation: rcd-candle 2s ease-in-out infinite alternate;
}
.scn-rebel-council-division .crest {
  position: absolute; top: 30%; left: 10%; width: 20px; height: 24px;
  background: radial-gradient(ellipse at 50% 40%, #b03010 0%, #8a2010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.9);
  box-shadow: 0 0 4px #b03010;
  animation: rcd-crest 10s ease-in-out infinite;
}
@keyframes rcd-map {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(5px) scale(1.03); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes rcd-hotspur {
  0% { transform: translate(0, 0) rotate(0deg); }
  30% { transform: translate(5px, -2px) rotate(8deg); }
  60% { transform: translate(8px, -1px) rotate(5deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes rcd-glendower {
  0% { transform: translate(0, 0) rotate(0deg); }
  40% { transform: translate(-3px, -1px) rotate(-4deg); }
  70% { transform: translate(-6px, -2px) rotate(-6deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes rcd-mortimer {
  0% { transform: translate(0, 0); }
  50% { transform: translate(0, -2px) scale(1.02); }
  100% { transform: translate(0, 0); }
}
@keyframes rcd-candle {
  0% { height: 14px; box-shadow: 0 0 8px 2px #e0b860; }
  50% { height: 15px; box-shadow: 0 0 14px 6px #f0c860; }
  100% { height: 14px; box-shadow: 0 0 8px 2px #e0b860; }
}
@keyframes rcd-crest {
  0% { transform: scale(0.9); opacity: 0.8; }
  50% { transform: scale(1.0); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.8; }
}

/* hal-vows-redemption */
.scn-hal-vows-redemption {
  background: linear-gradient(180deg, #e8d8c0 0%, #d0b898 50%, #a08060 100%),
              radial-gradient(ellipse at 30% 10%, #f8f0e0 0%, transparent 60%);
  filter: contrast(1.1) brightness(1.0);
}
.scn-hal-vows-redemption .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c8b098 0%, #b09880 100%);
  border-bottom: 3px solid #907060;
}
.scn-hal-vows-redemption .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #a08870 0%, #806050 100%);
}
.scn-hal-vows-redemption .throne {
  position: absolute; bottom: 35%; left: 15%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #704830 0%, #402818 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: hvr-throne 8s ease-in-out infinite alternate;
}
.scn-hal-vows-redemption .king {
  position: absolute; bottom: 38%; left: 16%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hvr-king 6s ease-in-out infinite;
}
.scn-hal-vows-redemption .hal {
  position: absolute; bottom: 40%; left: 50%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2218 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hvr-hal 4s ease-in-out infinite alternate;
}
.scn-hal-vows-redemption .window {
  position: absolute; top: 10%; right: 10%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #c0d0e0 0%, #a0b0c0 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%;
  box-shadow: inset 0 0 10px rgba(255,255,255,0.3), 0 0 20px rgba(160,176,192,0.5);
  animation: hvr-window 12s ease-in-out infinite;
}
.scn-hal-vows-redemption .lightbeam {
  position: absolute; top: 10%; right: 10%; width: 60px; height: 80%;
  background: linear-gradient(180deg, rgba(255,255,240,0.15) 0%, rgba(255,255,240,0) 100%);
  filter: blur(8px);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  transform-origin: top center;
  animation: hvr-lightbeam 8s ease-in-out infinite alternate;
}
@keyframes hvr-throne {
  0% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(0, -1px) scale(1.01); }
  100% { transform: translate(0, 0) scale(1); }
}
@keyframes hvr-king {
  0% { transform: rotate(0deg) translate(0, 0); }
  25% { transform: rotate(-3deg) translate(-2px, -1px); }
  50% { transform: rotate(0deg) translate(0, 0); }
  75% { transform: rotate(2deg) translate(2px, -1px); }
  100% { transform: rotate(0deg) translate(0, 0); }
}
@keyframes hvr-hal {
  0% { transform: translate(0, 0) scaleY(1); }
  50% { transform: translate(0, -4px) scaleY(1.05); }
  100% { transform: translate(0, 0) scaleY(1); }
}
@keyframes hvr-window {
  0% { opacity: 0.7; box-shadow: 0 0 10px rgba(160,176,192,0.3); }
  50% { opacity: 1; box-shadow: 0 0 25px rgba(160,176,192,0.7); }
  100% { opacity: 0.7; box-shadow: 0 0 10px rgba(160,176,192,0.3); }
}
@keyframes hvr-lightbeam {
  0% { transform: rotate(0deg) scaleX(1); opacity: 0.4; }
  50% { transform: rotate(3deg) scaleX(1.05); opacity: 0.7; }
  100% { transform: rotate(0deg) scaleX(1); opacity: 0.4; }
}

/* falstaff-command-taken */
.scn-falstaff-command-taken {
  background: linear-gradient(180deg, #3a2018 0%, #5a3020 40%, #2a1810 100%),
              radial-gradient(ellipse at 50% 70%, #c06030 0%, transparent 60%);
  filter: brightness(0.9) saturate(1.1);
}
.scn-falstaff-command-taken .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a2018 0%, #4a3020 50%, #2a1810 100%);
  border-bottom: 3px solid #1a0e0a;
}
.scn-falstaff-command-taken .fireplace {
  position: absolute; bottom: 20%; left: 5%; width: 40px; height: 40px;
  background: linear-gradient(180deg, #301810 0%, #1a0e0a 100%);
  border-radius: 30% 30% 5% 5% / 50% 50% 10% 10%;
  border: 2px solid #5a3020;
  animation: fct-fireplace 8s ease-in-out infinite alternate;
}
.scn-falstaff-command-taken .table {
  position: absolute; bottom: 28%; left: 20%; width: 60px; height: 6px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 2px;
  box-shadow: 0 3px 5px #1a0e0a;
}
.scn-falstaff-command-taken .hostess {
  position: absolute; bottom: 30%; right: 8%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #6a4230 0%, #3a2018 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fct-hostess 5s ease-in-out infinite;
}
.scn-falstaff-command-taken .falstaff {
  position: absolute; bottom: 30%; left: 25%; width: 28px; height: 38px;
  background: radial-gradient(ellipse at 50% 40%, #4a3020 30%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fct-falstaff 3s ease-in-out infinite alternate;
}
.scn-falstaff-command-taken .bardolph {
  position: absolute; bottom: 30%; left: 8%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #5a3828 0%, #2a1a10 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fct-bardolph 7s ease-in-out infinite;
}
.scn-falstaff-command-taken .hal {
  position: absolute; bottom: 30%; right: 30%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #7a4a32 0%, #4a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fct-hal 6s ease-in-out infinite alternate;
}
.scn-falstaff-command-taken .cup {
  position: absolute; bottom: 32%; left: 40%; width: 8px; height: 10px;
  background: linear-gradient(180deg, #c08050 0%, #a06030 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  transform-origin: bottom center;
  animation: fct-cup 4s ease-in-out infinite alternate;
}
.scn-falstaff-command-taken .fireglow {
  position: absolute; bottom: 20%; left: 0%; width: 80px; height: 40px;
  background: radial-gradient(ellipse at 10% 80%, rgba(200,80,0,0.6) 0%, transparent 60%);
  filter: blur(10px);
  opacity: 0.7;
  animation: fct-fireglow 2s ease-in-out infinite alternate;
}
@keyframes fct-fireplace {
  0% { box-shadow: inset 0 0 8px #c06030; }
  50% { box-shadow: inset 0 0 16px #e08040; }
  100% { box-shadow: inset 0 0 8px #c06030; }
}
@keyframes fct-hostess {
  0% { transform: translate(0, 0) rotate(0deg); }
  30% { transform: translate(0, -2px) rotate(2deg); }
  60% { transform: translate(0, 0) rotate(0deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes fct-falstaff {
  0% { transform: scaleY(1) rotate(0deg); }
  50% { transform: scaleY(1.04) rotate(-2deg); }
  100% { transform: scaleY(1) rotate(0deg); }
}
@keyframes fct-bardolph {
  0% { transform: translate(0, 0); }
  40% { transform: translate(2px, 0) rotate(2deg); }
  80% { transform: translate(0, 0); }
  100% { transform: translate(0, 0); }
}
@keyframes fct-hal {
  0% { transform: translate(0, 0) rotate(0deg); }
  50% { transform: translate(2px, -2px) rotate(3deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes fct-cup {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes fct-fireglow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.5; transform: scale(1); }
}

/* highway-robbery-trick */
.scn-highway-robbery-trick {
  background:
    linear-gradient(180deg, #0f2035 0%, #1c3a55 40%, #2b5068 100%),
    radial-gradient(ellipse at 50% 10%, #ffffff20 0%, transparent 60%);
}
.scn-highway-robbery-trick .sky { position:absolute; inset:0 0 55% 0; background:linear-gradient(180deg, #0b1a2a 0%, #132a40 100%); animation:hrt-sky 20s ease-in-out infinite alternate;}
.scn-highway-robbery-trick .moon { position:absolute; top:8%; left:60%; width:40px; height:40px; background:radial-gradient(circle, #d0dce8 0%, #a0b4c8 70%); border-radius:50%; box-shadow:0 0 30px 8px #8098b0; animation:hrt-moon 15s ease-in-out infinite;}
.scn-highway-robbery-trick .road { position:absolute; bottom:20%; left:-10%; right:-10%; height:30%; background:linear-gradient(180deg, #3a4a58 0%, #1a2830 100%); border-radius:5% 5% 0 0; transform:perspective(300px) rotateX(10deg); animation:hrt-road 8s ease-in-out infinite;}
.scn-highway-robbery-trick .bush-left { position:absolute; bottom:35%; left:5%; width:70px; height:30px; background:linear-gradient(180deg, #2a3a3a 0%, #152525 100%); border-radius:50% 50% 30% 30%; filter:blur(5px); animation:hrt-bush 40s linear infinite;}
.scn-highway-robbery-trick .bush-right { position:absolute; bottom:38%; right:10%; width:80px; height:28px; background:linear-gradient(180deg, #2a3a3a 0%, #152525 100%); border-radius:60% 40% 40% 40%; filter:blur(4px); animation:hrt-bush 30s linear infinite reverse;}
.scn-highway-robbery-trick .falstaff { position:absolute; bottom:20%; left:30%; width:30px; height:55px; background:linear-gradient(180deg, #2a2a3a 0%, #0e0e1a 100%); border-radius:50% 50% 50% 50% / 70% 70% 40% 40%; transform-origin:bottom; animation:hrt-flee 4s ease-in-out infinite;}
.scn-highway-robbery-trick .halpoins { position:absolute; bottom:20%; right:35%; width:24px; height:50px; background:linear-gradient(180deg, #28303a 0%, #101820 100%); border-radius:50% 50% 40% 40% / 65% 65% 40% 40%; animation:hrt-chase 6s ease-in-out infinite;}
.scn-highway-robbery-trick .booty { position:absolute; bottom:20%; left:55%; width:20px; height:15px; background:linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; transform:rotate(-10deg); box-shadow:0 2px 6px #00000060; animation:hrt-booty 9s ease-in-out infinite;}
.scn-highway-robbery-trick .sparkle { position:absolute; top:10%; left:80%; width:6px; height:6px; background:#b0c8e0; border-radius:50%; box-shadow:0 0 12px 4px #8098b0; animation:hrt-sparkle 3s ease-in-out infinite alternate;}
@keyframes hrt-sky { 0%{opacity:0.8; filter:brightness(0.9)} 50%{opacity:1; filter:brightness(1)} 100%{opacity:0.85; filter:brightness(0.95)} }
@keyframes hrt-moon { 0%{transform:translateX(0) scale(1)} 50%{transform:translateX(5px) scale(1.02)} 100%{transform:translateX(-3px) scale(0.98)} }
@keyframes hrt-road { 0%{transform:perspective(300px) rotateX(10deg) translateZ(0)} 50%{transform:perspective(300px) rotateX(12deg) translateZ(2px)} 100%{transform:perspective(300px) rotateX(10deg) translateZ(0)} }
@keyframes hrt-bush { 0%{opacity:0.7; transform:scale(1)} 50%{opacity:1; transform:scale(1.05)} 100%{opacity:0.7; transform:scale(0.95)} }
@keyframes hrt-flee { 0%{transform:translateX(0) rotate(0deg)} 25%{transform:translateX(3px) rotate(-2deg)} 50%{transform:translateX(-2px) rotate(2deg)} 75%{transform:translateX(4px) rotate(-1deg)} 100%{transform:translateX(0) rotate(0deg)} }
@keyframes hrt-chase { 0%{transform:translateX(0) rotate(0deg) scale(1)} 25%{transform:translateX(-4px) rotate(1deg) scale(0.98)} 50%{transform:translateX(0) rotate(-1deg) scale(1)} 75%{transform:translateX(3px) rotate(0deg) scale(1.02)} 100%{transform:translateX(0) rotate(0deg) scale(1)} }
@keyframes hrt-booty { 0%{transform:rotate(-10deg) translateY(0)} 50%{transform:rotate(-8deg) translateY(-2px)} 100%{transform:rotate(-12deg) translateY(0)} }
@keyframes hrt-sparkle { 0%{opacity:0.3; transform:scale(0.5)} 100%{opacity:1; transform:scale(1.5)} }

/* hotspur-letter-melancholy */
.scn-hotspur-letter-melancholy {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #282848 40%, #3a3060 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a5e 0%, transparent 70%);
}
.scn-hotspur-letter-melancholy .wall { position:absolute; inset:0; background:linear-gradient(135deg, #2a2a44 0%, #1a1a30 100%); border-radius:0 0 30% 30% / 0 0 10% 10%; animation:hpm-wall 25s ease-in-out infinite alternate;}
.scn-hotspur-letter-melancholy .window { position:absolute; top:12%; left:65%; width:35%; height:45%; background:linear-gradient(180deg, #5a6a80 0%, #3a4a60 100%); border-radius:2% 2% 0 0; box-shadow:inset 0 0 20px #000; transform:skewX(-5deg); animation:hpm-win 15s ease-in-out infinite;}
.scn-hotspur-letter-melancholy .desk { position:absolute; bottom:20%; left:40%; width:30%; height:8%; background:linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:2px; box-shadow:0 4px 8px #00000060; animation:hpm-desk 8s ease-in-out infinite;}
.scn-hotspur-letter-melancholy .letter { position:absolute; bottom:25%; left:48%; width:8%; height:6%; background:radial-gradient(circle, #c0a870 0%, #887550 70%); border-radius:2px; box-shadow:0 0 16px 4px #a89060; animation:hpm-letter 5s ease-in-out infinite alternate;}
.scn-hotspur-letter-melancholy .hotspur { position:absolute; bottom:20%; left:45%; width:22px; height:48px; background:linear-gradient(180deg, #2a2a3e 0%, #0e0e1a 100%); border-radius:50% 50% 45% 45% / 65% 65% 40% 40%; transform-origin:bottom; animation:hpm-figure 4s ease-in-out infinite;}
.scn-hotspur-letter-melancholy .lady { position:absolute; bottom:22%; left:60%; width:18px; height:40px; background:linear-gradient(180deg, #2a2a3e 0%, #111122 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.7; animation:hpm-figure 6s ease-in-out infinite reverse;}
.scn-hotspur-letter-melancholy .candle { position:absolute; bottom:35%; left:42%; width:6px; height:14px; background:linear-gradient(180deg, #c0a060 0%, #806030 100%); border-radius:2px; box-shadow:0 0 20px 10px #b08040; animation:hpm-candle 4s ease-in-out infinite alternate;}
@keyframes hpm-wall { 0%{opacity:0.8} 50%{opacity:0.9} 100%{opacity:0.7} }
@keyframes hpm-win { 0%{filter:brightness(0.6); transform:skewX(-5deg)} 50%{filter:brightness(0.8); transform:skewX(-3deg)} 100%{filter:brightness(0.6); transform:skewX(-5deg)} }
@keyframes hpm-desk { 0%{transform:translateY(0)} 50%{transform:translateY(-1px)} 100%{transform:translateY(0)} }
@keyframes hpm-letter { 0%{opacity:0.5; transform:scale(1) rotate(-2deg)} 50%{opacity:0.8; transform:scale(1.02) rotate(0)} 100%{opacity:0.6; transform:scale(0.98) rotate(2deg)} }
@keyframes hpm-figure { 0%{transform:translateX(0) rotate(0deg) scale(1)} 25%{transform:translateX(1px) rotate(-1deg) scale(0.98)} 50%{transform:translateX(-1px) rotate(1deg) scale(1)} 75%{transform:translateX(2px) rotate(0deg) scale(1.01)} 100%{transform:translateX(0) rotate(0deg) scale(1)} }
@keyframes hpm-candle { 0%{opacity:0.6; box-shadow:0 0 12px 4px #b08040} 50%{opacity:1; box-shadow:0 0 24px 10px #c09050} 100%{opacity:0.7; box-shadow:0 0 16px 6px #b08040} }

/* boars-head-lies-exposed */
.scn-boars-head-lies-exposed {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #3a2210 40%, #4a3218 100%),
    radial-gradient(ellipse at 50% 0%, #ffcc8040 0%, transparent 60%);
}
.scn-boars-head-lies-exposed .fire { position:absolute; bottom:10%; left:10%; width:60%; height:60%; background:radial-gradient(ellipse at 50% 100%, #ff9040 0%, #c06020 30%, #4a2010 70%); border-radius:0 0 50% 50%; filter:blur(20px); animation:bhl-fire 5s ease-in-out infinite;}
.scn-boars-head-lies-exposed .wall-left { position:absolute; inset:0 60% 0 0; background:linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius:0 10% 0 0; animation:bhl-wall 30s linear infinite;}
.scn-boars-head-lies-exposed .wall-right { position:absolute; inset:0 0 0 60%; background:linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius:10% 0 0 0; animation:bhl-wall 20s linear infinite reverse;}
.scn-boars-head-lies-exposed .table { position:absolute; bottom:15%; left:25%; right:25%; height:8%; background:linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius:4px; box-shadow:0 6px 12px #00000080; transform:perspective(200px) rotateX(20deg); animation:bhl-table 10s ease-in-out infinite;}
.scn-boars-head-lies-exposed .falstaff { position:absolute; bottom:20%; left:40%; width:40px; height:60px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius:50% 50% 50% 50% / 75% 75% 40% 40%; transform-origin:bottom; animation:bhl-falstaff 4s ease-in-out infinite;}
.scn-boars-head-lies-exposed .hal { position:absolute; bottom:22%; left:25%; width:20px; height:50px; background:linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius:50% 50% 40% 40% / 65% 65% 40% 40%; transform-origin:bottom; animation:bhl-hal 6s ease-in-out infinite;}
.scn-boars-head-lies-exposed .poins { position:absolute; bottom:22%; right:25%; width:20px; height:48px; background:linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius:50% 50% 40% 40% / 65% 65% 40% 40%; animation:bhl-hal 6.5s ease-in-out infinite reverse;}
.scn-boars-head-lies-exposed .mugs { position:absolute; bottom:18%; left:45%; width:12px; height:16px; background:linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius:0 0 20% 20%; box-shadow:4px 0 0 #3a2a1a, -4px 0 0 #3a2a1a; animation:bhl-mugs 7s ease-in-out infinite alternate;}
@keyframes bhl-fire { 0%{opacity:0.7; transform:scale(1)} 50%{opacity:0.9; transform:scale(1.05)} 100%{opacity:0.7; transform:scale(0.95)} }
@keyframes bhl-wall { 0%{filter:brightness(0.8)} 50%{filter:brightness(1)} 100%{filter:brightness(0.8)} }
@keyframes bhl-table { 0%{transform:perspective(200px) rotateX(20deg) translateY(0)} 50%{transform:perspective(200px) rotateX(22deg) translateY(-1px)} 100%{transform:perspective(200px) rotateX(20deg) translateY(0)} }
@keyframes bhl-falstaff { 0%{transform:translateX(0) rotate(0deg) scale(1)} 20%{transform:translateX(3px) rotate(-2deg) scale(1.02)} 40%{transform:translateX(-2px) rotate(1deg) scale(0.98)} 60%{transform:translateX(4px) rotate(-1deg) scale(1.01)} 80%{transform:translateX(-3px) rotate(2deg) scale(0.99)} 100%{transform:translateX(0) rotate(0deg) scale(1)} }
@keyframes bhl-hal { 0%{transform:translateX(0) rotate(0deg) scale(1)} 25%{transform:translateX(-2px) rotate(1deg) scale(0.98)} 50%{transform:translateX(2px) rotate(-1deg) scale(1.02)} 75%{transform:translateX(-1px) rotate(0deg) scale(1)} 100%{transform:translateX(0) rotate(0deg) scale(1)} }
@keyframes bhl-mugs { 0%{transform:translateY(0) rotate(-3deg)} 50%{transform:translateY(-1px) rotate(0deg)} 100%{transform:translateY(1px) rotate(3deg)} }

/* mock-trial-interrupted */
.scn-mock-trial-interrupted {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #3a2210 40%, #4a3218 100%),
    radial-gradient(ellipse at 50% 0%, #ffcc8040 0%, transparent 60%);
}
.scn-mock-trial-interrupted .fire { position:absolute; bottom:10%; left:10%; width:60%; height:60%; background:radial-gradient(ellipse at 50% 100%, #ff9040 0%, #c06020 30%, #4a2010 70%); border-radius:0 0 50% 50%; filter:blur(18px); animation:mti-fire 5s ease-in-out infinite;}
.scn-mock-trial-interrupted .wall { position:absolute; inset:0; background:linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius:0 0 20% 20%; animation:mti-wall 40s linear infinite;}
.scn-mock-trial-interrupted .throne { position:absolute; bottom:15%; left:35%; width:30%; height:20%; background:linear-gradient(135deg, #5a3a1a 0%, #2a1a0a 100%); border-radius:10% 10% 5% 5%; box-shadow:0 8px 16px #000; transform:scale(0.95); animation:mti-throne 8s ease-in-out infinite;}
.scn-mock-trial-interrupted .falstaff-king { position:absolute; bottom:20%; left:40%; width:38px; height:58px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius:50% 50% 50% 50% / 75% 75% 40% 40%; transform-origin:bottom; animation:mti-king 4s ease-in-out infinite;}
.scn-mock-trial-interrupted .hal-prince { position:absolute; bottom:22%; left:25%; width:20px; height:48px; background:linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius:50% 50% 40% 40% / 65% 65% 40% 40%; animation:mti-hal 6s ease-in-out infinite;}
.scn-mock-trial-interrupted .hostess { position:absolute; bottom:20%; right:20%; width:18px; height:42px; background:linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.8; animation:mti-hostess 7s ease-in-out infinite alternate;}
.scn-mock-trial-interrupted .soldier { position:absolute; bottom:24%; right:5%; width:22px; height:50px; background:linear-gradient(180deg, #2a2a3e 0%, #0e0e1a 100%); border-radius:50% 50% 40% 40% / 65% 65% 40% 40%; transform-origin:bottom; animation:mti-soldier 3s ease-in-out infinite;}
@keyframes mti-fire { 0%{opacity:0.6; transform:scale(1)} 50%{opacity:0.9; transform:scale(1.06)} 100%{opacity:0.6; transform:scale(0.94)} }
@keyframes mti-wall { 0%{filter:brightness(0.7)} 50%{filter:brightness(0.9)} 100%{filter:brightness(0.7)} }
@keyframes mti-throne { 0%{transform:scale(0.95) translateY(0) rotate(0deg)} 50%{transform:scale(0.97) translateY(-2px) rotate(-1deg)} 100%{transform:scale(0.95) translateY(0) rotate(0deg)} }
@keyframes mti-king { 0%{transform:translateX(0) rotate(0deg) scale(1)} 20%{transform:translateX(2px) rotate(-2deg) scale(1.03)} 40%{transform:translateX(-3px) rotate(1deg) scale(0.97)} 60%{transform:translateX(4px) rotate(-1deg) scale(1.01)} 80%{transform:translateX(-2px) rotate(2deg) scale(0.99)} 100%{transform:translateX(0) rotate(0deg) scale(1)} }
@keyframes mti-hal { 0%{transform:translateX(0) rotate(0deg) scale(1)} 25%{transform:translateX(1px) rotate(-1deg) scale(0.98)} 50%{transform:translateX(-2px) rotate(1deg) scale(1.02)} 75%{transform:translateX(3px) rotate(0deg) scale(1)} 100%{transform:translateX(0) rotate(0deg) scale(1)} }
@keyframes mti-hostess { 0%{transform:translateX(0) rotate(0deg); opacity:0.6} 50%{transform:translateX(-2px) rotate(1deg); opacity:0.9} 100%{transform:translateX(0) rotate(0deg); opacity:0.6} }
@keyframes mti-soldier { 0%{transform:translateX(0) rotate(0deg) scale(1)} 25%{transform:translateX(5px) rotate(3deg) scale(1.05)} 50%{transform:translateX(0) rotate(0deg) scale(1)} 75%{transform:translateX(-3px) rotate(-2deg) scale(0.95)} 100%{transform:translateX(0) rotate(0deg) scale(1)} }
/* end per-scene blocks */
