/* 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-caius-mistake {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a1008 100%),
    radial-gradient(ellipse at 30% 60%, #5a3a2a 0%, transparent 60%);
}
.scn-caius-mistake .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #3a2a1a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.4);
}
.scn-caius-mistake .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a1008 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-caius-mistake .door {
  position: absolute; bottom: 40%; left: 50%; width: 60px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -2px 0 6px rgba(0,0,0,.3), 2px 0 6px rgba(0,0,0,.3);
  animation: cms-door 6s ease-in-out infinite alternate;
}
.scn-caius-mistake .figure {
  position: absolute; bottom: 38%; left: 42%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a1a10 0%, #0a0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cms-figure 4s ease-in-out infinite;
}
.scn-caius-mistake .hat {
  position: absolute; bottom: 73%; left: 40%; width: 30px; height: 12px;
  background: #2a1a0a;
  border-radius: 50% 50% 10% 10%;
  transform: rotate(-15deg);
  animation: cms-hat 2.5s ease-in-out infinite alternate;
}
.scn-caius-mistake .candle {
  position: absolute; bottom: 40%; left: 60%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #b08850 0%, #704a20 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 8px rgba(200,150,60,.5);
  animation: cms-candle-glow 3s ease-in-out infinite alternate;
}
.scn-caius-mistake .shadow {
  position: absolute; bottom: 38%; left: 38%; width: 40px; height: 10px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: cms-shadow 4s ease-in-out infinite;
}
@keyframes cms-door {
  0% { transform: translateX(-50%) rotateY(0deg); }
  50% { transform: translateX(-50%) rotateY(15deg); }
  100% { transform: translateX(-50%) rotateY(0deg); }
}
@keyframes cms-figure {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(3deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(8px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes cms-hat {
  0% { transform: rotate(-15deg) translateY(0); }
  100% { transform: rotate(20deg) translateY(-6px); }
}
@keyframes cms-candle-glow {
  0% { box-shadow: 0 0 15px 5px rgba(200,150,60,.4); opacity: .8; }
  50% { box-shadow: 0 0 30px 12px rgba(220,170,70,.7); opacity: 1; }
  100% { box-shadow: 0 0 18px 6px rgba(200,150,60,.45); opacity: .85; }
}
@keyframes cms-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity: .3; }
  50% { transform: scaleX(1.2) scaleY(0.8); opacity: .5; }
  100% { transform: scaleX(1) scaleY(1); opacity: .3; }
}

.scn-fentons-revelation {
  background:
    linear-gradient(180deg, #3a2010 0%, #2a1a0a 50%, #1a1008 100%),
    radial-gradient(ellipse at 70% 50%, #704020 0%, transparent 70%);
}
.scn-fentons-revelation .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #4a2a1a 0%, #5a3a2a 40%, #3a2010 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.5);
}
.scn-fentons-revelation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f08 100%);
  box-shadow: inset 0 6px 15px rgba(0,0,0,.7);
}
.scn-fentons-revelation .window {
  position: absolute; bottom: 45%; right: 15%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #4a6a8a 0%, #2a4a6a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(150,180,220,.3);
  animation: fre-window 7s ease-in-out infinite alternate;
}
.scn-fentons-revelation .fenton {
  position: absolute; bottom: 30%; left: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a20 0%, #0a0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fre-kneel 5s ease-in-out infinite;
}
.scn-fentons-revelation .anne {
  position: absolute; bottom: 30%; left: 36%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #2a2030 0%, #1a1020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fre-kneel 5s ease-in-out infinite reverse;
}
.scn-fentons-revelation .parent1 {
  position: absolute; bottom: 35%; left: 50%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fre-parent 8s ease-in-out infinite;
}
.scn-fentons-revelation .parent2 {
  position: absolute; bottom: 35%; left: 58%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fre-parent 8s ease-in-out infinite 2s;
}
.scn-fentons-revelation .hearth {
  position: absolute; bottom: 30%; left: 10%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #c08040 0%, #8a5a2a 60%, #3a2010 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 15px rgba(200,130,60,.6);
  animation: fre-hearth 4s ease-in-out infinite alternate;
}
@keyframes fre-window {
  0% { opacity: .6; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes fre-kneel {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-8px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes fre-parent {
  0% { transform: translateY(0) scaleX(1); }
  25% { transform: translateY(-3px) scaleX(1.05); }
  50% { transform: translateY(0) scaleX(1); }
  75% { transform: translateY(-3px) scaleX(0.95); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes fre-hearth {
  0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 20px 10px rgba(200,130,60,.5); }
  50% { transform: scale(1.1) rotate(3deg); box-shadow: 0 0 40px 20px rgba(220,150,70,.7); }
  100% { transform: scale(1) rotate(0deg); box-shadow: 0 0 25px 12px rgba(200,130,60,.5); }
}

.scn-final-reconciliation {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #1a1008 40%, #0f0a05 100%),
    radial-gradient(ellipse at 50% 40%, #3a2010 0%, transparent 60%);
}
.scn-final-reconciliation .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #2a1a0a 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,.5);
}
.scn-final-reconciliation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a0f08 0%, #0a0604 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-final-reconciliation .curtain {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 70%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 0 20px rgba(0,0,0,.4);
  animation: frc-curtain 10s ease-in-out infinite alternate;
}
.scn-final-reconciliation .sir-john {
  position: absolute; bottom: 30%; left: 30%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: frc-bow 6s ease-in-out infinite;
}
.scn-final-reconciliation .brook {
  position: absolute; bottom: 30%; left: 50%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: frc-bow 6s ease-in-out infinite 3s;
}
.scn-final-reconciliation .mug {
  position: absolute; bottom: 28%; left: 42%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 4px 4px 6px 6px;
  box-shadow: 0 0 10px rgba(200,150,80,.3);
  animation: frc-mug 4s ease-in-out infinite alternate;
}
.scn-final-reconciliation .shadow {
  position: absolute; bottom: 28%; left: 28%; width: 50px; height: 12px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(5px);
  animation: frc-shadow 6s ease-in-out infinite;
}
@keyframes frc-curtain {
  0% { transform: scaleY(1); opacity: .9; }
  50% { transform: scaleY(1.02); opacity: 1; }
  100% { transform: scaleY(1); opacity: .9; }
}
@keyframes frc-bow {
  0% { transform: translateY(0) rotate(0deg) scaleY(1); }
  25% { transform: translateY(-4px) rotate(-5deg) scaleY(1.05); }
  50% { transform: translateY(0) rotate(0deg) scaleY(1); }
  75% { transform: translateY(-4px) rotate(5deg) scaleY(1.05); }
  100% { transform: translateY(0) rotate(0deg) scaleY(1); }
}
@keyframes frc-mug {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-2px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes frc-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity: .3; }
  50% { transform: scaleX(1.3) scaleY(0.7); opacity: .5; }
  100% { transform: scaleX(1) scaleY(1); opacity: .3; }
}

/* fords-wife-named - tense dim interior */
.scn-fords-wife-named {
  background: 
    linear-gradient(180deg, #2b1a14 0%, #1f1010 50%, #120808 100%),
    radial-gradient(ellipse at 60% 40%, #3a2018 0%, transparent 80%);
}
.scn-fords-wife-named .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a22 0%, #1f1410 100%);
  animation: fwn-wall 14s ease-in-out infinite alternate;
}
.scn-fords-wife-named .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1010 0%, #0e0808 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,.5);
}
.scn-fords-wife-named .window {
  position: absolute; top: 12%; left: 20%; width: 30%; height: 45%;
  background: radial-gradient(ellipse at 50% 30%, #4a3a30 0%, #1a0e0a 80%);
  border-radius: 4px;
  box-shadow: inset 0 0 60px rgba(0,0,0,.6);
  animation: fwn-window 7s ease-in-out infinite alternate;
}
.scn-fords-wife-named .candle-glow {
  position: absolute; top: 48%; left: 55%; width: 20px; height: 30px;
  background: radial-gradient(circle, #f0c088 0%, #c08040 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(192,128,64,.3), 0 0 120px 40px rgba(192,128,64,.15);
  animation: fwn-candle 3s ease-in-out infinite alternate;
}
.scn-fords-wife-named .figure-silhouette {
  position: absolute; bottom: 30%; left: 45%; width: 30px; height: 60px;
  background: #0e0808;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 20px rgba(0,0,0,.5);
  animation: fwn-figure 5s ease-in-out infinite;
}
.scn-fords-wife-named .shadow-arm {
  position: absolute; bottom: 42%; left: 52%; width: 20px; height: 40px;
  background: #0e0808;
  border-radius: 40% 20% 10% 30%;
  transform-origin: top left;
  animation: fwn-arm 5s ease-in-out infinite;
}
@keyframes fwn-wall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes fwn-window { 0% { box-shadow: inset 0 0 60px rgba(0,0,0,.6) } 50% { box-shadow: inset 0 0 80px rgba(0,0,0,.4) } 100% { box-shadow: inset 0 0 60px rgba(0,0,0,.6) } }
@keyframes fwn-candle { 0% { transform: scale(1) rotate(-2deg); opacity:.8 } 50% { transform: scale(1.1) rotate(1deg); opacity:1 } 100% { transform: scale(.95) rotate(-1deg); opacity:.7 } }
@keyframes fwn-figure { 0% { transform: translateX(0) rotate(1deg) } 30% { transform: translateX(4px) rotate(-1deg) } 60% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes fwn-arm { 0% { transform: rotate(20deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(15deg) } }

/* shadow-love - tense dim interior, peeping figure */
.scn-shadow-love {
  background: 
    linear-gradient(180deg, #1e1412 0%, #140c0a 50%, #0a0604 100%),
    radial-gradient(ellipse at 30% 70%, #2a1c18 0%, transparent 70%);
}
.scn-shadow-love .room-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2c1e1a 0%, #1a100e 100%);
  animation: shl-wall 10s ease-in-out infinite alternate;
}
.scn-shadow-love .door-frame {
  position: absolute; bottom: 25%; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(90deg, #2a1a16 0%, #3a2620 50%, #2a1a16 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
}
.scn-shadow-love .door-aperture {
  position: absolute; bottom: 27%; left: 42%; width: 16%; height: 55%;
  background: #0a0604;
  border-radius: 2px;
  box-shadow: inset 0 0 40px rgba(0,0,0,.7);
}
.scn-shadow-love .lamp-light {
  position: absolute; top: 10%; right: 15%; width: 15px; height: 20px;
  background: radial-gradient(circle, #c09050 0%, #a06030 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(160,96,48,.25);
  animation: shl-lamp 4s ease-in-out infinite alternate;
}
.scn-shadow-love .peeping-figure {
  position: absolute; bottom: 27%; left: 5%; width: 40px; height: 80px;
  background: #0a0604;
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: -10px 0 30px rgba(0,0,0,.4);
  animation: shl-peep 6s ease-in-out infinite;
}
.scn-shadow-love .shadow-legs {
  position: absolute; bottom: 5%; left: 8%; width: 15px; height: 30px;
  background: #060302;
  border-radius: 30%;
  transform-origin: top center;
  animation: shl-legs 6s ease-in-out infinite;
}
@keyframes shl-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes shl-lamp { 0% { transform: scale(1) rotate(-3deg); opacity:.7 } 50% { transform: scale(1.15) rotate(2deg); opacity:1 } 100% { transform: scale(.9) rotate(-1deg); opacity:.6 } }
@keyframes shl-peep { 0% { transform: translateX(0) rotate(2deg) } 30% { transform: translateX(-8px) rotate(-1deg) } 60% { transform: translateX(-4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes shl-legs { 0% { transform: translateY(0) rotate(5deg) } 50% { transform: translateY(-6px) rotate(-5deg) } 100% { transform: translateY(0) rotate(3deg) } }

/* no-promise - calm dim interior, architectural elements */
.scn-no-promise {
  background: 
    linear-gradient(180deg, #2e2520 0%, #1f1814 50%, #12100e 100%),
    radial-gradient(ellipse at 50% 20%, #3a2e28 0%, transparent 80%);
}
.scn-no-promise .deep-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a302a 0%, #1e1814 100%);
  animation: npr-bg 20s ease-in-out infinite alternate;
}
.scn-no-promise .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(90deg, #1a1412 0px, #1a1412 12px, #241c18 12px, #241c18 24px);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.4);
  animation: npr-tiles 30s linear infinite;
}
.scn-no-promise .column-base {
  position: absolute; bottom: 20%; left: 45%; width: 10%; height: 8%;
  background: linear-gradient(180deg, #3a2e28 0%, #1e1814 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,.5);
}
.scn-no-promise .column-shaft {
  position: absolute; bottom: 28%; left: 46%; width: 8%; height: 55%;
  background: linear-gradient(90deg, #2a201c 0%, #3a302a 30%, #2a201c 70%, #1c1612 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3);
  animation: npr-shaft 12s ease-in-out infinite alternate;
}
.scn-no-promise .column-capital {
  position: absolute; bottom: 83%; left: 44%; width: 12%; height: 6%;
  background: linear-gradient(180deg, #3a302a 0%, #1e1814 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 -4px 15px rgba(0,0,0,.3);
}
.scn-no-promise .shadow-strip {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 8%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.3) 30%, rgba(0,0,0,.5) 50%, rgba(0,0,0,.3) 70%, transparent 100%);
  animation: npr-strip 15s ease-in-out infinite alternate;
}
@keyframes npr-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes npr-tiles { 0% { background-position: 0 0 } 100% { background-position: -24px 0 } }
@keyframes npr-shaft { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes npr-strip { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.3 } }

/* amiable-siege - tense dim interior, hand gesture and candle */
.scn-amiable-siege {
  background: 
    linear-gradient(180deg, #2a1c14 0%, #1a100a 50%, #0e0804 100%),
    radial-gradient(ellipse at 40% 60%, #3a2418 0%, transparent 80%);
}
.scn-amiable-siege .backdrop {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #382a20 0%, #1a100a 100%);
  animation: ams-bg 16s ease-in-out infinite alternate;
}
.scn-amiable-siege .table {
  position: absolute; bottom: 22%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #4a3426 0%, #2a1a10 100%);
  border-radius: 8px;
  box-shadow: 0 6px 20px rgba(0,0,0,.5);
}
.scn-amiable-siege .chair {
  position: absolute; bottom: 22%; right: 25%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #3a2418 0%, #1a0e06 100%);
  border-radius: 10% 10% 4% 4% / 20% 20% 4% 4%;
  box-shadow: 0 4px 15px rgba(0,0,0,.4);
  animation: ams-chair 8s ease-in-out infinite alternate;
}
.scn-amiable-siege .silhouette-hand {
  position: absolute; bottom: 38%; left: 38%; width: 20px; height: 30px;
  background: #0e0602;
  border-radius: 40% 20% 10% 30%;
  transform-origin: bottom center;
  box-shadow: 0 2px 10px rgba(0,0,0,.4);
  animation: ams-hand 5s ease-in-out infinite;
}
.scn-amiable-siege .silhouette-face {
  position: absolute; bottom: 44%; left: 35%; width: 22px; height: 30px;
  background: #0e0602;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ams-face 6s ease-in-out infinite;
}
.scn-amiable-siege .candle-flame {
  position: absolute; bottom: 30%; left: 55%; width: 8px; height: 12px;
  background: radial-gradient(circle, #f0c080 0%, #c08040 50%, transparent 100%);
  border-radius: 60% 60% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(192,128,64,.4), 0 0 40px 12px rgba(192,128,64,.2);
  animation: ams-flame 2s ease-in-out infinite alternate;
}
.scn-amiable-siege .candle-wax {
  position: absolute; bottom: 28%; left: 54.5%; width: 10px; height: 8px;
  background: linear-gradient(180deg, #d0b080 0%, #a08050 100%);
  border-radius: 4px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,.3);
  animation: ams-wax 4s ease-in-out infinite alternate;
}
@keyframes ams-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes ams-chair { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes ams-hand { 0% { transform: translate(0,0) rotate(-15deg) } 30% { transform: translate(4px,-2px) rotate(-5deg) } 60% { transform: translate(-2px,0) rotate(10deg) } 100% { transform: translate(0,0) rotate(-10deg) } }
@keyframes ams-face { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-4px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ams-flame { 0% { transform: scaleY(1) rotate(-2deg); opacity:.8 } 50% { transform: scaleY(1.3) rotate(3deg); opacity:1 } 100% { transform: scaleY(.9) rotate(-1deg); opacity:.7 } }
@keyframes ams-wax { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(1.1) } 100% { transform: translateY(1px) scaleY(.9) } }

.scn-quickly-watches-for-caius {
  background: linear-gradient(135deg, #1a1a2e 0%, #2c1e2e 50%, #0f0f1a 100%),
              radial-gradient(ellipse at 80% 40%, #3a2a2a 0%, transparent 60%);
}
.scn-quickly-watches-for-caius .wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, #1e1e28 0px, #1e1e28 20px, #14141a 20px, #14141a 40px);
  opacity: 0.3;
}
.scn-quickly-watches-for-caius .casement-frame {
  position: absolute; top: 20%; left: 10%; width: 50%; height: 55%;
  background: linear-gradient(135deg, #3a2a1a 0%, #241810 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}
.scn-quickly-watches-for-caius .window-pane {
  position: absolute; top: 22%; left: 13%; width: 44%; height: 50%;
  background: linear-gradient(135deg, #2a2a3e 0%, #1e1e2e 70%);
  border-radius: 2px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.08);
  animation: qwc-pane 10s ease-in-out infinite alternate;
}
.scn-quickly-watches-for-caius .figure-quickly {
  position: absolute; bottom: 20%; left: 8%; width: 24%; height: 55%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 60%, #0a0804 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: qwc-figure 3s ease-in-out infinite;
}
.scn-quickly-watches-for-caius .candle {
  position: absolute; bottom: 35%; left: 40%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #d6a060 0%, #8a6020 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-quickly-watches-for-caius .candle-glow {
  position: absolute; bottom: 50%; left: 38%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%);
  opacity: 0.5;
  animation: qwc-glow 2s ease-in-out infinite alternate;
}
.scn-quickly-watches-for-caius .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #0a0608 100%);
}
@keyframes qwc-pane { 0%,100% { opacity:0.7 } 50% { opacity:0.5 } }
@keyframes qwc-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(4%) translateY(-2%) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes qwc-glow { 0% { opacity:0.4; transform: scale(0.9) } 50% { opacity:0.6; transform: scale(1.1) } 100% { opacity:0.5; transform: scale(1) } }

.scn-quickly-praises-rugby {
  background: linear-gradient(180deg, #2e1e1a 0%, #3a2820 40%, #1e1410 100%),
              radial-gradient(ellipse at 50% 30%, #4a3020 0%, transparent 60%);
}
.scn-quickly-praises-rugby .hearth-bg {
  position: absolute; bottom: 0; left: 5%; width: 90%; height: 40%;
  background: linear-gradient(135deg, #2a1a14 0%, #1a0e0a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-quickly-praises-rugby .hearth-fire {
  position: absolute; bottom: 20%; left: 38%; width: 24%; height: 30%;
  background: radial-gradient(ellipse at 50% 80%, #ffb060 0%, #d06020 40%, #802010 70%);
  border-radius: 50% 50% 30% 30%;
  animation: qpr-fire 2s ease-in-out infinite alternate;
  box-shadow: 0 0 40px 20px rgba(255,176,96,0.3);
}
.scn-quickly-praises-rugby .figure-quickly-warm {
  position: absolute; bottom: 10%; left: 25%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 60%, #1a0e08 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 30% 30%;
  transform-origin: bottom center;
  animation: qpr-fig1 6s ease-in-out infinite;
}
.scn-quickly-praises-rugby .figure-rugby {
  position: absolute; bottom: 10%; left: 50%; width: 22%; height: 55%;
  background: linear-gradient(180deg, #3a2818 0%, #1a1008 60%, #0a0604 100%);
  border-radius: 30% 50% 30% 30% / 40% 60% 30% 30%;
  transform-origin: bottom center;
  animation: qpr-fig2 4s ease-in-out infinite;
}
.scn-quickly-praises-rugby .simple-silhouette {
  position: absolute; bottom: 10%; left: 65%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  opacity: 0.4;
  animation: qpr-simple 8s ease-in-out infinite;
}
.scn-quickly-praises-rugby .table {
  position: absolute; bottom: 8%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-quickly-praises-rugby .tankard {
  position: absolute; bottom: 16%; left: 47%; width: 6%; height: 10%;
  background: linear-gradient(135deg, #b08050 0%, #704020 100%);
  border-radius: 10% 10% 20% 20%;
  animation: qpr-tankard 3s ease-in-out infinite;
}
@keyframes qpr-fire { 0%,100% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.1) scaleX(0.95) } }
@keyframes qpr-fig1 { 0%,100% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(2%) rotate(-3deg) } }
@keyframes qpr-fig2 { 0%,100% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(-3%) rotate(1deg) } }
@keyframes qpr-simple { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2%) } }
@keyframes qpr-tankard { 0%,100% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-4%) rotate(5deg) } }

.scn-slender-description {
  background: linear-gradient(180deg, #1e2a1e 0%, #2a302a 40%, #141e14 100%),
              radial-gradient(ellipse at 50% 60%, #4a4a2a 0%, transparent 80%);
}
.scn-slender-description .tavern-wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, #1a1a12 0px, #1a1a12 20px, #12120a 20px, #12120a 40px);
  opacity: 0.3;
}
.scn-slender-description .figure-slender {
  position: absolute; bottom: 10%; left: 40%; width: 20%; height: 65%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 60%, #0a0604 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: sld-figure 2s ease-in-out infinite;
}
.scn-slender-description .feather-hat {
  position: absolute; top: 8%; left: 43%; width: 16%; height: 8%;
  background: linear-gradient(135deg, #c89860 0%, #a07040 100%);
  border-radius: 50% 50% 30% 30%;
  transform: rotate(-10deg);
  animation: sld-hat 3s ease-in-out infinite;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-slender-description .strutting-leg {
  position: absolute; bottom: 0; left: 43%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: top center;
  animation: sld-leg 1.6s ease-in-out infinite alternate;
}
.scn-slender-description .shadow-comic {
  position: absolute; bottom: 0; left: 35%; width: 30%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 80%);
  animation: sld-shadow 2s ease-in-out infinite;
}
.scn-slender-description .lamp {
  position: absolute; top: 15%; left: 70%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #b08040 0%, #705020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 4px #a06020;
}
.scn-slender-description .lamp-glow {
  position: absolute; top: 10%; left: 66%; width: 16%; height: 20%;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 30%, transparent 70%);
  opacity: 0.4;
  animation: sld-glow 4s ease-in-out infinite alternate;
}
@keyframes sld-figure { 0%,100% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(8%) rotate(-3deg) } }
@keyframes sld-hat { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-5%) } }
@keyframes sld-leg { 0% { transform: rotate(-15deg) translateX(0) } 100% { transform: rotate(15deg) translateX(10%) } }
@keyframes sld-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } }
@keyframes sld-glow { 0% { opacity:0.3; transform: scale(0.9) } 50% { opacity:0.5; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(1) } }

.scn-caius-returns {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a141e 50%, #0a0a10 100%),
              radial-gradient(ellipse at 80% 70%, #2a1a2a 0%, transparent 60%);
}
.scn-caius-returns .dark-wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, #12121a 0px, #12121a 30px, #0a0a10 30px, #0a0a10 60px);
  opacity: 0.4;
}
.scn-caius-returns .door {
  position: absolute; right: 10%; top: 15%; width: 25%; height: 70%;
  background: linear-gradient(135deg, #2a1a14 0%, #1a0e0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7);
  animation: car-door 6s ease-in-out infinite;
}
.scn-caius-returns .figure-caius {
  position: absolute; bottom: 10%; right: 15%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #1a0e0a 0%, #0a0604 60%, #050302 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: car-caius 2s ease-in-out infinite;
}
.scn-caius-returns .figure-quickly-scared {
  position: absolute; bottom: 10%; left: 20%; width: 20%; height: 55%;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 60%, #0a0604 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: car-quickly 3s ease-in-out infinite;
}
.scn-caius-returns .closet {
  position: absolute; left: 5%; bottom: 5%; width: 20%; height: 60%;
  background: linear-gradient(135deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
}
.scn-caius-returns .closet-door {
  position: absolute; left: 5%; bottom: 5%; width: 10%; height: 60%;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  border-left: 2px solid #3a2a1a;
  animation: car-closet 4s ease-in-out infinite;
}
.scn-caius-returns .candle-flicker {
  position: absolute; top: 20%; left: 48%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #b08040 0%, #705020 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-caius-returns .key {
  position: absolute; right: 12%; bottom: 35%; width: 3%; height: 8%;
  background: linear-gradient(180deg, #c09860 0%, #906840 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(10deg);
  animation: car-key 1.5s ease-in-out infinite;
}
@keyframes car-door { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-5%) } }
@keyframes car-caius { 0%,100% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-4%) rotate(-3deg) } }
@keyframes car-quickly { 0%,100% { transform: translateX(0) translateY(0) } 50% { transform: translateX(3%) translateY(-2%) } }
@keyframes car-closet { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-5deg) } }
@keyframes car-key { 0%,100% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(20deg) translateY(-5%) } }

.scn-quick-scheme { background: linear-gradient(135deg, #f5e6c8 0%, #e8d5a8 30%, #d4b88c 60%, #c4a070 100%), radial-gradient(ellipse at 70% 40%, #ffe8b8 0%, transparent 60%); }
.scn-quick-scheme .w-left    { position:absolute; top:0; left:0; width:25%; height:100%; background: linear-gradient(180deg, #d4b88c 0%, #b89860 100%); border-right:4px solid #8a6a3a; box-shadow: inset -8px 0 12px rgba(0,0,0,.15); }
.scn-quick-scheme .w-right   { position:absolute; top:0; right:0; width:25%; height:100%; background: linear-gradient(180deg, #d4b88c 0%, #b89860 100%); border-left:4px solid #8a6a3a; box-shadow: inset 8px 0 12px rgba(0,0,0,.15); }
.scn-quick-scheme .floor     { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-top:6px solid #4a2a0a; }
.scn-quick-scheme .table     { position:absolute; bottom:28%; left:50%; width:120px; height:16px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%); border-radius:8px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-quick-scheme .mug-a     { position:absolute; bottom:34%; left:43%; width:18px; height:24px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius:4px 4px 6px 6px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: qs-mug 3s ease-in-out infinite; }
.scn-quick-scheme .mug-b     { position:absolute; bottom:34%; right:43%; width:18px; height:24px; background: linear-gradient(180deg, #b87878 0%, #8a5a5a 100%); border-radius:4px 4px 6px 6px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: qs-mug 3s ease-in-out infinite 1.5s; }
.scn-quick-scheme .hand-a    { position:absolute; bottom:30%; left:38%; width:22px; height:18px; background: linear-gradient(180deg, #e8c8a0 0%, #d4a880 100%); border-radius:50% 50% 40% 40%; transform-origin: 50% 100%; animation: qs-hand 2s ease-in-out infinite alternate; }
.scn-quick-scheme .hand-b    { position:absolute; bottom:30%; right:38%; width:22px; height:18px; background: linear-gradient(180deg, #e8c8a0 0%, #d4a880 100%); border-radius:50% 50% 40% 40%; transform-origin: 50% 100%; animation: qs-hand 2s ease-in-out infinite alternate-reverse; }
.scn-quick-scheme .coin      { position:absolute; bottom:32%; left:50%; width:10px; height:10px; background: radial-gradient(circle, #f0d060 0%, #c8a830 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: qs-coin 1.5s ease-in-out infinite; }
@keyframes qs-mug   { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(5deg) } }
@keyframes qs-hand  { 0% { transform: translateX(0) rotate(-5deg) } 100% { transform: translateX(8px) rotate(5deg) } }
@keyframes qs-coin  { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0) } 50% { transform: translateX(-50%) translateY(-6px) rotate(180deg) } }

.scn-garter-inn-falstaff { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 20%, #1e1e30 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 30%, #2a2a3e 0%, transparent 70%); }
.scn-garter-inn-falstaff .bg-shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 40%, rgba(40,20,10,.6) 0%, transparent 60%); animation: gi-shadow 12s ease-in-out infinite alternate; }
.scn-garter-inn-falstaff .bed       { position:absolute; bottom:10%; left:15%; width:60%; height:40%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:12px 12px 8px 8px; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5); }
.scn-garter-inn-falstaff .candle    { position:absolute; bottom:30%; right:25%; width:8px; height:24px; background: linear-gradient(180deg, #e8d8a0 0%, #b8a070 100%); border-radius:2px; box-shadow: 0 0 6px rgba(200,160,80,.3); }
.scn-garter-inn-falstaff .flame     { position:absolute; bottom:52%; right:25.5%; width:10px; height:16px; background: radial-gradient(circle, #ffe8a0 0%, #ff8040 50%, #c04020 100%); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 24px 8px #ff8040, 0 0 48px 16px rgba(255,128,64,.4); animation: gi-flame 1.5s ease-in-out infinite alternate; }
.scn-garter-inn-falstaff .bottle    { position:absolute; bottom:15%; left:20%; width:14px; height:28px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius:4px 4px 6px 6px; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-garter-inn-falstaff .figure-fal{ position:absolute; bottom:30%; left:30%; width:50px; height:60px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: gi-fal 4s ease-in-out infinite; }
.scn-garter-inn-falstaff .figure-bar{ position:absolute; bottom:30%; left:55%; width:22px; height:44px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gi-bar 3s ease-in-out infinite; }
.scn-garter-inn-falstaff .smoke-a   { position:absolute; top:20%; right:30%; width:30px; height:20px; background: radial-gradient(ellipse, rgba(200,180,160,.3) 0%, transparent 70%); filter: blur(4px); animation: gi-smoke 12s linear infinite; }
.scn-garter-inn-falstaff .smoke-b   { position:absolute; top:24%; right:26%; width:24px; height:16px; background: radial-gradient(ellipse, rgba(200,180,160,.2) 0%, transparent 70%); filter: blur(4px); animation: gi-smoke 15s linear infinite 5s; }
@keyframes gi-shadow { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes gi-flame  { 0% { transform: scaleY(1) rotate(0); opacity:.9 } 50% { transform: scaleY(1.1) rotate(2deg); opacity:1 } 100% { transform: scaleY(.95) rotate(-2deg); opacity:.85 } }
@keyframes gi-fal    { 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) } }
@keyframes gi-bar    { 0%,100% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-2px) translateY(-2px) } }
@keyframes gi-smoke  { 0% { transform: translateY(0) scale(1); opacity:.5 } 50% { transform: translateY(-20px) scale(1.5); opacity:.3 } 100% { transform: translateY(-40px) scale(2); opacity:0 } }

.scn-quickly-falstaff-plot { background: linear-gradient(180deg, #1e1e2e 0%, #2a2030 30%, #1a1a2a 60%, #0e0e1e 100%), radial-gradient(ellipse at 30% 50%, #2a2030 0%, transparent 60%); }
.scn-quickly-falstaff-plot .wall-dark    { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 30%, #2a1a2a 0%, transparent 70%); }
.scn-quickly-falstaff-plot .arch         { position:absolute; top:0; left:25%; width:50%; height:100%; background: linear-gradient(180deg, #3a2a3a 0%, transparent 80%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.5); }
.scn-quickly-falstaff-plot .chair-a      { position:absolute; bottom:20%; left:25%; width:30px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:8px 8px 4px 4px; box-shadow: 0 4px 6px rgba(0,0,0,.4); }
.scn-quickly-falstaff-plot .chair-b      { position:absolute; bottom:20%; right:25%; width:30px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:8px 8px 4px 4px; box-shadow: 0 4px 6px rgba(0,0,0,.4); }
.scn-quickly-falstaff-plot .jug          { position:absolute; bottom:25%; left:50%; width:16px; height:22px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius:4px 4px 8px 8px; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.scn-quickly-falstaff-plot .figure-q     { position:absolute; bottom:24%; left:30%; width:20px; height:48px; background: linear-gradient(180deg, #c8786a 0%, #a0584a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qfp-figq 4s ease-in-out infinite; }
.scn-quickly-falstaff-plot .figure-f2    { position:absolute; bottom:20%; right:28%; width:50px; height:55px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qfp-figf 5s ease-in-out infinite; }
.scn-quickly-falstaff-plot .whisper-lines{ position:absolute; top:40%; left:42%; width:30px; height:4px; background: radial-gradient(ellipse, rgba(200,180,160,.4) 0%, transparent 70%); border-radius:50%; filter: blur(2px); animation: qfp-whisper 2s ease-in-out infinite alternate; }
@keyframes qfp-figq  { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(3deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-2px) rotate(2deg) } }
@keyframes qfp-figf  { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(-3px) translateY(-2px) rotate(1deg) } }
@keyframes qfp-whisper { 0% { transform: scaleX(.5); opacity:.3 } 50% { transform: scaleX(1.2); opacity:.6 } 100% { transform: scaleX(.7); opacity:.4 } }

.scn-ford-brook-conference { background: linear-gradient(180deg, #1a1a2e 0%, #242038 30%, #1a1a30 60%, #0e0e1e 100%), radial-gradient(ellipse at 40% 30%, #242038 0%, transparent 70%); }
.scn-ford-brook-conference .bg-panel    { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 20%, rgba(40,30,50,.5) 0%, transparent 70%); }
.scn-ford-brook-conference .desk        { position:absolute; bottom:15%; left:10%; width:40%; height:8px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-ford-brook-conference .lamp        { position:absolute; bottom:40%; left:25%; width:8px; height:20px; background: linear-gradient(180deg, #d4b060 0%, #a08840 100%); border-radius:2px; box-shadow: 0 0 8px rgba(180,140,60,.3); }
.scn-ford-brook-conference .lamp-glow   { position:absolute; bottom:38%; left:24.5%; width:30px; height:30px; background: radial-gradient(circle, rgba(200,160,60,.3) 0%, transparent 70%); border-radius:50%; filter: blur(6px); animation: fb-glow 4s ease-in-out infinite alternate; }
.scn-ford-brook-conference .figure-f3   { position:absolute; bottom:20%; left:20%; width:45px; height:55px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: fb-figf 5s ease-in-out infinite; }
.scn-ford-brook-conference .figure-brook{ position:absolute; bottom:22%; left:40%; width:22px; height:46px; background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fb-figb 4s ease-in-out infinite 0.5s; }
.scn-ford-brook-conference .letter      { position:absolute; bottom:28%; left:32%; width:16px; height:20px; background: linear-gradient(180deg, #e8d8a0 0%, #c8b880 100%); border-radius:2px; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: fb-letter 8s ease-in-out infinite; }
@keyframes fb-glow  { 0% { opacity:.5; transform: scale(.95) } 50% { opacity:.8; transform: scale(1.05) } 100% { opacity:.6; transform: scale(1) } }
@keyframes fb-figf  { 0%,100% { transform: translateX(0) rotate(0) } 30% { transform: translateX(2px) rotate(1deg) } 60% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes fb-figb  { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(2deg) } }
@keyframes fb-letter { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-3px) } }

.scn-anne-page-farm {
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #FFF5EE 70%, #F0E68C 100%),
              radial-gradient(ellipse at 70% 20%, #FFD700 0%, transparent 50%);
}
.scn-anne-page-farm .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 70%, transparent 100%);
  animation: apf-sky 10s ease-in-out infinite alternate;
}
.scn-anne-page-farm .sun {
  position: absolute; top: 12%; left: 70%; width: 80px; height: 80px;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,215,0,0.5);
  animation: apf-sun 6s ease-in-out infinite alternate;
}
.scn-anne-page-farm .fields {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #90EE90 0%, #228B22 60%, #006400 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  animation: apf-fields 18s ease-in-out infinite alternate;
}
.scn-anne-page-farm .barn {
  position: absolute; bottom: 28%; left: 30%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #CD853F 0%, #8B4513 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 6px 6px 12px rgba(0,0,0,0.3);
}
.scn-anne-page-farm .barn::before {
  content: ''; position: absolute; top: -20px; left: 50%; transform: translateX(-50%);
  width: 0; height: 0; border-left: 60px solid transparent; border-right: 60px solid transparent;
  border-bottom: 40px solid #A0522D;
}
.scn-anne-page-farm .fence {
  position: absolute; bottom: 30%; left: 50%; width: 80%; height: 8px;
  background: #deb887; border-radius: 4px;
  box-shadow: 0 -20px 0 #deb887, 0 -40px 0 #deb887;
}
.scn-anne-page-farm .figure {
  position: absolute; bottom: 28%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #FFB6C1 0%, #C71585 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: apf-figure 4s ease-in-out infinite;
}
.scn-anne-page-farm .cloud-a {
  position: absolute; top: 8%; left: 10%; width: 100px; height: 30px;
  background: rgba(255,255,255,0.8); border-radius: 50%;
  filter: blur(8px); animation: apf-cloud-a 40s linear infinite;
}
.scn-anne-page-farm .cloud-b {
  position: absolute; top: 16%; right: 5%; width: 70px; height: 25px;
  background: rgba(255,255,255,0.6); border-radius: 50%;
  filter: blur(6px); animation: apf-cloud-b 50s linear infinite reverse;
}
@keyframes apf-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes apf-sun { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.02); } 100% { transform: translateY(2px) scale(0.98); } }
@keyframes apf-fields { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(0.98); } 100% { transform: translateY(0) scaleX(1.02); } }
@keyframes apf-figure { 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 apf-cloud-a { 0% { transform: translateX(-80px); } 100% { transform: translateX(110vw); } }
@keyframes apf-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-90vw); } }

.scn-frogmore-field {
  background: linear-gradient(180deg, #B0C4DE 0%, #D3D3D3 40%, #9ACD32 70%, #556B2F 100%),
              radial-gradient(ellipse at 50% 80%, #9ACD32 0%, transparent 60%);
}
.scn-frogmore-field .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #B0C4DE 0%, #C0C0C0 60%, transparent 100%);
  animation: fmf-sky 15s ease-in-out infinite alternate;
}
.scn-frogmore-field .ground {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #9ACD32 0%, #556B2F 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-frogmore-field .stile {
  position: absolute; bottom: 30%; left: 40%; width: 30px; height: 50px;
  background: #8B4513; border-radius: 10%; box-shadow: 0 10px 0 #8B4513, 0 20px 0 #8B4513;
}
.scn-frogmore-field .figure-shallow {
  position: absolute; bottom: 28%; left: 20%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #2F4F4F 0%, #696969 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: fmf-walk 6s ease-in-out infinite alternate;
}
.scn-frogmore-field .figure-sir-hugh {
  position: absolute; bottom: 28%; left: 55%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #4B0082 0%, #800080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: fmf-walk 6s ease-in-out infinite alternate-reverse;
}
.scn-frogmore-field .cloud-c {
  position: absolute; top: 12%; left: 25%; width: 90px; height: 24px;
  background: rgba(255,255,255,0.5); border-radius: 50%; filter: blur(5px);
  animation: fmf-cloud-c 35s linear infinite;
}
.scn-frogmore-field .cloud-d {
  position: absolute; top: 20%; right: 15%; width: 70px; height: 18px;
  background: rgba(255,255,255,0.4); border-radius: 50%; filter: blur(4px);
  animation: fmf-cloud-d 45s linear infinite reverse;
}
.scn-frogmore-field .grass-blade {
  position: absolute; bottom: 26%; left: 60%; width: 4px; height: 30px;
  background: #228B22; border-radius: 50% 50% 0 0;
  transform-origin: bottom; animation: fmf-grass 3s ease-in-out infinite;
  box-shadow: -10px 0 0 #228B22, 10px 0 0 #228B22;
}
@keyframes fmf-sky { 0% { opacity: 0.9; } 50% { opacity: 0.7; } 100% { opacity: 1; } }
@keyframes fmf-walk { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(15px) rotate(3deg); } 100% { transform: translateX(30px) rotate(-2deg); } }
@keyframes fmf-cloud-c { 0% { transform: translateX(-60px); } 100% { transform: translateX(120vw); } }
@keyframes fmf-cloud-d { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes fmf-grass { 0% { transform: rotate(0); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-4deg); } }

.scn-evans-sings {
  background: linear-gradient(180deg, #708090 0%, #808080 30%, #A9A9A9 60%, #696969 100%),
              radial-gradient(ellipse at 50% 90%, #696969 0%, transparent 70%);
}
.scn-evans-sings .sky-overcast {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #A0A0A0 0%, #C0C0C0 50%, transparent 100%);
  animation: es-sky 12s ease-in-out infinite alternate;
}
.scn-evans-sings .ground {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #6B8E23 0%, #2F4F4F 100%);
  border-radius: 20% 80% 0 0 / 30% 50% 0 0;
}
.scn-evans-sings .evans-figure {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 24px; height: 46px;
  background: linear-gradient(180deg, #483D8B 0%, #191970 100%);
  border-radius: 45% 55% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: es-sway 4s ease-in-out infinite;
}
.scn-evans-sings .hat {
  position: absolute; bottom: 62%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 10px; background: #2F4F4F; border-radius: 50%;
  box-shadow: 0 8px 0 #2F4F4F;
  animation: es-hat 4s ease-in-out infinite;
}
.scn-evans-sings .notes {
  position: absolute; width: 12px; height: 12px;
  background: radial-gradient(circle, #FFD700 0%, transparent 70%);
  border-radius: 50%; animation: es-notes 6s ease-in-out infinite;
}
.scn-evans-sings .note-1 { top: 10%; left: 20%; animation-delay: 0s; }
.scn-evans-sings .note-2 { top: 6%; left: 35%; animation-delay: 1.5s; width: 10px; height: 10px; }
.scn-evans-sings .note-3 { top: 14%; left: 50%; animation-delay: 3s; width: 14px; height: 14px; }
.scn-evans-sings .cloud-e {
  position: absolute; top: 10%; right: 10%; width: 80px; height: 20px;
  background: rgba(255,255,255,0.3); border-radius: 50%; filter: blur(6px);
  animation: es-cloud-e 40s linear infinite;
}
@keyframes es-sky { 0% { opacity: 0.8; } 50% { opacity: 0.5; } 100% { opacity: 0.9; } }
@keyframes es-sway { 0% { transform: translateX(-50%) rotate(-4deg); } 50% { transform: translateX(-50%) rotate(4deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes es-hat { 0% { transform: translateX(-50%) rotate(-6deg); } 50% { transform: translateX(-50%) rotate(6deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes es-notes { 0% { transform: translateY(0) scale(0.8); opacity: 0; } 20% { opacity: 1; } 80% { opacity: 1; } 100% { transform: translateY(-40px) scale(1.2); opacity: 0; } }
@keyframes es-cloud-e { 0% { transform: translateX(0); } 100% { transform: translateX(-90vw); } }

.scn-evans-welcomes-caius {
  background: linear-gradient(180deg, #778899 0%, #B0C4DE 30%, #A9A9A9 60%, #696969 100%),
              radial-gradient(ellipse at 50% 80%, #A9A9A9 0%, transparent 60%);
}
.scn-evans-welcomes-caius .sky-overcast {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #B0C4DE 0%, #C0C0C0 60%, transparent 100%);
  animation: ewc-sky 14s ease-in-out infinite alternate;
}
.scn-evans-welcomes-caius .ground {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #6B8E23 0%, #2F4F4F 100%);
  border-radius: 30% 70% 0 0 / 40% 50% 0 0;
}
.scn-evans-welcomes-caius .stile {
  position: absolute; bottom: 30%; left: 40%; width: 30px; height: 45px;
  background: #8B4513; border-radius: 10%;
  box-shadow: 0 8px 0 #8B4513, 0 16px 0 #8B4513;
}
.scn-evans-welcomes-caius .figure-caius {
  position: absolute; bottom: 28%; left: 25%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #800000 0%, #5B0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: ewc-caius 6s ease-in-out infinite alternate;
}
.scn-evans-welcomes-caius .figure-evans-welcome {
  position: absolute; bottom: 28%; left: 55%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #483D8B 0%, #191970 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: ewc-evans 6s ease-in-out infinite alternate-reverse;
}
.scn-evans-welcomes-caius .arm-waving {
  position: absolute; bottom: 60%; left: 58%; width: 16px; height: 30px;
  background: #483D8B; border-radius: 50% 50% 0 0;
  transform-origin: bottom left;
  animation: ewc-wave 2s ease-in-out infinite;
}
.scn-evans-welcomes-caius .cloud-f {
  position: absolute; top: 10%; left: 15%; width: 90px; height: 22px;
  background: rgba(255,255,255,0.4); border-radius: 50%; filter: blur(5px);
  animation: ewc-cloud-f 38s linear infinite;
}
.scn-evans-welcomes-caius .cloud-g {
  position: absolute; top: 18%; right: 20%; width: 70px; height: 18px;
  background: rgba(255,255,255,0.3); border-radius: 50%; filter: blur(4px);
  animation: ewc-cloud-g 42s linear infinite reverse;
}
@keyframes ewc-sky { 0% { opacity: 0.9; } 50% { opacity: 0.7; } 100% { opacity: 0.8; } }
@keyframes ewc-caius { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(18px) rotate(2deg); } 100% { transform: translateX(36px) rotate(-1deg); } }
@keyframes ewc-evans { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-15px) rotate(-2deg); } 100% { transform: translateX(-30px) rotate(0); } }
@keyframes ewc-wave { 0% { transform: rotate(-20deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(-20deg); } }
@keyframes ewc-cloud-f { 0% { transform: translateX(-70px); } 100% { transform: translateX(110vw); } }
@keyframes ewc-cloud-g { 0% { transform: translateX(0); } 100% { transform: translateX(-80vw); } }

/* garter-inn-comedy */
.scn-garter-inn-comedy {
  background: 
    linear-gradient(180deg, #2a1e14 0%, #3a2a1a 30%, #2a1e14 60%, #1a120a 100%),
    radial-gradient(ellipse at 30% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-garter-inn-comedy .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); }
.scn-garter-inn-comedy .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,.6); }
.scn-garter-inn-comedy .table { position:absolute; bottom:30%; left:20%; width:40%; height:8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 6px; box-shadow: 0 8px 16px rgba(0,0,0,.5); }
.scn-garter-inn-comedy .tankard { position:absolute; bottom:35%; left:35%; width:10%; height:12%; background: radial-gradient(ellipse at 50% 30%, #8a7a5a 0%, #5a4a3a 100%); border-radius: 40% 40% 10% 10%; }
.scn-garter-inn-comedy .figure-fat { position:absolute; bottom:32%; left:50%; width:30%; height:50%; background: radial-gradient(ellipse at 50% 60%, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gac-wobble 1.5s ease-in-out infinite; }
.scn-garter-inn-comedy .arm-comedy { position:absolute; bottom:50%; left:60%; width:12%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 10% 10%; transform-origin: top left; animation: gac-jest 2s ease-in-out infinite; }
.scn-garter-inn-comedy .candle-glow { position:absolute; bottom:50%; left:25%; width:8%; height:8%; background: radial-gradient(circle, #f0c060 0%, #c08030 50%, transparent 100%); border-radius: 50%; animation: gac-flicker 1.6s ease-in-out infinite alternate; box-shadow: 0 0 50px 20px rgba(240,192,96,0.3); }
.scn-garter-inn-comedy .shadow-move { position:absolute; bottom:30%; left:45%; width:25%; height:4%; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(6px); animation: gac-shadow 1.5s ease-in-out infinite; }

@keyframes gac-wobble { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02) translateY(-2px); } 100% { transform: rotate(-2deg) scale(1); } }
@keyframes gac-jest { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(30deg) translateX(5px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes gac-flicker { 0% { opacity: 0.7; transform: scale(0.9); } 100% { opacity: 1; transform: scale(1.1); } }
@keyframes gac-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5px) scaleX(1.2); } 100% { transform: translateX(0) scaleX(1); } }

/* fenton-host-arrangement */
.scn-fenton-host-arrangement {
  background: 
    linear-gradient(180deg, #1e1e2e 0%, #2a2a3a 40%, #1e1e2e 100%),
    radial-gradient(ellipse at 70% 90%, #3a3a4a 0%, transparent 60%);
}
.scn-fenton-host-arrangement .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-fenton-host-arrangement .window-light { position:absolute; top:20%; right:10%; width:25%; height:30%; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,120,0.3) 0%, transparent 100%); border: 2px solid #4a4a5a; border-radius: 4px; animation: fha-window 8s ease-in-out infinite alternate; }
.scn-fenton-host-arrangement .table-small { position:absolute; bottom:25%; left:40%; width:20%; height:6%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-fenton-host-arrangement .figure-left { position:absolute; bottom:27%; left:25%; width:15%; height:45%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: fha-bow 6s ease-in-out infinite; }
.scn-fenton-host-arrangement .figure-right { position:absolute; bottom:27%; right:25%; width:15%; height:45%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: fha-listen 6s ease-in-out infinite 3s; }
.scn-fenton-host-arrangement .coin-pile { position:absolute; bottom:28%; left:48%; width:8%; height:4%; background: radial-gradient(ellipse at 50% 50%, #c8a050 0%, #8a7a3a 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.scn-fenton-host-arrangement .candle-dim { position:absolute; bottom:45%; left:45%; width:4%; height:10%; background: linear-gradient(180deg, #c8a050 0%, #6a4a1a 100%); border-radius: 2px; box-shadow: 0 0 20px 8px rgba(200,160,80,0.2); animation: fha-candle 3s ease-in-out infinite alternate; }

@keyframes fha-window { 0% { opacity:0.3; } 100% { opacity:0.6; } }
@keyframes fha-bow { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes fha-listen { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes fha-candle { 0% { transform: scaleY(1); opacity:0.8; } 100% { transform: scaleY(1.1); opacity:1; } }

/* garter-inn-falstaff-prepares */
.scn-garter-inn-falstaff-prepares {
  background: 
    linear-gradient(180deg, #2a1e14 0%, #3a2a1a 30%, #2a1e14 60%, #1a120a 100%),
    radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 80%);
}
.scn-garter-inn-falstaff-prepares .room-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); }
.scn-garter-inn-falstaff-prepares .wardrobe { position:absolute; bottom:25%; left:10%; width:20%; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; }
.scn-garter-inn-falstaff-prepares .mirror { position:absolute; bottom:35%; left:55%; width:18%; height:35%; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,0.15) 0%, rgba(200,180,160,0.05) 100%); border: 2px solid #6a5a4a; border-radius: 50%; }
.scn-garter-inn-falstaff-prepares .falstaff-body { position:absolute; bottom:25%; left:40%; width:25%; height:50%; background: radial-gradient(ellipse at 50% 60%, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: gfp-belly 2s ease-in-out infinite; }
.scn-garter-inn-falstaff-prepares .falstaff-head { position:absolute; bottom:65%; left:45%; width:14%; height:16%; background: radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50%; }
.scn-garter-inn-falstaff-prepares .helmet { position:absolute; bottom:78%; left:46%; width:12%; height:10%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 40% 40% 10% 10%; transform: rotate(10deg); animation: gfp-helmet 1.5s ease-in-out infinite alternate; }
.scn-garter-inn-falstaff-prepares .sword { position:absolute; bottom:30%; right:25%; width:5%; height:40%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 2px; transform-origin: bottom center; animation: gfp-sword 2s ease-in-out infinite; }
.scn-garter-inn-falstaff-prepares .cape-swish { position:absolute; bottom:30%; left:35%; width:30%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 0 50% 50% 0 / 0 60% 40% 0; transform-origin: top left; animation: gfp-cape 2s ease-in-out infinite; }
.scn-garter-inn-falstaff-prepares .candle-flicker { position:absolute; bottom:50%; left:30%; width:6%; height:8%; background: radial-gradient(circle, #f0c060 0%, #c08030 50%, transparent 100%); border-radius: 50%; animation: gac-flicker 1.8s ease-in-out infinite alternate; box-shadow: 0 0 40px 15px rgba(240,192,96,0.3); }

@keyframes gfp-belly { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.05) translateY(-2px); } }
@keyframes gfp-helmet { 0% { transform: rotate(5deg) translateX(0); } 100% { transform: rotate(15deg) translateX(2px); } }
@keyframes gfp-sword { 0% { transform: rotate(-5deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }
@keyframes gfp-cape { 0% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(5deg) scaleX(1.02); } 100% { transform: rotate(-5deg) scaleX(1); } }

/* windsor-park-couch */
.scn-windsor-park-couch {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 30%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 20%, #2a2a3e 0%, transparent 60%);
}
.scn-windsor-park-couch .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%); }
.scn-windsor-park-couch .stars { position:absolute; top:5%; left:0; right:0; bottom:50%; background: radial-gradient(2px 2px at 20% 10%, #ffffff 0%, transparent 100%), radial-gradient(2px 2px at 50% 30%, #ffffff 0%, transparent 100%), radial-gradient(1px 1px at 70% 15%, #ffffff 0%, transparent 100%), radial-gradient(1px 1px at 30% 40%, #ffffff 0%, transparent 100%), radial-gradient(2px 2px at 80% 50%, #ffffff 0%, transparent 100%); animation: wpc-twinkle 4s ease-in-out infinite alternate; }
.scn-windsor-park-couch .moon-glow { position:absolute; top:10%; left:70%; width:20%; height:20%; background: radial-gradient(circle, rgba(200,200,220,0.1) 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 80px 40px rgba(200,200,220,0.05); }
.scn-windsor-park-couch .grass { position:absolute; bottom:35%; left:0; right:0; height:10%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 20% 20% 0 0 / 60% 60% 0 0; }
.scn-windsor-park-couch .couch-back { position:absolute; bottom:30%; left:30%; width:40%; height:20%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,0.6); }
.scn-windsor-park-couch .couch-seat { position:absolute; bottom:18%; left:28%; width:44%; height:12%; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 6% 6% 4% 4%; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); }
.scn-windsor-park-couch .figure-reclining { position:absolute; bottom:20%; left:35%; width:30%; height:25%; background: radial-gradient(ellipse at 50% 50%, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 50% 40% 40%; animation: wpc-breathe 6s ease-in-out infinite; }
.scn-windsor-park-couch .shadow-long { position:absolute; bottom:18%; left:25%; width:50%; height:6%; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(8px); animation: wpc-shadow 8s ease-in-out infinite alternate; }

@keyframes wpc-twinkle { 0% { opacity:0.5; } 100% { opacity:1; } }
@keyframes wpc-breathe { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1); } }
@keyframes wpc-shadow { 0% { transform: scaleX(1) translateX(0); } 100% { transform: scaleX(1.2) translateX(10px); } }

/* spend-money-woo – tense dim interior */
.scn-spend-money-woo {
  background:
    linear-gradient(180deg, #2a1f1a 0%, #1a1410 50%, #0f0b08 100%),
    radial-gradient(ellipse at 50% 60%, #1e1612 0%, transparent 70%);
}
.scn-spend-money-woo .wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(90deg, #2a1f1a 0%, #3a2a22 50%, #2a1f1a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
}
.scn-spend-money-woo .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.7);
}
.scn-spend-money-woo .table {
  position:absolute; bottom:22%; left:30%; width:40%; height:8%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e14 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-spend-money-woo .money-bag {
  position:absolute; bottom:28%; left:45%; width:8%; height:10%;
  background: radial-gradient(ellipse at 50% 30%, #8a6a4a 0%, #5a3e2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: smw-jiggle 4s ease-in-out infinite;
}
.scn-spend-money-woo .coins {
  position:absolute; bottom:27%; left:52%; width:20%; height:5%;
  background: radial-gradient(circle, #b89850 0%, #8a6e30 70%);
  border-radius: 50%;
  filter: blur(1px);
  animation: smw-sparkle 2s ease-in-out infinite;
}
.scn-spend-money-woo .candle {
  position:absolute; bottom:30%; left:35%; width:3%; height:18%;
  background: linear-gradient(180deg, #d4a050 0%, #8a6e3a 50%, #4a3a1a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 20px 6px rgba(200,160,80,.4);
  animation: smw-flicker 1.5s ease-in-out infinite;
}
.scn-spend-money-woo .figure-seated {
  position:absolute; bottom:25%; left:55%; width:18%; height:40%;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a100e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: smw-breathe 6s ease-in-out infinite;
}
.scn-spend-money-woo .hand-counting {
  position:absolute; bottom:30%; left:52%; width:8%; height:6%;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1a14 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 4px rgba(0,0,0,.6);
  animation: smw-count 2.4s ease-in-out infinite;
}
@keyframes smw-jiggle { 0% { transform: translate(0,0) rotate(0); } 50% { transform: translate(2px,-2px) rotate(3deg); } 100% { transform: translate(0,0) rotate(0); } }
@keyframes smw-sparkle { 0% { opacity:.6; filter: blur(0.5px); } 50% { opacity:1; filter: blur(0); } 100% { opacity:.6; filter: blur(0.5px); } }
@keyframes smw-flicker { 0% { opacity:.8; transform: scaleY(1); } 25% { opacity:1; transform: scaleY(1.02); } 75% { opacity:.9; transform: scaleY(0.98); } 100% { opacity:.8; transform: scaleY(1); } }
@keyframes smw-breathe { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes smw-count { 0% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-4px) rotate(-5deg); } 66% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }

/* drive-her-purity – tense dim interior */
.scn-drive-her-purity {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #12101e 50%, #0a0a12 100%),
    radial-gradient(ellipse at 50% 40%, #18162a 0%, transparent 60%);
}
.scn-drive-her-purity .wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(90deg, #1a1828 0%, #2a2640 30%, #1a1828 70%, #2a2640 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
}
.scn-drive-her-purity .window {
  position:absolute; top:15%; left:35%; width:30%; height:25%;
  background: radial-gradient(ellipse, #4a4a6a 0%, #2a2a4a 100%);
  border: 4px solid #1a1a2a;
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8);
  animation: dhp-window 8s ease-in-out infinite;
}
.scn-drive-her-purity .figure-ford {
  position:absolute; bottom:20%; left:30%; width:20%; height:35%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dhp-pace 5s ease-in-out infinite;
}
.scn-drive-her-purity .figure-lady {
  position:absolute; bottom:20%; left:55%; width:16%; height:40%;
  background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px rgba(0,0,0,.5);
  animation: dhp-stand 6s ease-in-out infinite;
}
.scn-drive-her-purity .candle-desk {
  position:absolute; bottom:27%; left:45%; width:2%; height:12%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px rgba(150,130,90,.6);
  animation: dhp-candle 2s ease-in-out infinite;
}
.scn-drive-her-purity .letter {
  position:absolute; bottom:25%; left:48%; width:10%; height:6%;
  background: #d0b090;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: dhp-letter 4s ease-in-out infinite;
}
.scn-drive-her-purity .shadow-door {
  position:absolute; bottom:0; right:10%; width:12%; height:50%;
  background: linear-gradient(180deg, #0a0a12 0%, #1a162a 100%);
  border-radius: 4px 4px 0 0;
  filter: blur(2px);
}
@keyframes dhp-window { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.6; } }
@keyframes dhp-pace { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(8px) rotate(2deg); } 75% { transform: translateX(-8px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes dhp-stand { 0% { transform: translateY(0); opacity:.9; } 50% { transform: translateY(-4px); opacity:1; } 100% { transform: translateY(0); opacity:.9; } }
@keyframes dhp-candle { 0% { transform: scaleY(1); opacity:.8; } 25% { transform: scaleY(1.05); opacity:1; } 75% { transform: scaleY(0.95); opacity:.9; } 100% { transform: scaleY(1); opacity:.8; } }
@keyframes dhp-letter { 0% { transform: rotate(0); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0); } }

/* falstaff-promises-ford – warm dim interior */
.scn-falstaff-promises-ford {
  background:
    linear-gradient(180deg, #3a2820 0%, #2a1a12 50%, #1a0e08 100%),
    radial-gradient(ellipse at 60% 40%, #4a3020 0%, transparent 60%);
}
.scn-falstaff-promises-ford .hearth {
  position:absolute; bottom:5%; left:10%; width:40%; height:30%;
  background: linear-gradient(90deg, #2a1a10 0%, #3a2218 50%, #2a1a10 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
}
.scn-falstaff-promises-ford .fire-glow {
  position:absolute; bottom:10%; left:18%; width:20%; height:25%;
  background: radial-gradient(ellipse, #ff7030 0%, #c04820 40%, #8a2810 70%, transparent 100%);
  box-shadow: 0 0 40px 20px rgba(255, 80, 20, .4);
  animation: fpf-fire 2.4s ease-in-out infinite;
}
.scn-falstaff-promises-ford .mantel {
  position:absolute; bottom:32%; left:12%; width:36%; height:4%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-falstaff-promises-ford .figure-falstaff {
  position:absolute; bottom:15%; left:50%; width:24%; height:45%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fpf-gesture 3s ease-in-out infinite;
}
.scn-falstaff-promises-ford .figure-ford {
  position:absolute; bottom:15%; left:75%; width:18%; height:38%;
  background: linear-gradient(180deg, #3a2818 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fpf-nod 4s ease-in-out infinite;
}
.scn-falstaff-promises-ford .table-mug {
  position:absolute; bottom:22%; left:55%; width:12%; height:8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
}
.scn-falstaff-promises-ford .wine {
  position:absolute; bottom:24%; left:58%; width:4%; height:4%;
  background: radial-gradient(circle, #8a3020 0%, #5a1a10 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(120, 30, 10, .4);
  animation: fpf-wine 5s ease-in-out infinite;
}
@keyframes fpf-fire { 0% { transform: scale(1); opacity:.7; } 50% { transform: scale(1.03); opacity:1; } 100% { transform: scale(1); opacity:.7; } }
@keyframes fpf-gesture { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(12px) rotate(5deg); } 70% { transform: translateX(-8px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fpf-nod { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fpf-wine { 0% { transform: translate(0,0); } 50% { transform: translate(3px,-5px); } 100% { transform: translate(0,0); } }

/* falstaff-between – warm dim interior */
.scn-falstaff-between {
  background:
    linear-gradient(180deg, #2a1e18 0%, #1a120e 50%, #0f0a06 100%),
    radial-gradient(ellipse at 50% 50%, #3a281e 0%, transparent 60%);
}
.scn-falstaff-between .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(90deg, #2a1e18 0%, #3a2a1e 50%, #2a1e18 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-falstaff-between .door {
  position:absolute; bottom:0; left:40%; width:20%; height:55%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border: 3px solid #1a100a;
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,.4);
}
.scn-falstaff-between .figure-left {
  position:absolute; bottom:15%; left:15%; width:20%; height:40%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fbt-turn 5s ease-in-out infinite;
}
.scn-falstaff-between .figure-right {
  position:absolute; bottom:15%; right:10%; width:20%; height:42%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fbt-lean 4s ease-in-out infinite;
}
.scn-falstaff-between .figure-middle {
  position:absolute; bottom:18%; left:42%; width:16%; height:38%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a2018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fbt-peek 3s ease-in-out infinite;
}
.scn-falstaff-between .lamp {
  position:absolute; top:5%; left:30%; width:8%; height:15%;
  background: radial-gradient(ellipse at 50% 20%, #d0b070 0%, #8a7030 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(180,140,60,.3);
  animation: fbt-lamp 4s ease-in-out infinite;
}
.scn-falstaff-between .scroll {
  position:absolute; bottom:28%; left:45%; width:12%; height:4%;
  background: #c0a080;
  border-radius: 2px;
  box-shadow: 0 1px 3px rgba(0,0,0,.3);
  animation: fbt-scroll 8s ease-in-out infinite;
}
@keyframes fbt-turn { 0% { transform: scaleX(1); } 50% { transform: scaleX(-1); } 100% { transform: scaleX(1); } }
@keyframes fbt-lean { 0% { transform: rotate(0); } 50% { transform: rotate(4deg); } 100% { transform: rotate(0); } }
@keyframes fbt-peek { 0% { transform: translateX(0); } 50% { transform: translateX(10px); } 100% { transform: translateX(0); } }
@keyframes fbt-lamp { 0% { transform: scaleY(1); opacity:.8; } 50% { transform: scaleY(1.03); opacity:1; } 100% { transform: scaleY(1); opacity:.8; } }
@keyframes fbt-scroll { 0% { transform: rotate(0); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0); } }

/* Scene 1: urinals-cockscomb */
.scn-urinals-cockscomb {
  background: linear-gradient(180deg, #6b6b6b 0%, #4a4a4a 40%, #2e2e2e 100%), radial-gradient(ellipse at 50% 100%, #4a4a4a 0%, transparent 70%);
}
.scn-urinals-cockscomb .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(90deg, #5a5a4a 0%, #707060 20%, #5a5a4a 40%, #707060 60%, #5a5a4a 80%, #707060 100%);
  animation: uc-wall 12s ease-in-out infinite alternate;
}
.scn-urinals-cockscomb .puddle {
  position:absolute; bottom:10%; left:10%; width:70%; height:15%;
  background: radial-gradient(ellipse at 30% 50%, rgba(120,120,130,0.6) 0%, transparent 70%);
  border-radius:50%;
  filter: blur(4px);
  animation: uc-puddle 8s ease-in-out infinite;
}
.scn-urinals-cockscomb .figure {
  position:absolute; bottom:18%; left:35%; width:30%; height:60%;
  background: linear-gradient(180deg, #3a3a3a 0%, #222222 50%, #111111 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: uc-figure 6s ease-in-out infinite;
}
.scn-urinals-cockscomb .hat {
  position:absolute; bottom:72%; left:37%; width:22%; height:8%;
  background: linear-gradient(180deg, #4a4a30 0%, #2a2a1a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: uc-hat 7s ease-in-out infinite;
}
.scn-urinals-cockscomb .feather {
  position:absolute; bottom:80%; left:52%; width:4%; height:12%;
  background: linear-gradient(180deg, #7a7a50 0%, #5a5a30 100%);
  border-radius: 50% 50% 10% 10% / 90% 90% 10% 10%;
  transform-origin: bottom center;
  animation: uc-feather 9s ease-in-out infinite alternate;
}
.scn-urinals-cockscomb .sign {
  position:absolute; top:10%; right:10%; width:12%; height:18%;
  background: linear-gradient(180deg, #8a8a70 0%, #6a6a50 100%);
  border: 2px solid #4a4a30;
  border-radius: 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: uc-sign 20s ease-in-out infinite;
}
@keyframes uc-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes uc-puddle { 0% { transform:scaleY(1) translateY(0); opacity:0.5 } 50% { transform:scaleY(1.1) translateY(-2px); opacity:0.7 } 100% { transform:scaleY(1) translateY(0); opacity:0.5 } }
@keyframes uc-figure { 0% { transform:scaleY(1) } 25% { transform:scaleY(1.02) } 50% { transform:scaleY(0.98) } 75% { transform:scaleY(1.01) } 100% { transform:scaleY(1) } }
@keyframes uc-hat { 0% { transform:rotate(-2deg) } 50% { transform:rotate(3deg) } 100% { transform:rotate(-1deg) } }
@keyframes uc-feather { 0% { transform:rotate(-5deg) translateX(0) } 50% { transform:rotate(8deg) translateX(4%) } 100% { transform:rotate(-3deg) translateX(2%) } }
@keyframes uc-sign { 0% { transform:rotate(0deg) } 25% { transform:rotate(2deg) } 50% { transform:rotate(-1deg) } 75% { transform:rotate(1deg) } 100% { transform:rotate(0deg) } }

/* Scene 2: host-machiavel */
.scn-host-machiavel {
  background: linear-gradient(180deg, #3d3830 0%, #2b2720 40%, #1a1713 100%), radial-gradient(ellipse at 50% 70%, #2b2720 0%, transparent 60%);
}
.scn-host-machiavel .bg-dark {
  position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 0%, rgba(20,18,15,0.7) 100%);
  animation: hm-bg 14s ease-in-out infinite alternate;
}
.scn-host-machiavel .bar {
  position:absolute; bottom:20%; left:5%; width:90%; height:8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: hm-bar 20s ease-in-out infinite;
}
.scn-host-machiavel .host {
  position:absolute; bottom:28%; left:40%; width:18%; height:40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: hm-host 6s ease-in-out infinite;
}
.scn-host-machiavel .apron {
  position:absolute; bottom:28%; left:42%; width:14%; height:25%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 20% 20% 10% 10%;
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
  animation: hm-apron 8s ease-in-out infinite alternate;
}
.scn-host-machiavel .bottle {
  position:absolute; bottom:28%; left:60%; width:5%; height:20%;
  background: linear-gradient(180deg, #5a5a3a 0%, #3a3a1a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: hm-bottle 4s ease-in-out infinite;
}
.scn-host-machiavel .window {
  position:absolute; top:10%; right:5%; width:18%; height:30%;
  background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%);
  border-radius: 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: hm-window 30s ease-in-out infinite;
}
.scn-host-machiavel .light {
  position:absolute; top:25%; right:8%; width:8%; height:8%;
  background: radial-gradient(circle, #c0a860 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(192,168,96,0.3);
  animation: hm-light 3s ease-in-out infinite alternate;
}
@keyframes hm-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes hm-bar { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.02) } 100% { transform:scaleX(1) } }
@keyframes hm-host { 0% { transform:translateY(0) rotate(-1deg) } 25% { transform:translateY(-2px) rotate(1deg) } 50% { transform:translateY(0) rotate(0deg) } 75% { transform:translateY(-1px) rotate(2deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes hm-apron { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.05) } 100% { transform:scaleY(0.95) } }
@keyframes hm-bottle { 0% { transform:rotate(-5deg) translateX(0) } 50% { transform:rotate(8deg) translateX(3%) } 100% { transform:rotate(-3deg) translateX(1%) } }
@keyframes hm-window { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes hm-light { 0% { opacity:0.7; transform:scale(0.9) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:0.8; transform:scale(1) } }

/* Scene 3: mad-host-deceived */
.scn-mad-host-deceived {
  background: linear-gradient(180deg, #3a3a30 0%, #2a2a20 40%, #1a1a10 100%), radial-gradient(ellipse at 50% 30%, #2a2a20 0%, transparent 60%);
}
.scn-mad-host-deceived .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: mhd-floor 18s ease-in-out infinite alternate;
}
.scn-mad-host-deceived .beam {
  position:absolute; top:0; left:20%; width:5%; height:100%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10%;
  box-shadow: 2px 0 8px rgba(0,0,0,0.3);
  animation: mhd-beam 25s ease-in-out infinite;
}
.scn-mad-host-deceived .table {
  position:absolute; bottom:25%; left:30%; width:40%; height:12%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: mhd-table 15s ease-in-out infinite;
}
.scn-mad-host-deceived .host-two {
  position:absolute; bottom:37%; left:35%; width:15%; height:35%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: mhd-host-two 7s ease-in-out infinite;
}
.scn-mad-host-deceived .shadow {
  position:absolute; bottom:25%; left:50%; width:20%; height:10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: mhd-shadow 10s ease-in-out infinite alternate;
}
.scn-mad-host-deceived .mug {
  position:absolute; bottom:40%; left:50%; width:6%; height:10%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: mhd-mug 4s ease-in-out infinite;
}
@keyframes mhd-floor { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(0.98) } }
@keyframes mhd-beam { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.05) } 100% { transform:scaleX(1) } }
@keyframes mhd-table { 0% { transform:rotate(0deg) } 25% { transform:rotate(1deg) } 50% { transform:rotate(-1deg) } 75% { transform:rotate(0.5deg) } 100% { transform:rotate(0deg) } }
@keyframes mhd-host-two { 0% { transform:translateY(0) rotate(-2deg) } 25% { transform:translateY(-3px) rotate(1deg) } 50% { transform:translateY(0) rotate(2deg) } 75% { transform:translateY(-2px) rotate(-1deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes mhd-shadow { 0% { opacity:0.4; transform:scaleX(1) } 50% { opacity:0.6; transform:scaleX(1.2) } 100% { opacity:0.3; transform:scaleX(0.8) } }
@keyframes mhd-mug { 0% { transform:rotate(-10deg) } 50% { transform:rotate(15deg) } 100% { transform:rotate(-5deg) } }

/* Scene 4: revenge-on-host */
.scn-revenge-on-host {
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 50%, #1a1a1a 100%), radial-gradient(ellipse at 50% 0%, #2a2a2a 0%, transparent 70%);
}
.scn-revenge-on-host .sky {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  animation: roh-sky 20s ease-in-out infinite alternate;
}
.scn-revenge-on-host .ground {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #3a3a30 0%, #1a1a10 100%);
  border-radius: 30% 70% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: roh-ground 25s ease-in-out infinite;
}
.scn-revenge-on-host .host-back {
  position:absolute; bottom:25%; left:20%; width:18%; height:45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: roh-host-back 6s ease-in-out infinite;
}
.scn-revenge-on-host .avenger {
  position:absolute; bottom:25%; left:60%; width:16%; height:55%;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: roh-avenger 8s ease-in-out infinite alternate;
}
.scn-revenge-on-host .sword {
  position:absolute; bottom:65%; left:64%; width:2%; height:25%;
  background: linear-gradient(180deg, #8a8a8a 0%, #4a4a4a 100%);
  border-radius: 20%;
  box-shadow: 0 0 8px rgba(150,150,150,0.4);
  transform-origin: bottom center;
  animation: roh-sword 4s ease-in-out infinite;
}
.scn-revenge-on-host .dust {
  position:absolute; bottom:15%; left:40%; width:60%; height:8%;
  background: radial-gradient(ellipse, rgba(100,80,60,0.4) 0%, transparent 80%);
  filter: blur(10px);
  animation: roh-dust 12s ease-in-out infinite;
}
@keyframes roh-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes roh-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes roh-host-back { 0% { transform:rotate(-3deg) } 25% { transform:rotate(2deg) } 50% { transform:rotate(-1deg) } 75% { transform:rotate(4deg) } 100% { transform:rotate(-2deg) } }
@keyframes roh-avenger { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(-5%) rotate(-5deg) } 50% { transform:translateX(0) rotate(2deg) } 75% { transform:translateX(3%) rotate(-3deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes roh-sword { 0% { transform:rotate(10deg) translateY(0) } 25% { transform:rotate(15deg) translateY(-5%) } 50% { transform:rotate(5deg) translateY(0) } 75% { transform:rotate(20deg) translateY(-3%) } 100% { transform:rotate(10deg) translateY(0) } }
@keyframes roh-dust { 0% { opacity:0.2; transform:scaleX(1) } 50% { opacity:0.5; transform:scaleX(1.5) } 100% { opacity:0.3; transform:scaleX(1) } }

.scn-brook-introduces { background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #1a0e05 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 80%); }
.scn-brook-introduces .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0e 80%); }
.scn-brook-introduces .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a0e05 0%, #2a1a0e 100%); }
.scn-brook-introduces .fireplace { position:absolute; bottom:20%; left:10%; width:30%; height:50%; background: radial-gradient(ellipse at 50% 0%, #8a3a1a 0%, #3a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -20px 30px #0a0500; }
.scn-brook-introduces .table { position:absolute; bottom:18%; left:35%; width:30%; height:12%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 4px; transform: perspective(200px) rotateX(20deg); }
.scn-brook-introduces .candle { position:absolute; bottom:22%; left:48%; width:6px; height:14px; background: #ffe0a0; border-radius: 2px 2px 0 0; box-shadow: 0 0 20px 6px #ffc070, 0 0 40px 12px rgba(255,192,112,0.4); animation: bi-candle 4s ease-in-out infinite alternate; }
.scn-brook-introduces .figure-left { position:absolute; bottom:15%; left:22%; width:10%; height:45%; background: linear-gradient(180deg, #1a0e05 0%, #0a0500 100%); border-radius: 50% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bi-fig-l 6s ease-in-out infinite; }
.scn-brook-introduces .figure-right { position:absolute; bottom:15%; right:22%; width:10%; height:45%; background: linear-gradient(180deg, #1a0e05 0%, #0a0500 100%); border-radius: 40% 50% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bi-fig-r 5s ease-in-out infinite alternate; }
.scn-brook-introduces .shadow-floor { position:absolute; bottom:0; left:20%; width:60%; height:15%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 80%); filter: blur(4px); animation: bi-shadow 8s ease-in-out infinite; }
@keyframes bi-candle { 0% { transform: scaleY(1) translateY(0); opacity:1; box-shadow: 0 0 20px 6px #ffc070; } 50% { transform: scaleY(1.05) translateY(-1px); opacity:0.9; box-shadow: 0 0 30px 10px #ffd080; } 100% { transform: scaleY(0.95) translateY(1px); opacity:1; box-shadow: 0 0 20px 6px #ffc070; } }
@keyframes bi-fig-l { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(2px) translateY(-3px) rotate(1deg); } 50% { transform: translateX(-1px) translateY(0) rotate(0); } 75% { transform: translateX(1px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes bi-fig-r { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(-2px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes bi-shadow { 0% { opacity:0.5; transform: scaleX(1); } 50% { opacity:0.8; transform: scaleX(1.05); } 100% { opacity:0.5; transform: scaleX(1); } }

.scn-money-go-before { background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #1a0e05 100%), radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 80%); }
.scn-money-go-before .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0e 80%); }
.scn-money-go-before .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a0e05 0%, #2a1a0e 100%); }
.scn-money-go-before .table { position:absolute; bottom:15%; left:25%; width:50%; height:10%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 4px; transform: perspective(200px) rotateX(15deg); }
.scn-money-go-before .money-bag { position:absolute; bottom:20%; left:40%; width:12%; height:10%; background: radial-gradient(ellipse at 50% 30%, #6a5a2a 0%, #3a2a0a 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: mgb-bag 3s ease-in-out infinite alternate; }
.scn-money-go-before .coin-1 { position:absolute; bottom:18%; left:44%; width:4%; height:3%; background: radial-gradient(circle, #f0d080 0%, #c0a050 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: mgb-coin 5s ease-in-out infinite; }
.scn-money-go-before .coin-2 { position:absolute; bottom:18%; left:46%; width:4%; height:3%; background: radial-gradient(circle, #f0d080 0%, #c0a050 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: mgb-coin 5s ease-in-out infinite 1s; }
.scn-money-go-before .hand { position:absolute; bottom:18%; right:35%; width:8%; height:14%; background: linear-gradient(180deg, #1a0e05 0%, #0a0500 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: mgb-hand 4s ease-in-out infinite alternate; }
.scn-money-go-before .candle { position:absolute; bottom:21%; left:30%; width:5px; height:12px; background: #ffe0a0; border-radius: 2px 2px 0 0; box-shadow: 0 0 15px 4px #ffc070, 0 0 30px 8px rgba(255,192,112,0.3); animation: bi-candle 3s ease-in-out infinite alternate; }
@keyframes mgb-bag { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes mgb-coin { 0% { opacity:0.7; } 50% { opacity:1; transform: translateY(-2px) rotate(10deg); } 100% { opacity:0.7; } }
@keyframes mgb-hand { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(-8px) translateY(-2px) rotate(10deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }

.scn-scholar-brook { background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #1a0e05 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 80%); }
.scn-scholar-brook .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0e 80%); }
.scn-scholar-brook .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a0e05 0%, #2a1a0e 100%); }
.scn-scholar-brook .bookshelf { position:absolute; top:10%; left:10%; width:20%; height:50%; background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); }
.scn-scholar-brook .desk { position:absolute; bottom:20%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 4px; transform: perspective(200px) rotateX(10deg); }
.scn-scholar-brook .candle { position:absolute; bottom:25%; left:48%; width:6px; height:14px; background: #ffe0a0; border-radius: 2px 2px 0 0; box-shadow: 0 0 20px 6px #ffc070, 0 0 40px 12px rgba(255,192,112,0.4); animation: sb-candle 5s ease-in-out infinite alternate; }
.scn-scholar-brook .figure-left { position:absolute; bottom:15%; left:22%; width:10%; height:45%; background: linear-gradient(180deg, #1a0e05 0%, #0a0500 100%); border-radius: 50% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sb-fig-l 7s ease-in-out infinite; }
.scn-scholar-brook .figure-right { position:absolute; bottom:15%; right:22%; width:10%; height:45%; background: linear-gradient(180deg, #1a0e05 0%, #0a0500 100%); border-radius: 40% 50% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sb-fig-r 6s ease-in-out infinite alternate; }
.scn-scholar-brook .open-book { position:absolute; bottom:22%; left:42%; width:12%; height:6%; background: radial-gradient(ellipse at 50% 50%, #6a5a3a 0%, #4a3a1a 100%); border-radius: 20% 20% 10% 10%; transform: perspective(100px) rotateX(30deg); box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: sb-book 4s ease-in-out infinite; }
@keyframes sb-candle { 0% { transform: scaleY(1) translateY(0); opacity:1; } 50% { transform: scaleY(1.03) translateY(-1px); opacity:0.95; } 100% { transform: scaleY(0.97) translateY(1px); opacity:1; } }
@keyframes sb-fig-l { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sb-fig-r { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(-3px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes sb-book { 0% { transform: perspective(100px) rotateX(30deg) scale(1); } 50% { transform: perspective(100px) rotateX(25deg) scale(1.01); } 100% { transform: perspective(100px) rotateX(30deg) scale(1); } }

.scn-improper-brook { background: linear-gradient(180deg, #1a0a05 0%, #2a1a0a 40%, #0a0500 100%), radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 80%); }
.scn-improper-brook .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #2a1a0a 0%, #1a0a05 80%); }
.scn-improper-brook .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #0a0500 0%, #1a0a05 100%); }
.scn-improper-brook .fireplace { position:absolute; bottom:20%; left:10%; width:30%; height:50%; background: radial-gradient(ellipse at 50% 0%, #7a2a0a 0%, #2a0a00 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -20px 30px #000; }
.scn-improper-brook .table { position:absolute; bottom:18%; left:35%; width:30%; height:12%; background: linear-gradient(180deg, #4a2a0a 0%, #2a1a00 100%); border-radius: 4px; transform: perspective(200px) rotateX(20deg); }
.scn-improper-brook .candle-fast { position:absolute; bottom:22%; left:48%; width:6px; height:14px; background: #ffc070; border-radius: 2px 2px 0 0; box-shadow: 0 0 20px 6px #ffa030, 0 0 40px 12px rgba(255,160,48,0.5); animation: ib-candle 1.5s ease-in-out infinite alternate; }
.scn-improper-brook .figure-left { position:absolute; bottom:15%; left:22%; width:10%; height:45%; background: linear-gradient(180deg, #0a0500 0%, #000 100%); border-radius: 50% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ib-fig-l 2s ease-in-out infinite alternate; }
.scn-improper-brook .figure-right { position:absolute; bottom:15%; right:22%; width:10%; height:45%; background: linear-gradient(180deg, #0a0500 0%, #000 100%); border-radius: 40% 50% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ib-fig-r 1.8s ease-in-out infinite alternate; }
.scn-improper-brook .shadow-wall { position:absolute; top:0; left:40%; width:40%; height:100%; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%); filter: blur(6px); animation: ib-shadow 2s ease-in-out infinite alternate; }
@keyframes ib-candle { 0% { transform: scaleY(1) translateY(0); opacity:1; box-shadow: 0 0 15px 4px #ffa030; } 50% { transform: scaleY(1.1) translateY(-2px); opacity:0.8; box-shadow: 0 0 25px 8px #ff9020; } 100% { transform: scaleY(0.9) translateY(1px); opacity:1; box-shadow: 0 0 15px 4px #ffa030; } }
@keyframes ib-fig-l { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(3px) translateY(-4px) rotate(3deg); } 100% { transform: translateX(-2px) translateY(0) rotate(-1deg); } }
@keyframes ib-fig-r { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(-4px) translateY(-3px) rotate(4deg); } 100% { transform: translateX(2px) translateY(0) rotate(-2deg); } }
@keyframes ib-shadow { 0% { opacity:0.4; transform: scaleX(1); } 50% { opacity:0.7; transform: scaleX(1.05); } 100% { opacity:0.5; transform: scaleX(0.95); } }

.scn-street-park-approach {
  background: linear-gradient(180deg, #0b0b2a 0%, #1a1a3e 30%, #2c2040 100%),
              radial-gradient(ellipse at 70% 20%, rgba(200,180,220,.15) 0%, transparent 70%);
}
.scn-street-park-approach .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #0d0d35 0%, #1a1a45 100%); animation: pp-sky 20s ease-in-out infinite alternate; }
.scn-street-park-approach .stars { position:absolute; top:0; left:0; right:0; bottom:60%; background: radial-gradient(1px 1px at 10% 20%, #fff, transparent), radial-gradient(1px 1px at 30% 40%, #fff, transparent), radial-gradient(1px 1px at 60% 15%, #fff, transparent), radial-gradient(1px 1px at 85% 45%, #fff, transparent), radial-gradient(1.5px 1.5px at 45% 60%, #fff 0%, transparent 100%); opacity:.7; animation: pp-stars 5s ease-in-out infinite alternate; }
.scn-street-park-approach .street { position:absolute; bottom:20%; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a2a3a 0%, #151520 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-street-park-approach .trees-back { position:absolute; bottom:30%; left:5%; width:40%; height:50%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius:60% 40% 0 0; transform:scaleX(.8); }
.scn-street-park-approach .figures { position:absolute; bottom:20%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #0e0e1e 0%, #050510 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform:translateX(-20%); animation: pp-walk 6s ease-in-out infinite; }
.scn-street-park-approach .lantern { position:absolute; bottom:30%; left:50%; width:8px; height:10px; background:radial-gradient(ellipse, #ffd080 0%, #b08040 70%); border-radius:50%; box-shadow:0 0 20px 6px rgba(200,140,60,.5); animation: pp-lantern 4s ease-in-out infinite alternative; }
.scn-street-park-approach .gate { position:absolute; bottom:20%; right:10%; width:60px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:5% 5% 0 0; box-shadow:0 10px 20px rgba(0,0,0,.5); }
@keyframes pp-sky { 0% { opacity:.7; filter:brightness(1) } 50% { opacity:1; filter:brightness(1.1) } 100% { opacity:.8; filter:brightness(.95) } }
@keyframes pp-stars { 0% { opacity:.5; transform:scaleY(1) } 50% { opacity:.9; transform:scaleY(1.1) } 100% { opacity:.6; transform:scaleY(.9) } }
@keyframes pp-walk { 0% { transform:translateX(-20%) translateY(0) rotate(-1deg) } 25% { transform:translateX(-10%) translateY(-2px) rotate(1deg) } 50% { transform:translateX(0%) translateY(0) rotate(-1deg) } 75% { transform:translateX(10%) translateY(-2px) rotate(1deg) } 100% { transform:translateX(20%) translateY(0) rotate(0) } }
@keyframes pp-lantern { 0%,100% { box-shadow:0 0 15px 4px rgba(200,140,60,.4); transform:rotate(-2deg) } 50% { box-shadow:0 0 25px 8px rgba(255,200,80,.7); transform:rotate(2deg) } }

.scn-plot-to-betray-falstaff {
  background: linear-gradient(135deg, #2a1f0a 0%, #4a3a1a 40%, #3a2a10 100%),
              radial-gradient(ellipse at 20% 50%, #5a4a2a 0%, transparent 60%);
}
.scn-plot-to-betray-falstaff .wall-back { position:absolute; inset:0; background: linear-gradient(90deg, #3a2a1a 0%, #2a1f0a 100%); box-shadow:inset 0 0 80px rgba(0,0,0,.6); }
.scn-plot-to-betray-falstaff .table { position:absolute; bottom:20%; left:50%; width:120px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #4a321a 100%); border-radius:10% 10% 5% 5%; box-shadow:0 8px 16px rgba(0,0,0,.4); }
.scn-plot-to-betray-falstaff .candle { position:absolute; bottom:40%; left:50%; width:8px; height:24px; margin-left:-4px; background: linear-gradient(180deg, #ffe0a0 0%, #d0a060 100%); border-radius:20% 20% 10% 10%; box-shadow:0 0 30px 10px rgba(255,200,80,.6); animation: pf-candle 3s ease-in-out infinite alternate; }
.scn-plot-to-betray-falstaff .figure-left { position:absolute; bottom:18%; left:20%; width:30px; height:70px; background: linear-gradient(180deg, #1a100a 0%, #0a0805 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: pf-figure-l 5s ease-in-out infinite; }
.scn-plot-to-betray-falstaff .figure-right { position:absolute; bottom:18%; right:20%; width:30px; height:70px; background: linear-gradient(180deg, #1a100a 0%, #0a0805 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: pf-figure-r 5s ease-in-out infinite reverse; }
.scn-plot-to-betray-falstaff .shadow { position:absolute; bottom:20%; left:30%; width:80px; height:30px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.7) 0%, transparent 60%); animation: pf-shadow 7s ease-in-out infinite; }
.scn-plot-to-betray-falstaff .window { position:absolute; top:10%; right:10%; width:40px; height:50px; background: linear-gradient(180deg, #0a0a20 0%, #151540 100%); border:3px solid #3a2a1a; border-radius:5%; box-shadow:inset 0 0 20px rgba(0,0,0,.8); }
@keyframes pf-candle { 0%,100% { transform:scaleY(1); box-shadow:0 0 30px 10px rgba(255,200,80,.6); } 50% { transform:scaleY(1.1); box-shadow:0 0 40px 15px rgba(255,200,80,.8); } }
@keyframes pf-figure-l { 0% { transform:rotate(0) translateY(0) } 25% { transform:rotate(5deg) translateY(-2px) } 50% { transform:rotate(0) translateY(0) } 75% { transform:rotate(-5deg) translateY(-2px) } 100% { transform:rotate(0) translateY(0) } }
@keyframes pf-figure-r { 0% { transform:rotate(0) translateY(0) } 25% { transform:rotate(-5deg) translateY(-2px) } 50% { transform:rotate(0) translateY(0) } 75% { transform:rotate(5deg) translateY(-2px) } 100% { transform:rotate(0) translateY(0) } }
@keyframes pf-shadow { 0%,100% { opacity:.5; transform:scaleX(1) } 50% { opacity:.8; transform:scaleX(1.1) } }

.scn-fairies-assemble {
  background: linear-gradient(180deg, #0e1a0e 0%, #1a2a1a 40%, #2a3a2a 100%),
              radial-gradient(ellipse at 50% 60%, #1a2a1a 0%, transparent 80%);
}
.scn-fairies-assemble .bg-dim { position:absolute; inset:0; background: linear-gradient(180deg, #0a120a 0%, #1a2a1a 100%); opacity:.8; }
.scn-fairies-assemble .oak-tree { position:absolute; bottom:20%; left:50%; width:80px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:40% 40% 10% 10% / 80% 80% 20% 20%; box-shadow:0 10px 30px rgba(0,0,0,.5); }
.scn-fairies-assemble .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a2a1a 0%, #0a140a 100%); border-radius:40% 60% 0 0; }
.scn-fairies-assemble .fairies { position:absolute; bottom:40%; left:30%; width:20px; height:30px; background: radial-gradient(ellipse, #ffd080 0%, transparent 70%); border-radius:50%; box-shadow:0 0 15px 5px #ffd080; animation: fa-fairies 4s ease-in-out infinite; }
.scn-fairies-assemble .glow { position:absolute; bottom:50%; left:40%; width:40px; height:40px; background: radial-gradient(ellipse, rgba(200,255,200,.4) 0%, transparent 70%); animation: fa-glow 6s ease-in-out infinite alternate; }
.scn-fairies-assemble .pit { position:absolute; bottom:15%; left:20%; width:60px; height:30px; background: radial-gradient(ellipse at 50% 100%, #050a05 0%, transparent 70%); border-radius:50%; }
.scn-fairies-assemble .moss { position:absolute; bottom:25%; left:40%; width:30px; height:10px; background: linear-gradient(90deg, #3a5a3a, #2a4a2a); border-radius:40% 60% 50% 50%; filter:blur(2px); }
@keyframes fa-fairies { 0%,100% { transform:translateY(0) scale(1); opacity:.6 } 50% { transform:translateY(-8px) scale(1.2); opacity:1 } }
@keyframes fa-glow { 0% { opacity:.3; transform:scale(.8) } 50% { opacity:.7; transform:scale(1.2) } 100% { opacity:.4; transform:scale(1) } }

.scn-falstaff-as-herne {
  background: linear-gradient(180deg, #1a1a3a 0%, #0e0e2a 50%, #2a2a4e 100%),
              radial-gradient(ellipse at 50% 30%, #3a3a6e 0%, transparent 60%);
}
.scn-falstaff-as-herne .moon-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1a4a 0%, #0a0a2a 100%); }
.scn-falstaff-as-herne .moon { position:absolute; top:10%; left:60%; width:40px; height:40px; background: radial-gradient(circle, #e8e8ff 0%, #b0b0e0 80%); border-radius:50%; box-shadow:0 0 40px 15px rgba(200,200,255,.3); animation: fh-moon 12s ease-in-out infinite alternate; }
.scn-falstaff-as-herne .trees-bg { position:absolute; bottom:30%; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius:70% 30% 0 0 / 80% 40% 0 0; }
.scn-falstaff-as-herne .ground-dark { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #0e0e1e 0%, #050510 100%); }
.scn-falstaff-as-herne .falstaff-fig { position:absolute; bottom:25%; left:35%; width:40px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: fh-falstaff 3s ease-in-out infinite; }
.scn-falstaff-as-herne .antlers { position:absolute; bottom:68%; left:35%; width:40px; height:40px; background: transparent; border-left:3px solid #3a3a4a; border-right:3px solid #3a3a4a; border-radius:0 0 50% 50%; transform:rotate(10deg); animation: fh-antlers 4s ease-in-out infinite; }
.scn-falstaff-as-herne .pit-shadow { position:absolute; bottom:18%; left:40%; width:50px; height:20px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.8) 0%, transparent 60%); }
@keyframes fh-moon { 0%,100% { transform:translateY(0); box-shadow:0 0 40px 15px rgba(200,200,255,.3) } 50% { transform:translateY(-5px); box-shadow:0 0 60px 20px rgba(200,200,255,.5) } }
@keyframes fh-falstaff { 0%,100% { transform:translateY(0) rotate(0) } 25% { transform:translateY(-4px) rotate(2deg) } 50% { transform:translateY(-2px) rotate(-1deg) } 75% { transform:translateY(-4px) rotate(1deg) } }
@keyframes fh-antlers { 0%,100% { transform:rotate(10deg) scale(1) } 50% { transform:rotate(15deg) scale(1.05) } }

.scn-quickly-tells-simple {
  background: 
    linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #1a0e08 100%),
    radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 70%);
}
.scn-quickly-tells-simple .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  animation: qts-wall 12s ease-in-out infinite alternate;
}
.scn-quickly-tells-simple .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
}
.scn-quickly-tells-simple .table {
  position: absolute; bottom: 22%; left: 50%; width: 80px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: qts-table 6s ease-in-out infinite;
}
.scn-quickly-tells-simple .candle {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a060 0%, #a08040 60%, #8a6a30 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #d0a050, 0 0 40px 12px rgba(208,160,80,0.4);
  animation: qts-candle 3s ease-in-out infinite alternate;
}
.scn-quickly-tells-simple .figure-quickly {
  position: absolute; bottom: 18%; left: 30%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qts-quickly 4s ease-in-out infinite;
}
.scn-quickly-tells-simple .figure-simple {
  position: absolute; bottom: 18%; right: 30%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qts-simple 5s ease-in-out infinite;
}
.scn-quickly-tells-simple .lamp-swing {
  position: absolute; top: 12%; left: 50%; width: 12px; height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px #ffd080, 0 0 30px 8px rgba(255,208,128,0.3);
  animation: qts-lamp 2s ease-in-out infinite alternate;
}

@keyframes qts-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes qts-table { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes qts-candle { 0% { transform: translateX(-50%) scaleX(1); box-shadow: 0 0 16px 4px #d0a050; } 100% { transform: translateX(-50%) scaleX(0.85); box-shadow: 0 0 24px 8px #ffe0a0; } }
@keyframes qts-quickly { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes qts-simple { 0% { transform: translateX(0) translateY(0) scale(1); } 50% { transform: translateX(3px) translateY(-1px) scale(1.02); } 100% { transform: translateX(0) translateY(0) scale(1); } }
@keyframes qts-lamp { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(-5deg); } }

.scn-caius-sends-challenge {
  background: 
    linear-gradient(180deg, #1a0e0e 0%, #2a1a1a 50%, #0e0808 100%),
    radial-gradient(ellipse at 50% 60%, #3a1a1a 0%, transparent 70%);
}
.scn-caius-sends-challenge .wall-back {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  animation: csc-wall 14s ease-in-out infinite alternate;
}
.scn-caius-sends-challenge .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a0e0e 0%, #0a0606 100%);
  box-shadow: inset 0 6px 10px rgba(0,0,0,0.7);
}
.scn-caius-sends-challenge .door-arch {
  position: absolute; bottom: 10%; right: 10%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-caius-sends-challenge .figure-caius {
  position: absolute; bottom: 12%; left: 35%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: csc-caius 1.6s ease-in-out infinite alternate;
}
.scn-caius-sends-challenge .paper-challenge {
  position: absolute; bottom: 22%; left: 45%; width: 20px; height: 14px;
  background: #6a5a4a;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  transform: rotate(10deg);
  animation: csc-paper 3s ease-in-out infinite;
}
.scn-caius-sends-challenge .candle-flicker {
  position: absolute; bottom: 28%; left: 60%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #d08050 0%, #a06030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 16px 4px #d08050, 0 0 30px 8px rgba(208,128,80,0.4);
  animation: csc-candle 1.5s ease-in-out infinite alternate;
}
.scn-caius-sends-challenge .shadow-caius {
  position: absolute; bottom: 0; left: 30%; width: 40px; height: 20px;
  background: rgba(0,0,0,0.5);
  border-radius: 50% 50% 0 0;
  transform: skewX(-10deg);
  animation: csc-shadow 2.4s ease-in-out infinite alternate;
}

@keyframes csc-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes csc-caius { 0% { transform: translateX(0) rotate(-2deg) scale(1); } 100% { transform: translateX(3px) rotate(3deg) scale(1.05); } }
@keyframes csc-paper { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes csc-candle { 0% { transform: scaleY(1) scaleX(1); opacity: 0.9; } 50% { transform: scaleY(0.9) scaleX(0.95); opacity: 1; } 100% { transform: scaleY(1) scaleX(1); opacity: 0.9; } }
@keyframes csc-shadow { 0% { transform: skewX(-10deg) scaleX(1); opacity: 0.5; } 100% { transform: skewX(-5deg) scaleX(1.1); opacity: 0.7; } }

.scn-caius-goes-to-court {
  background: 
    linear-gradient(180deg, #120a0a 0%, #221210 50%, #0a0606 100%),
    radial-gradient(ellipse at 50% 50%, #2a1212 0%, transparent 70%);
}
.scn-caius-goes-to-court .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #221210 0%, #120a0a 100%);
  animation: cgc-wall 15s ease-in-out infinite alternate;
}
.scn-caius-goes-to-court .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a0e0e 0%, #0a0606 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.7);
}
.scn-caius-goes-to-court .door-open {
  position: absolute; bottom: 10%; left: 15%; width: 55px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 0 0 / 50% 50% 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.6);
  animation: cgc-door 8s ease-in-out infinite;
}
.scn-caius-goes-to-court .figure-caius {
  position: absolute; bottom: 12%; left: 30%; width: 26px; height: 55px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cgc-caius 2s ease-in-out infinite alternate;
}
.scn-caius-goes-to-court .figure-rugby {
  position: absolute; bottom: 12%; left: 22%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cgc-rugby 2.4s ease-in-out infinite alternate;
}
.scn-caius-goes-to-court .hat-caius {
  position: absolute; bottom: 58%; left: 30%; width: 20px; height: 12px;
  background: #1a0e0e;
  border-radius: 50% 50% 0 0;
  transform: rotate(-5deg);
  animation: cgc-hat 2s ease-in-out infinite alternate;
}
.scn-caius-goes-to-court .shadow {
  position: absolute; bottom: 0; left: 20%; width: 60px; height: 15px;
  background: rgba(0,0,0,0.6);
  border-radius: 50%;
  animation: cgc-shadow 2s ease-in-out infinite alternate;
}

@keyframes cgc-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes cgc-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.9) translateX(2px); } 100% { transform: scaleX(1); } }
@keyframes cgc-caius { 0% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(4px) rotate(3deg); } }
@keyframes cgc-rugby { 0% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(-3px) rotate(-2deg); } }
@keyframes cgc-hat { 0% { transform: rotate(-5deg) translateY(0); } 100% { transform: rotate(5deg) translateY(-1px); } }
@keyframes cgc-shadow { 0% { transform: scaleX(1); opacity: 0.6; } 100% { transform: scaleX(0.85); opacity: 0.8; } }

.scn-fenton-comes-courting {
  background: 
    linear-gradient(180deg, #3a2010 0%, #4a3020 50%, #2a1808 100%),
    radial-gradient(ellipse at 50% 80%, #5a3a20 0%, transparent 70%);
}
.scn-fenton-comes-courting .wall-warm {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3020 0%, #3a2010 100%);
  animation: fcc-wall 16s ease-in-out infinite alternate;
}
.scn-fenton-comes-courting .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2010 0%, #1a0e06 100%);
  box-shadow: inset 0 6px 10px rgba(0,0,0,0.5);
}
.scn-fenton-comes-courting .fireplace {
  position: absolute; bottom: 15%; left: 10%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 20px 4px #c07030;
}
.scn-fenton-comes-courting .figure-fenton {
  position: absolute; bottom: 15%; left: 35%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #3a2a22 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fcc-fenton 6s ease-in-out infinite;
}
.scn-fenton-comes-courting .figure-quickly {
  position: absolute; bottom: 15%; right: 30%; width: 26px; height: 52px;
  background: linear-gradient(180deg, #2a1a12 0%, #100a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fcc-quickly 5s ease-in-out infinite;
}
.scn-fenton-comes-courting .flower {
  position: absolute; bottom: 25%; left: 42%; width: 10px; height: 10px;
  background: radial-gradient(circle, #d09070 0%, #b07050 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #d09070;
  animation: fcc-flower 4s ease-in-out infinite;
}
.scn-fenton-comes-courting .candle-soft {
  position: absolute; bottom: 30%; right: 20%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #e0b080 0%, #c09060 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 16px 6px #e0b080, 0 0 30px 12px rgba(224,176,128,0.3);
  animation: fcc-candle 4s ease-in-out infinite alternate;
}

@keyframes fcc-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.92 } }
@keyframes fcc-fenton { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(2px) rotate(1deg); } 66% { transform: translateX(0) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fcc-quickly { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-1px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes fcc-flower { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(10deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes fcc-candle { 0% { transform: scaleY(1); opacity: 0.9; box-shadow: 0 0 12px 4px #e0b080; } 100% { transform: scaleY(0.9); opacity: 1; box-shadow: 0 0 20px 8px #f0c090; } }

/* search-fruitless */
.scn-search-fruitless {
  background: 
    linear-gradient(135deg, #d3b48c 0%, #c49a6c 50%, #a87d4a 100%),
    radial-gradient(ellipse at 70% 30%, #e0c69a 0%, transparent 60%);
}
.scn-search-fruitless .wall   { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b59373 0%, #9a7a5a 100%); box-shadow: inset 0 -8px 20px rgba(0,0,0,.15); }
.scn-search-fruitless .floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b6d4b 0%, #6b4f31 100%); }
.scn-search-fruitless .window { position:absolute; top:12%; left:50%; width:100px; height:80px; transform:translateX(-50%); background: radial-gradient(ellipse at 30% 40%, #fdf4d8 0%, #c8b08a 70%, #a8895e 100%); border: 6px solid #6b4f31; border-radius:4px; box-shadow: inset 0 0 20px rgba(255,215,140,.4), 0 4px 12px rgba(0,0,0,.3); animation: sf-window 6s ease-in-out infinite alternate; }
.scn-search-fruitless .table  { position:absolute; bottom:32%; left:30%; width:60px; height:12px; background: linear-gradient(135deg, #7a5c3a 0%, #5a3d20 100%); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-search-fruitless .shadow { position:absolute; bottom:32%; left:45%; width:40px; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%); animation: sf-shadow 1.5s ease-in-out infinite alternate; }
.scn-search-fruitless .figure{ position:absolute; bottom:30%; left:40%; width:24px; height:50px; background: linear-gradient(180deg, #2a1e12 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sf-figure 2s ease-in-out infinite; }
.scn-search-fruitless .candle{ position:absolute; bottom:38%; left:48%; width:8px; height:18px; background: linear-gradient(180deg, #f0d080 0%, #c8913c 100%); border-radius:2px; box-shadow: 0 0 12px 4px #f0b040, 0 0 24px 8px rgba(240,176,64,.3); animation: sf-candle 1.5s ease-in-out infinite alternate; }
@keyframes sf-window   { 0% { opacity:.9; transform:translateX(-50%) scaleX(1); } 50% { opacity:1; transform:translateX(-50%) scaleX(1.02); } 100% { opacity:.85; transform:translateX(-50%) scaleX(0.98); } }
@keyframes sf-shadow   { 0% { opacity:.2; transform:translateX(0); } 100% { opacity:.5; transform:translateX(10px); } }
@keyframes sf-figure   { 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 sf-candle   { 0% { transform:rotate(-1deg) scaleY(1); box-shadow: 0 0 8px 2px #f0b040; } 50% { transform:rotate(1deg) scaleY(1.05); box-shadow: 0 0 16px 6px #f0d060; } 100% { transform:rotate(-0.5deg) scaleY(0.95); box-shadow: 0 0 12px 4px #f0b040; } }

/* no-bodies-france */
.scn-no-bodies-france {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #e8d4ac 40%, #d4b894 100%),
    radial-gradient(ellipse at 20% 80%, #fcebd0 0%, transparent 60%);
}
.scn-no-bodies-france .bg          { position:absolute; inset:0; background: linear-gradient(135deg, #eddaa9 0%, #d6bf8a 50%, #b89f67 100%); }
.scn-no-bodies-france .table-large { position:absolute; bottom:20%; left:25%; right:25%; height:18%; background: linear-gradient(180deg, #a08050 0%, #7a6030 100%); border-radius:6px; box-shadow: 0 -4px 8px rgba(0,0,0,.3); }
.scn-no-bodies-france .figure-left { position:absolute; bottom:32%; left:22%; width:30px; height:60px; background: linear-gradient(180deg, #4a3530 0%, #2a1f1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nbf-figL 1.8s ease-in-out infinite; }
.scn-no-bodies-france .figure-right{ position:absolute; bottom:32%; right:22%; width:28px; height:55px; background: linear-gradient(180deg, #3a4045 0%, #1a2025 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nbf-figR 2s ease-in-out infinite; }
.scn-no-bodies-france .hat-left   { position:absolute; bottom:48%; left:19%; width:22px; height:12px; background: #3a2a1a; border-radius:50% 50% 20% 20%; transform:rotate(-10deg); animation: nbf-hatL 1.8s ease-in-out infinite; }
.scn-no-bodies-france .hat-right  { position:absolute; bottom:48%; right:18%; width:20px; height:10px; background: #2a3a2a; border-radius:50% 50% 20% 20%; transform:rotate(8deg); animation: nbf-hatR 2s ease-in-out infinite; }
.scn-no-bodies-france .feather    { position:absolute; bottom:56%; left:20%; width:6px; height:20px; background: linear-gradient(180deg, #d6a060 0%, #b07040 100%); border-radius:50% 50% 0 0; transform:rotate(-25deg); animation: nbf-feather 2.4s ease-in-out infinite alternate; }
@keyframes nbf-figL   { 0% { transform:translateX(0) translateY(0) rotate(0); } 25% { transform:translateX(5px) translateY(-3px) rotate(4deg); } 50% { transform:translateX(10px) translateY(0) rotate(-2deg); } 75% { transform:translateX(5px) translateY(-2px) rotate(3deg); } 100% { transform:translateX(0) translateY(0) rotate(0); } }
@keyframes nbf-figR   { 0% { transform:translateX(0) translateY(0) rotate(0); } 25% { transform:translateX(-4px) translateY(-2px) rotate(-3deg); } 50% { transform:translateX(-8px) translateY(0) rotate(2deg); } 75% { transform:translateX(-4px) translateY(-3px) rotate(-4deg); } 100% { transform:translateX(0) translateY(0) rotate(0); } }
@keyframes nbf-hatL   { 0% { transform:translateY(0) rotate(-10deg); } 50% { transform:translateY(-3px) rotate(-5deg); } 100% { transform:translateY(0) rotate(-10deg); } }
@keyframes nbf-hatR   { 0% { transform:translateY(0) rotate(8deg); } 50% { transform:translateY(-2px) rotate(3deg); } 100% { transform:translateY(0) rotate(8deg); } }
@keyframes nbf-feather{ 0% { transform:rotate(-25deg) scaleY(1); } 100% { transform:rotate(-35deg) scaleY(1.2); } }

/* pardon-birding */
.scn-pardon-birding {
  background: 
    linear-gradient(180deg, #f2e2ce 0%, #e0c8ae 50%, #c6a88a 100%),
    radial-gradient(ellipse at 60% 40%, #fff5e8 0%, transparent 70%);
}
.scn-pardon-birding .wall-warm { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #dac2a8 0%, #bca082 100%); box-shadow: inset 0 -6px 12px rgba(0,0,0,.1); }
.scn-pardon-birding .window-sun { position:absolute; top:12%; left:50%; width:120px; height:90px; transform:translateX(-50%); background: radial-gradient(ellipse at 60% 30%, #fffae0 0%, #e6d4b0 60%, #c6a88a 100%); border: 6px solid #8a6a4a; border-radius:4px; box-shadow: inset 0 0 30px rgba(255,235,180,.5), 0 4px 12px rgba(0,0,0,.2); animation: pb-window 8s ease-in-out infinite alternate; }
.scn-pardon-birding .sill      { position:absolute; top:33%; left:45%; right:45%; height:6px; background: #8a6a4a; border-radius:2px; }
.scn-pardon-birding .cage      { position:absolute; bottom:32%; left:48%; width:40px; height:50px; transform:translateX(-50%); border:3px solid #7a6a4a; border-radius:8px 8px 4px 4px; background: radial-gradient(ellipse at 50% 30%, #d4b890 0%, transparent 70%); box-shadow: 0 2px 8px rgba(0,0,0,.2); }
.scn-pardon-birding .bird      { position:absolute; bottom:42%; left:49%; width:12px; height:10px; background: radial-gradient(ellipse, #f0d060 0%, #c89030 100%); border-radius:50%; animation: pb-bird 3s ease-in-out infinite; }
.scn-pardon-birding .sunbeam   { position:absolute; top:12%; left:25%; width:60px; height:200px; background: linear-gradient(180deg, rgba(255,245,200,.25) 0%, rgba(255,245,200,0) 100%); transform:rotate(-15deg); filter: blur(8px); animation: pb-beam 9s ease-in-out infinite alternate; }
.scn-pardon-birding .pot-plant { position:absolute; bottom:30%; left:30%; width:20px; height:30px; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius:0 0 8px 8px; box-shadow: 0 2px 6px rgba(0,0,0,.2); }
@keyframes pb-window { 0% { opacity:.9; transform:translateX(-50%) scale(1); } 50% { opacity:1; transform:translateX(-50%) scale(1.01); } 100% { opacity:.85; transform:translateX(-50%) scale(0.99); } }
@keyframes pb-bird   { 0% { transform:translateY(0) rotate(0); } 25% { transform:translateY(-4px) rotate(-6deg); } 50% { transform:translateY(-2px) rotate(4deg); } 75% { transform:translateY(-5px) rotate(-2deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes pb-beam   { 0% { opacity:.3; transform:rotate(-15deg) translateX(0); } 50% { opacity:.6; transform:rotate(-12deg) translateX(5px); } 100% { opacity:.4; transform:rotate(-18deg) translateX(-3px); } }

/* lousy-knave-host */
.scn-lousy-knave-host {
  background: 
    linear-gradient(135deg, #d6b080 0%, #c49a6c 40%, #a87d4a 100%),
    radial-gradient(ellipse at 80% 60%, #e2c89a 0%, transparent 60%);
}
.scn-lousy-knave-host .tavern-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #b59373 0%, #8a6a4a 100%); box-shadow: inset 0 -8px 16px rgba(0,0,0,.2); }
.scn-lousy-knave-host .barrel      { position:absolute; bottom:28%; left:12%; width:30px; height:40px; background: linear-gradient(135deg, #6b4f31 0%, #4a3520 100%); border-radius:50% 50% 40% 40% / 30% 30% 30% 30%; box-shadow: 2px 2px 6px rgba(0,0,0,.3); }
.scn-lousy-knave-host .host-figure { position:absolute; bottom:30%; left:40%; width:28px; height:55px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2215 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lkh-host 2.5s ease-in-out infinite; }
.scn-lousy-knave-host .guest-figure{ position:absolute; bottom:30%; right:35%; width:26px; height:50px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lkh-guest 1.8s ease-in-out infinite; }
.scn-lousy-knave-host .mug         { position:absolute; bottom:34%; left:35%; width:14px; height:16px; background: linear-gradient(135deg, #c8a060 0%, #725024 100%); border-radius:2px 2px 6px 6px; animation: lkh-mug 2s ease-in-out infinite alternate; }
.scn-lousy-knave-host .stool       { position:absolute; bottom:25%; right:40%; width:16px; height:20px; background: linear-gradient(180deg, #5a4030 0%, #2a2015 100%); border-radius:4px; }
.scn-lousy-knave-host .lantern-l   { position:absolute; top:18%; left:20%; width:10px; height:14px; background: radial-gradient(circle, #f0d080 0%, #a07030 100%); border-radius:4px; box-shadow: 0 0 20px 6px rgba(240,208,128,.4); animation: lkh-lantern 3s ease-in-out infinite alternate; }
.scn-lousy-knave-host .lantern-r   { position:absolute; top:18%; right:20%; width:10px; height:14px; background: radial-gradient(circle, #f0d080 0%, #a07030 100%); border-radius:4px; box-shadow: 0 0 20px 6px rgba(240,208,128,.4); animation: lkh-lantern 3s ease-in-out infinite alternate-reverse; }
@keyframes lkh-host   { 0% { transform:translateX(0) translateY(0) rotate(0); } 25% { transform:translateX(4px) translateY(-2px) rotate(3deg); } 50% { transform:translateX(8px) translateY(0) rotate(-2deg); } 75% { transform:translateX(4px) translateY(-3px) rotate(4deg); } 100% { transform:translateX(0) translateY(0) rotate(0); } }
@keyframes lkh-guest  { 0% { transform:translateX(0) translateY(0) rotate(0); } 25% { transform:translateX(-3px) translateY(-1px) rotate(-2deg); } 50% { transform:translateX(-6px) translateY(0) rotate(1deg); } 75% { transform:translateX(-3px) translateY(-2px) rotate(-3deg); } 100% { transform:translateX(0) translateY(0) rotate(0); } }
@keyframes lkh-mug    { 0% { transform:rotate(-5deg) translateX(0); } 50% { transform:rotate(5deg) translateX(2px); } 100% { transform:rotate(-5deg) translateX(-1px); } }
@keyframes lkh-lantern{ 0% { opacity:.7; box-shadow: 0 0 12px 2px rgba(240,208,128,.3); } 50% { opacity:1; box-shadow: 0 0 28px 8px rgba(240,208,128,.6); } 100% { opacity:.8; box-shadow: 0 0 18px 4px rgba(240,208,128,.4); } }

/* sword-and-word-again */
.scn-sword-and-word-again {
  background:
    linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 50%, #2a3a2a 100%) 0 0 / 100% 100%,
    radial-gradient(ellipse at 60% 20%, #5a6a5a 0%, transparent 60%);
}
.scn-sword-and-word-again .wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #5a6a5a 0%, #4a5a4a 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,.3);
  animation: sw1-wall 20s ease-in-out infinite alternate;
}
.scn-sword-and-word-again .desk {
  position:absolute; bottom:18%; left:10%; right:10%; height:30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
}
.scn-sword-and-word-again .book-left {
  position:absolute; bottom:30%; left:20%; width:50px; height:35px;
  background: linear-gradient(135deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 4px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: sw1-book 6s ease-in-out infinite;
}
.scn-sword-and-word-again .book-right {
  position:absolute; bottom:32%; left:45%; width:60px; height:40px;
  background: linear-gradient(135deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 4px;
  transform: rotate(3deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: sw1-book 6s ease-in-out infinite reverse;
}
.scn-sword-and-word-again .dice {
  position:absolute; bottom:28%; left:55%; width:12px; height:12px;
  background: #b0a090;
  border-radius: 3px;
  box-shadow: 0 0 0 1px #8a7a6a, 0 2px 4px rgba(0,0,0,.4);
  animation: sw1-dice 2s ease-in-out infinite;
}
.scn-sword-and-word-again .figure.student {
  position:absolute; bottom:20%; left:30%; width:20px; height:50px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sw1-fig-student 4s ease-in-out infinite;
}
.scn-sword-and-word-again .figure.parson {
  position:absolute; bottom:20%; right:20%; width:22px; height:55px;
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sw1-fig-parson 5s ease-in-out infinite;
}
.scn-sword-and-word-again .lamp {
  position:absolute; top:16%; left:50%; width:8px; height:40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 8px #b0a090;
}
.scn-sword-and-word-again .lamp::after {
  content:''; position:absolute; bottom:0; left:-10px; right:-10px; height:14px;
  background: radial-gradient(circle at 50% 100%, #f0e0c0 0%, transparent 60%);
  border-radius: 50%;
  animation: sw1-lamp-glow 3s ease-in-out infinite alternate;
}
@keyframes sw1-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes sw1-book { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } }
@keyframes sw1-dice { 0% { transform: translate(0,0) rotate(0) } 25% { transform: translate(3px,-2px) rotate(90deg) } 50% { transform: translate(-2px,1px) rotate(180deg) } 75% { transform: translate(4px,0) rotate(270deg) } 100% { transform: translate(0,0) rotate(360deg) } }
@keyframes sw1-fig-student { 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(3deg) } }
@keyframes sw1-fig-parson { 0%,100% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-3px) rotate(-3deg) } }
@keyframes sw1-lamp-glow { 0% { opacity:.5; transform: scaleY(1) } 100% { opacity:1; transform: scaleY(1.2) } }

/* doublet-and-hose */
.scn-doublet-and-hose {
  background:
    linear-gradient(180deg, #5a6a5a 0%, #4a5a4a 50%, #3a4a3a 100%) 0 0 / 100% 100%,
    radial-gradient(ellipse at 50% 0%, #6a7a6a 0%, transparent 70%);
}
.scn-doublet-and-hose .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #6a7a6a 0%, #5a6a5a 100%);
  animation: dh2-sky 15s ease-in-out infinite alternate;
}
.scn-doublet-and-hose .rain-1 {
  position:absolute; inset:0;
  background: repeating-linear-gradient(45deg, rgba(180,200,200,.1) 0px, rgba(180,200,200,.1) 2px, transparent 2px, transparent 8px);
  animation: dh2-rain 1.5s linear infinite;
}
.scn-doublet-and-hose .rain-2 {
  position:absolute; inset:0;
  background: repeating-linear-gradient(-45deg, rgba(200,220,220,.08) 0px, rgba(200,220,220,.08) 1px, transparent 1px, transparent 7px);
  animation: dh2-rain 1.6s linear infinite reverse;
}
.scn-doublet-and-hose .figure.walking {
  position:absolute; bottom:20%; left:20%; width:24px; height:60px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dh2-walk 2s ease-in-out infinite;
}
.scn-doublet-and-hose .doublet {
  position:absolute; bottom:40%; left:calc(20% - 8px); width:40px; height:30px;
  background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform: translateX(0);
  animation: dh2-shoulder 2s ease-in-out infinite;
}
.scn-doublet-and-hose .hose {
  position:absolute; bottom:30%; left:calc(20% - 3px); width:6px; height:20px;
  background: #4a5a4a;
  border-radius: 2px;
  transform: translateX(0);
  animation: dh2-leg 2s ease-in-out infinite;
}
.scn-doublet-and-hose .cloud.dark {
  position:absolute; top:8%; left:10%; width:100px; height:24px;
  background: linear-gradient(180deg, rgba(80,90,80,.6) 0%, rgba(60,70,60,.2) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: dh2-drift 40s linear infinite;
}
.scn-doublet-and-hose .cloud.light {
  position:absolute; top:16%; right:8%; width:80px; height:18px;
  background: linear-gradient(180deg, rgba(160,170,160,.4) 0%, rgba(120,130,120,.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: dh2-drift 30s linear infinite reverse;
}
@keyframes dh2-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes dh2-rain { 0% { background-position: 0 0 } 100% { background-position: 10px 20px } }
@keyframes dh2-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(30px) translateY(0) rotate(0) } }
@keyframes dh2-shoulder { 0%,100% { transform: translateX(0) } 50% { transform: translateX(4px) } }
@keyframes dh2-leg { 0%,100% { transform: rotate(0) } 50% { transform: rotate(10deg) } }
@keyframes dh2-drift { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }

/* doctor-caius-knave */
.scn-doctor-caius-knave {
  background:
    linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 50%, #1a2a2a 100%) 0 0 / 100% 100%,
    radial-gradient(ellipse at 30% 50%, #4a5a5a 0%, transparent 60%);
}
.scn-doctor-caius-knave .bg {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
  animation: ck3-bg 12s ease-in-out infinite alternate;
}
.scn-doctor-caius-knave .bookshelf {
  position:absolute; bottom:30%; left:5%; right:5%; height:35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
.scn-doctor-caius-knave .doctor.hat {
  position:absolute; bottom:45%; left:25%; width:30px; height:25px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform: rotate(-5deg);
  animation: ck3-hat 4s ease-in-out infinite;
}
.scn-doctor-caius-knave .doctor.coat {
  position:absolute; bottom:20%; left:23%; width:24px; height:55px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: ck3-coat 4s ease-in-out infinite;
}
.scn-doctor-caius-knave .knave.cape {
  position:absolute; bottom:20%; left:55%; width:28px; height:60px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ck3-cape 4.5s ease-in-out infinite;
}
.scn-doctor-caius-knave .finger.pointer {
  position:absolute; bottom:35%; left:48%; width:4px; height:18px;
  background: #6a5a4a;
  border-radius: 50% 50% 0 0;
  transform: rotate(15deg);
  animation: ck3-point 3s ease-in-out infinite;
}
.scn-doctor-caius-knave .glasses {
  position:absolute; bottom:50%; left:30%; width:14px; height:6px;
  background: transparent;
  border: 2px solid #6a5a4a;
  border-radius: 50%;
  box-shadow: 0 0 0 2px #6a5a4a;
  animation: ck3-glasses 5s ease-in-out infinite;
}
@keyframes ck3-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ck3-hat { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes ck3-coat { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(-2deg) } }
@keyframes ck3-cape { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-3px) rotate(2deg) } }
@keyframes ck3-point { 0% { transform: rotate(10deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(10deg) } }
@keyframes ck3-glasses { 0%,100% { opacity:.8 } 50% { opacity:1 } }

/* disarm-let-question */
.scn-disarm-let-question {
  background:
    linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 50%, #2a3a2a 100%) 0 0 / 100% 100%,
    radial-gradient(ellipse at 50% 60%, #5a6a5a 0%, transparent 70%);
}
.scn-disarm-let-question .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
}
.scn-disarm-let-question .host {
  position:absolute; bottom:20%; left:15%; width:26px; height:55px;
  background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dq4-host 4s ease-in-out infinite;
}
.scn-disarm-let-question .caius {
  position:absolute; bottom:20%; left:38%; width:24px; height:52px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dq4-caius 3.5s ease-in-out infinite;
}
.scn-disarm-let-question .rugby {
  position:absolute; bottom:20%; right:15%; width:28px; height:58px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dq4-rugby 4.2s ease-in-out infinite;
}
.scn-disarm-let-question .blade-1 {
  position:absolute; bottom:35%; left:25%; width:2px; height:40px;
  background: radial-gradient(ellipse at 50% 0%, #b0a090 0%, #7a6a5a 100%);
  border-radius: 0 0 30% 30%;
  transform: rotate(20deg);
  box-shadow: 0 0 4px #b0a090;
  animation: dq4-blade 2s ease-in-out infinite;
}
.scn-disarm-let-question .blade-2 {
  position:absolute; bottom:35%; left:45%; width:2px; height:38px;
  background: radial-gradient(ellipse at 50% 0%, #b0a090 0%, #7a6a5a 100%);
  border-radius: 0 0 30% 30%;
  transform: rotate(-15deg);
  box-shadow: 0 0 4px #b0a090;
  animation: dq4-blade 2s ease-in-out infinite reverse;
}
.scn-disarm-let-question .spark {
  position:absolute; bottom:45%; left:35%; width:6px; height:6px;
  background: #f0e0c0;
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(240,224,192,.5);
  animation: dq4-spark 2s ease-in-out infinite;
}
@keyframes dq4-host { 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(5px) rotate(3deg) } }
@keyframes dq4-caius { 0%,100% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-4px) rotate(-3deg) } }
@keyframes dq4-rugby { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(-4deg) } }
@keyframes dq4-blade { 0% { transform: rotate(20deg) scaleY(1) } 25% { transform: rotate(20deg) scaleY(1.1) } 50% { transform: rotate(20deg) scaleY(1) } 75% { transform: rotate(20deg) scaleY(0.9) } 100% { transform: rotate(20deg) scaleY(1) } }
@keyframes dq4-spark { 0% { opacity:0; transform: scale(0.5) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:0; transform: scale(0.5) } }

.scn-reason-and-marriage { background: linear-gradient(135deg, #2a1f14 0%, #3d2b1a 40%, #1e1510 100%), radial-gradient(ellipse at 40% 60%, #4a3828 0%, transparent 80%); }
.scn-reason-and-marriage .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a2818 0%, #2a1a0e 100%); border-bottom: 2px solid #4a3824; }
.scn-reason-and-marriage .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1e150e 0%, #120c08 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,.6); }
.scn-reason-and-marriage .window-warm { position:absolute; top:12%; left:60%; width:28%; height:38%; background: radial-gradient(ellipse at 50% 40%, #c8a878 0%, #8a6a40 40%, #3a2818 100%); border-radius: 12% 12% 4% 4%; box-shadow: inset 0 0 40px #2a1a0e, 0 0 60px rgba(200,168,120,.15); animation: ram-win 6s ease-in-out infinite alternate; }
.scn-reason-and-marriage .table { position:absolute; bottom:28%; left:25%; width:50%; height:14%; background: linear-gradient(180deg, #5a3e28 0%, #3a2818 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 8px 16px rgba(0,0,0,.5); transform: perspective(400px) rotateX(6deg); }
.scn-reason-and-marriage .candle { position:absolute; bottom:36%; left:48%; width:6px; height:18px; background: linear-gradient(180deg, #e8d0a8 0%, #b89060 100%); border-radius: 40%; box-shadow: 0 0 20px 6px #d0a870, 0 0 50px 12px rgba(208,168,112,.3); animation: ram-candle 2s ease-in-out infinite alternate; }
.scn-reason-and-marriage .suitors { position:absolute; bottom:16%; width:14%; height:40%; background: linear-gradient(180deg, #4a3828 0%, #2a1a0e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ram-bow 5s ease-in-out infinite; }
.scn-reason-and-marriage .suitor-a { left:28%; animation-delay: 0s; }
.scn-reason-and-marriage .suitor-b { left:56%; animation-delay: 1.2s; }
.scn-reason-and-marriage .maid { position:absolute; bottom:18%; left:44%; width:10%; height:38%; background: linear-gradient(180deg, #6a4a38 0%, #3a2820 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ram-curtsey 4s ease-in-out infinite; }
@keyframes ram-win { 0% { opacity:.7; filter: brightness(.9); } 50% { opacity:1; filter: brightness(1.1); } 100% { opacity:.8; filter: brightness(.95); } }
@keyframes ram-candle { 0% { transform: translateY(0) scaleY(1); opacity:.8; } 50% { transform: translateY(-2px) scaleY(1.08); opacity:1; } 100% { transform: translateY(0) scaleY(.95); opacity:.85; } }
@keyframes ram-bow { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(-6deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(6deg); } }
@keyframes ram-curtsey { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(-3deg); } 60% { transform: translateY(0) rotate(2deg); } }

.scn-dissolutely-resolutely { background: linear-gradient(180deg, #1e1410 0%, #2a1e14 30%, #1a1210 100%), radial-gradient(ellipse at 50% 70%, #3a2818 0%, transparent 70%); }
.scn-dissolutely-resolutely .bg-panel { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #3a2a1e 0%, #281a12 50%, #1a100a 100%); border-bottom: 3px solid #4a3422; }
.scn-dissolutely-resolutely .floor-dark { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #140e0a 0%, #0a0806 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.7); }
.scn-dissolutely-resolutely .hearth { position:absolute; bottom:18%; left:40%; width:20%; height:30%; background: linear-gradient(180deg, #4a3422 0%, #2a1a10 100%); border-radius: 50% 50% 10% 10% / 40% 40% 10% 10%; box-shadow: inset 0 -20px 30px #0a0806; }
.scn-dissolutely-resolutely .fire-glow { position:absolute; bottom:24%; left:46%; width:8%; height:18%; background: radial-gradient(ellipse at 50% 60%, #e8a040 0%, #c06020 40%, #8a3010 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 16px #d08030, 0 0 80px 30px rgba(208,128,48,.25); animation: dr-fire 1.5s ease-in-out infinite alternate; }
.scn-dissolutely-resolutely .speaker { position:absolute; bottom:10%; left:30%; width:16%; height:48%; background: linear-gradient(180deg, #3a2820 0%, #1e1410 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: 45% 90%; animation: dr-speak 3s ease-in-out infinite; }
.scn-dissolutely-resolutely .arm-sweep { position:absolute; bottom:24%; left:38%; width:22%; height:8%; background: linear-gradient(135deg, #4a3428 0%, #2a1e16 100%); border-radius: 60% 20% 60% 20%; transform-origin: 0% 50%; animation: dr-arm 3.5s ease-in-out infinite alternate; }
.scn-dissolutely-resolutely .rug { position:absolute; bottom:6%; left:20%; width:60%; height:14%; background: linear-gradient(135deg, #5a3a2a 0%, #3a2818 25%, #5a3a2a 50%, #3a2818 75%, #5a3a2a 100%); border-radius: 30% 30% 10% 10% / 60% 60% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: dr-rug 8s ease-in-out infinite alternate; }
@keyframes dr-fire { 0% { transform: scaleY(.9) translateY(2px); opacity:.85; } 50% { transform: scaleY(1.1) translateY(-3px); opacity:1; } 100% { transform: scaleY(.95) translateY(0); opacity:.9; } }
@keyframes dr-speak { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(6px) rotate(4deg); } 50% { transform: translateX(-3px) rotate(-2deg); } 75% { transform: translateX(4px) rotate(3deg); } }
@keyframes dr-arm { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(30deg) scaleX(1.1); } 100% { transform: rotate(-10deg) scaleX(.95); } }
@keyframes dr-rug { 0% { filter: brightness(.9); } 50% { filter: brightness(1.1); } 100% { filter: brightness(.95); } }

.scn-anne-returns { background: linear-gradient(180deg, #2a1e14 0%, #3d2b1a 40%, #1e1510 100%), radial-gradient(ellipse at 40% 50%, #5a4030 0%, transparent 80%); }
.scn-anne-returns .wall-warm { position:absolute; inset:0 0 28% 0; background: linear-gradient(180deg, #4a3422 0%, #3a2818 50%, #2a1a0e 100%); border-bottom: 2px solid #5a4030; }
.scn-anne-returns .doorway { position:absolute; bottom:10%; left:24%; width:24%; height:70%; background: linear-gradient(180deg, #1a120e 0%, #0e0a08 100%); border-radius: 6% 6% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.8); }
.scn-anne-returns .door-open { position:absolute; bottom:10%; left:18%; width:20%; height:65%; background: linear-gradient(180deg, #3a2818 0%, #2a1a10 100%); border-radius: 0 6% 0 0; transform: perspective(600px) rotateY(30deg); transform-origin: left center; animation: ar-door 2s ease-in-out infinite alternate; }
.scn-anne-returns .anne-figure { position:absolute; bottom:14%; left:34%; width:10%; height:42%; background: linear-gradient(180deg, #6a5040 0%, #4a3428 60%, #2a1e18 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: ar-enter 6s ease-in-out infinite; }
.scn-anne-returns .dress-skirt { position:absolute; bottom:10%; left:32%; width:14%; height:16%; background: linear-gradient(180deg, #7a5a48 0%, #5a3a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: top center; animation: ar-swish 4s ease-in-out infinite; }
.scn-anne-returns .table-food { position:absolute; bottom:22%; left:56%; width:28%; height:12%; background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 8px 20px rgba(0,0,0,.5); }
.scn-anne-returns .plate { position:absolute; bottom:24%; left:62%; width:10%; height:4%; background: radial-gradient(ellipse, #c8a878 0%, #a08050 60%, #7a6038 100%); border-radius: 40%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-anne-returns .window-light { position:absolute; top:10%; right:8%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 40%, #e8d0a8 0%, #b89060 50%, #4a3422 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 0 50px 16px rgba(200,168,120,.12); animation: ar-light 5s ease-in-out infinite alternate; }
.scn-anne-returns .glow-plate { animation: ar-plate 3s ease-in-out infinite alternate; }
@keyframes ar-door { 0% { transform: perspective(600px) rotateY(25deg); } 50% { transform: perspective(600px) rotateY(30deg); } 100% { transform: perspective(600px) rotateY(22deg); } }
@keyframes ar-enter { 0% { transform: translateX(-10px) rotate(0deg); opacity:.7; } 30% { transform: translateX(0) rotate(-2deg); opacity:1; } 70% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(-6px) rotate(0deg); } }
@keyframes ar-swish { 0%,100% { transform: rotate(0deg) scaleX(1); } 25% { transform: rotate(-4deg) scaleX(1.03); } 50% { transform: rotate(2deg) scaleX(.97); } 75% { transform: rotate(-2deg) scaleX(1.02); } }
@keyframes ar-light { 0% { opacity:.8; filter: brightness(.9); } 50% { opacity:1; filter: brightness(1.1); } 100% { opacity:.85; filter: brightness(.95); } }
@keyframes ar-plate { 0%,100% { box-shadow: 0 2px 4px rgba(0,0,0,.2); } 50% { box-shadow: 0 4px 12px rgba(200,168,120,.3); } }

.scn-slender-stays-outside { background: linear-gradient(180deg, #87a8c8 0%, #b0c8e0 30%, #d4e0e8 60%, #c0d0d8 100%), radial-gradient(ellipse at 50% 0%, #d4e0e8 0%, transparent 60%); }
.scn-slender-stays-outside .sky-bright { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a0c0e0 0%, #c8d8e8 50%, #e0e8f0 100%); animation: sl-sky 12s ease-in-out infinite alternate; }
.scn-slender-stays-outside .ground-path { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a9a6a 0%, #7a8a5a 30%, #6a7a4a 70%, #5a6a3a 100%); border-radius: 60% 40% 0 0 / 20% 20% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.15); }
.scn-slender-stays-outside .building-wall { position:absolute; bottom:18%; left:10%; width:50%; height:60%; background: linear-gradient(180deg, #c8b8a0 0%, #a89078 30%, #908070 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -8px 30px rgba(0,0,0,.1); }
.scn-slender-stays-outside .doorway-arch { position:absolute; bottom:10%; left:24%; width:22%; height:52%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.4); }
.scn-slender-stays-outside .door-open-inner { position:absolute; bottom:10%; left:26%; width:12%; height:46%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 0 10% 0 0; transform: perspective(400px) rotateY(-40deg); transform-origin: right center; animation: sl-door 4s ease-in-out infinite alternate; }
.scn-slender-stays-outside .slender-figure { position:absolute; bottom:14%; left:46%; width:10%; height:46%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: sl-fidget 3s ease-in-out infinite; }
.scn-slender-stays-outside .hat-shadow { position:absolute; bottom:48%; left:44%; width:14%; height:8%; background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 80%); border-radius: 50%; transform: rotate(-10deg); animation: sl-hat 2.5s ease-in-out infinite alternate; }
.scn-slender-stays-outside .tree { position:absolute; bottom:24%; width:6%; height:50%; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius: 10% 10% 0 0 / 60% 60% 0 0; filter: blur(2px); }
.scn-slender-stays-outside .tree-a { left:6%; height:56%; animation: sl-tree 18s ease-in-out infinite alternate; }
.scn-slender-stays-outside .tree-b { right:8%; height:44%; animation: sl-tree 22s ease-in-out infinite alternate-reverse; }
@keyframes sl-sky { 0% { opacity:.8; filter: brightness(.95); } 50% { opacity:1; filter: brightness(1.05); } 100% { opacity:.85; filter: brightness(.98); } }
@keyframes sl-door { 0% { transform: perspective(400px) rotateY(-35deg); } 50% { transform: perspective(400px) rotateY(-42deg); } 100% { transform: perspective(400px) rotateY(-38deg); } }
@keyframes sl-fidget { 0%,100% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(3px) rotate(2deg); } 40% { transform: translateX(-2px) rotate(-1deg); } 60% { transform: translateX(4px) rotate(3deg); } 80% { transform: translateX(-1px) rotate(-2deg); } }
@keyframes sl-hat { 0% { transform: rotate(-8deg) translateX(0); } 50% { transform: rotate(-12deg) translateX(2px); } 100% { transform: rotate(-6deg) translateX(-1px); } }
@keyframes sl-tree { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* ----- falstaff-expected (tense, sunlit) ----- */
.scn-falstaff-expected {
  background:
    linear-gradient(180deg, #e8dbb8 0%, #c4b48a 40%, #9a8a6a 100%),
    radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.3) 0%, transparent 60%);
}
.scn-falstaff-expected .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #d6c59e 0%, #b8a882 100%);
  animation: fe1-wall 12s ease-in-out infinite alternate;
}
.scn-falstaff-expected .floor {
  position: absolute; bottom: 0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
}
.scn-falstaff-expected .window {
  position: absolute; top: 12%; left: 30%; width: 100px; height: 140px;
  background: linear-gradient(180deg, #cce4ff 0%, #a0c8f0 100%);
  border: 6px solid #6a5a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(200,200,255,0.4);
  animation: fe1-window 8s ease-in-out infinite alternate;
}
.scn-falstaff-expected .sunbeam {
  position: absolute; top: 12%; left: 30%; width: 20px; height: 160%;
  background: linear-gradient(180deg, rgba(255,240,180,0.4) 0%, transparent 100%);
  transform: rotate(-15deg);
  transform-origin: top left;
  filter: blur(4px);
  animation: fe1-beam 6s ease-in-out infinite alternate;
}
.scn-falstaff-expected .table {
  position: absolute; bottom: 20%; left: 42%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #8a7040 0%, #6a5030 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-falstaff-expected .chair {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #7a6030 0%, #5a4020 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(2deg);
  animation: fe1-chair 5s ease-in-out infinite;
}
.scn-falstaff-expected .figure {
  position: absolute; bottom: 22%; left: 35%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fe1-figure 4s ease-in-out infinite;
}
.scn-falstaff-expected .shadow {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: fe1-shadow 4s ease-in-out infinite;
}
@keyframes fe1-wall { 0% { background-color: #d6c59e; transform: scaleY(1); } 50% { background-color: #c4b48a; transform: scaleY(1.01); } 100% { background-color: #d6c59e; transform: scaleY(1); } }
@keyframes fe1-window { 0% { opacity: 0.9; box-shadow: inset 0 0 20px rgba(200,200,255,0.3); } 50% { opacity: 1; box-shadow: inset 0 0 40px rgba(200,200,255,0.6); } 100% { opacity: 0.9; box-shadow: inset 0 0 20px rgba(200,200,255,0.3); } }
@keyframes fe1-beam { 0% { opacity: 0.7; transform: rotate(-15deg) translateX(0); } 50% { opacity: 1; transform: rotate(-13deg) translateX(2px); } 100% { opacity: 0.7; transform: rotate(-15deg) translateX(0); } }
@keyframes fe1-chair { 0%, 100% { transform: rotate(2deg) translateY(0); } 25% { transform: rotate(-1deg) translateY(-2px); } 50% { transform: rotate(3deg) translateY(0); } 75% { transform: rotate(0deg) translateY(-1px); } }
@keyframes fe1-figure { 0%, 100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } }
@keyframes fe1-shadow { 0%, 100% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.3; transform: scaleX(0.9); } }

/* ----- falstaff-confrontation (tense, sunlit) ----- */
.scn-falstaff-confrontation {
  background:
    linear-gradient(180deg, #e0d0a8 0%, #b8a47c 50%, #8a7050 100%),
    radial-gradient(ellipse at 30% 30%, rgba(255,240,180,0.2) 0%, transparent 70%);
}
.scn-falstaff-confrontation .bg-room {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #d4be94 0%, #a89068 100%);
  animation: fc1-room 10s ease-in-out infinite alternate;
}
.scn-falstaff-confrontation .floor {
  position: absolute; bottom: 0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #6a5533 0%, #4a3525 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.4);
}
.scn-falstaff-confrontation .doorway {
  position: absolute; top: 10%; right: 10%; width: 70px; height: 120px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%);
  border: 4px solid #5a4a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
  animation: fc1-door 15s ease-in-out infinite alternate;
}
.scn-falstaff-confrontation .table {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #8a7040 0%, #5a4020 100%);
  border-radius: 8px;
  transform: translateX(-50%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-falstaff-confrontation .figure-left {
  position: absolute; bottom: 22%; left: 30%; width: 35px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  transform-origin: bottom center;
  animation: fc1-figL 4s ease-in-out infinite;
}
.scn-falstaff-confrontation .figure-right {
  position: absolute; bottom: 22%; right: 30%; width: 35px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fc1-figR 4s ease-in-out infinite reverse;
}
.scn-falstaff-confrontation .tray {
  position: absolute; bottom: 32%; left: 45%; width: 40px; height: 20px;
  background: linear-gradient(135deg, #b8a080 0%, #8a6a4a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: fc1-tray 6s ease-in-out infinite;
}
@keyframes fc1-room { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes fc1-door { 0%, 100% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.02) translateX(2px); } }
@keyframes fc1-figL { 0%, 100% { transform: scaleX(-1) translateY(0); } 25% { transform: scaleX(-1) translateY(-3px) rotate(-2deg); } 50% { transform: scaleX(-1) translateY(0) rotate(2deg); } 75% { transform: scaleX(-1) translateY(-1px) rotate(-1deg); } }
@keyframes fc1-figR { 0%, 100% { transform: translateY(0); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } }
@keyframes fc1-tray { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.05); } }

/* ----- falstaff-shallow-wit (funny, sunlit) ----- */
.scn-falstaff-shallow-wit {
  background:
    linear-gradient(180deg, #f5ecca 0%, #ddccaa 50%, #b8a47c 100%),
    radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.4) 0%, transparent 70%);
}
.scn-falstaff-shallow-wit .bg-outside {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #e8dbb0 0%, #c4b088 100%);
  animation: fsw1-bg 12s ease-in-out infinite alternate;
}
.scn-falstaff-shallow-wit .ground {
  position: absolute; bottom: 0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #7a8a4a 0%, #5a6a3a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-falstaff-shallow-wit .figure-falstaff {
  position: absolute; bottom: 22%; left: 25%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fsw1-falstaff 3s ease-in-out infinite;
}
.scn-falstaff-shallow-wit .figure-shallow {
  position: absolute; bottom: 22%; right: 25%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  transform-origin: bottom center;
  animation: fsw1-shallow 3.5s ease-in-out infinite reverse;
}
.scn-falstaff-shallow-wit .cabbage {
  position: absolute; bottom: 32%; left: 35%; width: 20px; height: 20px;
  background: radial-gradient(circle at 40% 40%, #a0c070 0%, #608040 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: fsw1-cabbage 2s ease-in-out infinite;
}
.scn-falstaff-shallow-wit .bench {
  position: absolute; bottom: 20%; left: 20%; width: 70px; height: 10px;
  background: linear-gradient(180deg, #8a7a50 0%, #5a4a30 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: fsw1-bench 6s ease-in-out infinite alternate;
}
.scn-falstaff-shallow-wit .leaf {
  position: absolute; top: 30%; left: 60%; width: 15px; height: 8px;
  background: radial-gradient(ellipse at 50% 50%, #a0c050 0%, #709030 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: fsw1-leaf 8s linear infinite;
}
@keyframes fsw1-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes fsw1-falstaff { 0%, 100% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-4px) rotate(-3deg); } 40% { transform: translateY(0) rotate(2deg); } 60% { transform: translateY(-2px) rotate(-1deg); } 80% { transform: translateY(0) rotate(3deg); } }
@keyframes fsw1-shallow { 0%, 100% { transform: scaleX(-1) translateY(0) rotate(0deg); } 25% { transform: scaleX(-1) translateY(-3px) rotate(2deg); } 50% { transform: scaleX(-1) translateY(0) rotate(-2deg); } 75% { transform: scaleX(-1) translateY(-1px) rotate(1deg); } }
@keyframes fsw1-cabbage { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.1); } }
@keyframes fsw1-bench { 0%, 100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(1.02); } }
@keyframes fsw1-leaf { 0% { transform: translateX(0) rotate(0deg); opacity: 0.6; } 50% { transform: translateX(20px) rotate(180deg); opacity: 1; } 100% { transform: translateX(40px) rotate(360deg); opacity: 0.6; } }

/* ----- slender-head-broken (funny, sunlit) ----- */
.scn-slender-head-broken {
  background:
    linear-gradient(180deg, #f0e4c0 0%, #d4c4a0 50%, #b0a080 100%),
    radial-gradient(ellipse at 40% 30%, rgba(255,240,180,0.2) 0%, transparent 70%);
}
.scn-slender-head-broken .bg-yard {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #e0d0a8 0%, #c4b08a 100%);
}
.scn-slender-head-broken .ground {
  position: absolute; bottom: 0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #6a7a4a 0%, #4a5a2a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-slender-head-broken .figure-slender {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%) scale(1);
  transform-origin: bottom center;
  animation: shb1-figure 4s ease-in-out infinite;
}
.scn-slender-head-broken .bump {
  position: absolute; bottom: 78%; left: 48%; width: 16px; height: 16px;
  background: radial-gradient(circle at 50% 40%, #b04040 0%, #802020 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(128,32,32,0.4);
  animation: shb1-bump 2s ease-in-out infinite;
}
.scn-slender-head-broken .hand {
  position: absolute; bottom: 72%; left: 54%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(30deg);
  transform-origin: top center;
  animation: shb1-hand 2s ease-in-out infinite alternate;
}
.scn-slender-head-broken .shadow {
  position: absolute; bottom: 18%; left: 50%; width: 40px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  transform: translateX(-50%);
  animation: shb1-shadow 4s ease-in-out infinite;
}
@keyframes shb1-figure { 0%, 100% { transform: translateX(-50%) translateY(0); } 25% { transform: translateX(-50%) translateY(-2px); } 50% { transform: translateX(-50%) translateY(0); } 75% { transform: translateX(-50%) translateY(-1px); } }
@keyframes shb1-bump { 0%, 100% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.3); opacity: 1; } }
@keyframes shb1-hand { 0% { transform: rotate(30deg) translateY(0); } 100% { transform: rotate(20deg) translateY(-2px); } }
@keyframes shb1-shadow { 0%, 100% { opacity: 0.4; transform: translateX(-50%) scaleX(1); } 50% { opacity: 0.2; transform: translateX(-50%) scaleX(0.8); } }

/* another-messenger */
.scn-another-messenger { background: linear-gradient(180deg, #3a2a1a 0%, #4a3525 30%, #2a1a0a 70%, #1a0e05 100%), radial-gradient(ellipse at 50% 80%, #4a3525 0%, transparent 60%); }
.scn-another-messenger .room-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:0 0 30% 30%; animation: sc1-bg 8s ease-in-out infinite alternate; }
.scn-another-messenger .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #1a0e05 0%, #2a1a0a 100%); }
.scn-another-messenger .candle { position:absolute; bottom:18%; left:70%; width:8px; height:24px; background: linear-gradient(180deg, #e8d4a8 0%, #c8a868 100%); border-radius:2px 2px 4px 4px; transform-origin: bottom center; animation: sc1-candle 3s ease-in-out infinite; }
.scn-another-messenger .candle-glow { position:absolute; bottom:18%; left:70%; width:40px; height:40px; transform:translate(-50%,-50%); background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%); border-radius:50%; animation: sc1-glow 2s ease-in-out infinite alternate; }
.scn-another-messenger .messenger { position:absolute; bottom:14%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc1-messenger 6s ease-in-out infinite; }
.scn-another-messenger .scroll { position:absolute; bottom:16%; left:28%; width:16px; height:6px; background: linear-gradient(90deg, #d4c4a0 0%, #f0dcc0 50%, #d4c4a0 100%); border-radius:3px; transform: rotate(15deg); animation: sc1-scroll 4s ease-in-out infinite alternate; }
.scn-another-messenger .table { position:absolute; bottom:8%; left:25%; width:80px; height:14px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-another-messenger .shadow { position:absolute; bottom:8%; left:15%; width:100px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); border-radius:50%; animation: sc1-shadow 6s ease-in-out infinite; }
@keyframes sc1-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sc1-candle { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(2deg) } }
@keyframes sc1-glow { 0% { opacity:.6; transform:translate(-50%,-50%) scale(.9) } 50% { opacity:1; transform:translate(-50%,-50%) scale(1.1) } 100% { opacity:.7; transform:translate(-50%,-50%) scale(.95) } }
@keyframes sc1-messenger { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(0) translateY(0) rotate(0) } 75% { transform: translateX(-8px) translateY(-2px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes sc1-scroll { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-2px) } 100% { transform: rotate(20deg) translateY(1px) } }
@keyframes sc1-shadow { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.5; transform: scaleX(1.1) } 100% { opacity:.4; transform: scaleX(.95) } }

/* marvellous-infection */
.scn-marvellous-infection { background: linear-gradient(135deg, #4a2a1a 0%, #3a1a0a 50%, #2a0e00 100%), radial-gradient(ellipse at 60% 30%, #3a1a0a 0%, transparent 70%); }
.scn-marvellous-infection .chamber-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); }
.scn-marvellous-infection .curtain-left { position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 100%); border-radius:0 30% 30% 0; box-shadow: inset -10px 0 20px rgba(0,0,0,.5); animation: sc2-curtain 8s ease-in-out infinite alternate; }
.scn-marvellous-infection .curtain-right { position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 100%); border-radius:30% 0 0 30%; box-shadow: inset 10px 0 20px rgba(0,0,0,.5); animation: sc2-curtain 8s ease-in-out infinite alternate-reverse; }
.scn-marvellous-infection .lady-silhouette { position:absolute; bottom:10%; left:35%; width:40px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc2-lady 5s ease-in-out infinite; }
.scn-marvellous-infection .man-silhouette { position:absolute; bottom:10%; right:35%; width:42px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 50% 50% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: sc2-man 6s ease-in-out infinite; }
.scn-marvellous-infection .cushion { position:absolute; bottom:5%; left:45%; width:50px; height:20px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius:50%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: sc2-cushion 7s ease-in-out infinite; }
.scn-marvellous-infection .love-letter { position:absolute; bottom:22%; left:47%; width:20px; height:14px; background: linear-gradient(135deg, #d4c4a0 0%, #f0e0c0 50%, #c0a880 100%); border-radius:2px; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: sc2-letter 4s ease-in-out infinite; }
.scn-marvellous-infection .sparkle { position:absolute; top:40%; left:50%; width:6px; height:6px; background: #ffd080; border-radius:50%; box-shadow: 0 0 12px 4px #ffd080; animation: sc2-sparkle 3s ease-in-out infinite; }
@keyframes sc2-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(.98) } }
@keyframes sc2-lady { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-5px) rotate(-2deg) translateY(-2px) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(5px) rotate(2deg) translateY(-1px) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sc2-man { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(4px) rotate(1deg) translateY(-3px) } 70% { transform: translateX(-3px) rotate(-1deg) translateY(-1px) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sc2-cushion { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(.9) translateY(2px) } }
@keyframes sc2-letter { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-3px) } 100% { transform: rotate(-15deg) translateY(1px) } }
@keyframes sc2-sparkle { 0% { opacity:.3; transform: scale(.5) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:.4; transform: scale(.8) } }

/* nay-word-advised */
.scn-nay-word-advised { background: linear-gradient(180deg, #3a2a1a 0%, #4a3525 30%, #2a1a0a 70%, #1a0e05 100%), radial-gradient(ellipse at 50% 50%, #4a3525 0%, transparent 70%); }
.scn-nay-word-advised .parlor-bg { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-nay-word-advised .hearth { position:absolute; bottom:0; left:10%; width:30%; height:30%; background: linear-gradient(180deg, #6a3a1a 0%, #3a1a0a 100%); border-radius: 50% 50% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6), 0 0 30px 10px rgba(255,100,20,.2); animation: sc3-hearth 10s ease-in-out infinite alternate; }
.scn-nay-word-advised .woman-left { position:absolute; bottom:12%; left:25%; width:40px; height:55px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc3-womanL 6s ease-in-out infinite; }
.scn-nay-word-advised .woman-right { position:absolute; bottom:12%; right:25%; width:42px; height:58px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc3-womanR 7s ease-in-out infinite; }
.scn-nay-word-advised .page-boy { position:absolute; bottom:8%; left:50%; width:20px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform: translateX(-50%); transform-origin: bottom center; animation: sc3-page 5s ease-in-out infinite; }
.scn-nay-word-advised .table-center { position:absolute; bottom:2%; left:50%; width:80px; height:10px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius:4px; transform: translateX(-50%); }
.scn-nay-word-advised .goblet { position:absolute; bottom:6%; left:48%; width:10px; height:18px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius:2px 2px 4px 4px; transform-origin: bottom center; animation: sc3-goblet 4s ease-in-out infinite; }
@keyframes sc3-hearth { 0% { box-shadow: inset 0 -10px 20px rgba(0,0,0,.6), 0 0 20px 5px rgba(255,100,20,.1) } 50% { box-shadow: inset 0 -10px 20px rgba(0,0,0,.6), 0 0 40px 15px rgba(255,100,20,.3) } 100% { box-shadow: inset 0 -10px 20px rgba(0,0,0,.6), 0 0 30px 10px rgba(255,100,20,.2) } }
@keyframes sc3-womanL { 0% { transform: translateX(0) rotate(0) } 20% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0) } 80% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sc3-womanR { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(4px) rotate(1deg) } 70% { transform: translateX(-4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sc3-page { 0% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-50%) rotate(-3deg) translateY(-2px) } 75% { transform: translateX(-50%) rotate(3deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes sc3-goblet { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(4deg) } }

/* send-your-page */
.scn-send-your-page { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a0e05 100%), radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%); }
.scn-send-your-page .hall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); }
.scn-send-your-page .stair-rail { position:absolute; top:20%; left:20%; width:60%; height:4px; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a3a 50%, #4a3a2a 100%); border-radius:2px; box-shadow: 0 8px 10px rgba(0,0,0,.4); animation: sc4-rail 12s ease-in-out infinite alternate; }
.scn-send-your-page .lady-pointing { position:absolute; bottom:12%; left:30%; width:45px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc4-lady 6s ease-in-out infinite; }
.scn-send-your-page .page-listening { position:absolute; bottom:8%; left:55%; width:22px; height:32px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: sc4-page 5s ease-in-out infinite; }
.scn-send-your-page .doorway { position:absolute; top:20%; left:70%; width:30px; height:60%; background: linear-gradient(180deg, #1a0e05 0%, #0a0500 100%); border-radius:4px 4px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-send-your-page .lamp { position:absolute; top:30%; left:72%; width:8px; height:12px; background: linear-gradient(180deg, #e8d4a8 0%, #c8a868 100%); border-radius:2px 2px 4px 4px; transform-origin: top center; animation: sc4-lamp 3s ease-in-out infinite; }
.scn-send-your-page .lamp-glow { position:absolute; top:30%; left:72%; width:40px; height:40px; transform:translate(-50%,-50%); background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%); border-radius:50%; animation: sc4-glow 2.5s ease-in-out infinite alternate; }
@keyframes sc4-rail { 0% { transform: scaleX(1) translateY(0) } 50% { transform: scaleX(1.02) translateY(2px) } 100% { transform: scaleX(.98) translateY(-1px) } }
@keyframes sc4-lady { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-4px) rotate(-2deg) translateY(-2px) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(4px) rotate(2deg) translateY(-1px) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sc4-page { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(3px) rotate(3deg) } 70% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sc4-lamp { 0%,100% { transform: rotate(0) } 50% { transform: rotate(5deg) } }
@keyframes sc4-glow { 0% { opacity:.6; transform:translate(-50%,-50%) scale(.9) } 50% { opacity:1; transform:translate(-50%,-50%) scale(1.2) } 100% { opacity:.7; transform:translate(-50%,-50%) scale(1) } }

/* ===== 1. item-buck-basket ===== */
.scn-item-buck-basket {
  background:
    linear-gradient(180deg, #1e1310 0%, #2c1f1a 35%, #3a2820 70%, #1e1310 100%),
    radial-gradient(ellipse at 70% 50%, #3a2820 0%, transparent 70%);
}
.scn-item-buck-basket .wall-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #1a1210 0%, #2a1e18 50%, #3a2a22 100%);
}
.scn-item-buck-basket .door-arch {
  position: absolute; bottom: 20%; left: 10%; width: 35%; height: 70%;
  background: linear-gradient(180deg, #4a3a32 0%, #2a1e18 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,.5);
}
.scn-item-buck-basket .figure-servant {
  position: absolute; bottom: 18%; left: 35%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%);
  border-radius: 45% 55% 30% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: bb-walk 3.5s ease-in-out infinite;
}
.scn-item-buck-basket .basket {
  position: absolute; bottom: 22%; left: 38%; width: 32px; height: 24px;
  background: linear-gradient(135deg, #5a4030 0%, #3a2820 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 -2px 6px rgba(0,0,0,.4);
  animation: bb-basket 3.5s ease-in-out infinite;
}
.scn-item-buck-basket .lantern-glow {
  position: absolute; bottom: 40%; left: 50%; width: 10px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #b06020 70%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 20px 8px #b06020, 0 0 40px 16px rgba(176,96,32,.4);
  animation: bb-lantern 2.2s ease-in-out infinite alternate;
}
.scn-item-buck-basket .shadow-pool {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 100%);
  filter: blur(4px);
  animation: bb-shade 4s ease-in-out infinite;
}
.scn-item-buck-basket .floor-board {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: repeating-linear-gradient(90deg, #3a2820 0px, #3a2820 20px, #2a1e18 20px, #2a1e18 40px);
}
@keyframes bb-walk {
  0%   { transform: translateX(0) translateY(0) rotate(-2deg); }
  25%  { transform: translateX(4px) translateY(-1px) rotate(1deg); }
  50%  { transform: translateX(8px) translateY(0) rotate(-1deg); }
  75%  { transform: translateX(12px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0); }
}
@keyframes bb-basket {
  0%,100% { transform: translateX(0) rotate(0); }
  50%     { transform: translateX(4px) rotate(3deg); }
}
@keyframes bb-lantern {
  0%   { opacity: .7; box-shadow: 0 0 12px 4px #b06020, 0 0 24px 8px rgba(176,96,32,.3); }
  50%  { opacity: 1;  box-shadow: 0 0 28px 12px #ffd080, 0 0 48px 20px rgba(255,208,128,.5); }
  100% { opacity: .8; box-shadow: 0 0 16px 6px #b06020, 0 0 32px 12px rgba(176,96,32,.35); }
}
@keyframes bb-shade {
  0%,100% { opacity: .6; transform: scaleX(1); }
  50%     { opacity: .3; transform: scaleX(0.9); }
}

/* ===== 2. ford-soliloquy-rant ===== */
.scn-ford-soliloquy-rant {
  background:
    linear-gradient(180deg, #1a1a30 0%, #2a2040 40%, #3a2a50 80%, #1a1a30 100%),
    radial-gradient(ellipse at 30% 80%, #4a3a60 0%, transparent 70%);
}
.scn-ford-soliloquy-rant .wall-panels {
  position: absolute; inset: 0 0 20% 0;
  background: repeating-linear-gradient(90deg, #2a2040 0px, #2a2040 30px, #3a2a50 30px, #3a2a50 60px);
  opacity: 0.5;
}
.scn-ford-soliloquy-rant .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a30 0%, #0e0e20 100%);
}
.scn-ford-soliloquy-rant .figure-ford {
  position: absolute; bottom: 15%; left: 45%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #3a2a50 0%, #1a1a30 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fsr-rage 1.8s ease-in-out infinite;
}
.scn-ford-soliloquy-rant .desk-item {
  position: absolute; bottom: 12%; left: 30%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #4a3a60 0%, #2a2040 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,.5);
}
.scn-ford-soliloquy-rant .candle-flicker {
  position: absolute; bottom: 30%; left: 46%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #ffd080 0%, #b06020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 12px 4px #ffd080, 0 0 24px 8px rgba(255,208,128,.4);
  animation: fsr-candle 2s ease-in-out infinite alternate;
}
.scn-ford-soliloquy-rant .shadow-stripe {
  position: absolute; bottom: 15%; left: 0; width: 100%; height: 5%;
  background: linear-gradient(90deg, transparent 30%, rgba(0,0,0,.6) 40%, transparent 50%);
  filter: blur(6px);
  animation: fsr-shadow 2.5s ease-in-out infinite;
}
.scn-ford-soliloquy-rant .chair-tilt {
  position: absolute; bottom: 12%; left: 55%; width: 24px; height: 30px;
  background: linear-gradient(180deg, #2a2040 0%, #1a1a30 100%);
  border-radius: 10% 10% 30% 30%;
  transform-origin: bottom center;
  animation: fsr-chair 3s ease-in-out infinite;
}
@keyframes fsr-rage {
  0%   { transform: translateY(0) rotate(-3deg); }
  25%  { transform: translateY(-3px) rotate(2deg); }
  50%  { transform: translateY(-1px) rotate(-5deg); }
  75%  { transform: translateY(-2px) rotate(4deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes fsr-candle {
  0%   { opacity: .6; transform: scaleY(1); box-shadow: 0 0 8px 2px #ffd080, 0 0 16px 4px rgba(255,208,128,.3); }
  50%  { opacity: .9; transform: scaleY(1.2); box-shadow: 0 0 16px 6px #ffd080, 0 0 32px 12px rgba(255,208,128,.5); }
  100% { opacity: .7; transform: scaleY(0.9); box-shadow: 0 0 10px 3px #ffd080, 0 0 20px 6px rgba(255,208,128,.35); }
}
@keyframes fsr-shadow {
  0%,100% { opacity: .5; transform: translateX(0); }
  50%     { opacity: .8; transform: translateX(10px); }
}
@keyframes fsr-chair {
  0%   { transform: rotate(0) translateY(0); }
  50%  { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(0) translateY(0); }
}

/* ===== 3. street-school-exam ===== */
.scn-street-school-exam {
  background:
    linear-gradient(180deg, #b0b8b8 0%, #c8d0d0 30%, #a0a8a8 70%, #808888 100%),
    radial-gradient(ellipse at 50% 0%, #d0d8d8 0%, transparent 80%);
}
.scn-street-school-exam .sky-overcast {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c8d0d0 0%, #a0a8a8 100%);
}
.scn-street-school-exam .building-left {
  position: absolute; bottom: 30%; left: 0; width: 40%; height: 60%;
  background: linear-gradient(180deg, #b0b8b8 0%, #909898 100%);
  box-shadow: inset -8px 0 12px rgba(0,0,0,.15);
  border-radius: 0 10% 0 0;
}
.scn-street-school-exam .building-right {
  position: absolute; bottom: 30%; right: 0; width: 35%; height: 65%;
  background: linear-gradient(180deg, #a0a8a8 0%, #808888 100%);
  box-shadow: inset 8px 0 12px rgba(0,0,0,.1);
  border-radius: 10% 0 0 0;
}
.scn-street-school-exam .figure-mistress1 {
  position: absolute; bottom: 25%; left: 30%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #6a7070 0%, #505656 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sse-stroll 6s ease-in-out infinite;
}
.scn-street-school-exam .figure-mistress2 {
  position: absolute; bottom: 25%; left: 38%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #7a8080 0%, #606666 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sse-stroll 6s ease-in-out infinite reverse;
  animation-delay: -1s;
}
.scn-street-school-exam .figure-william {
  position: absolute; bottom: 25%; left: 45%; width: 16px; height: 35px;
  background: linear-gradient(180deg, #5a6060 0%, #404646 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sse-hop 2.5s ease-in-out infinite;
}
.scn-street-school-exam .lamp-post {
  position: absolute; bottom: 35%; left: 50%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #a0a8a8 0%, #808888 100%);
  border-radius: 20%;
}
.scn-street-school-exam .cobble-path {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: repeating-conic-gradient(#a0a8a8 0% 15%, #b0b8b8 15% 30%) 0 0 / 20px 20px;
  opacity: 0.4;
}
@keyframes sse-stroll {
  0%   { transform: translateX(0) translateY(0); }
  33%  { transform: translateX(8px) translateY(-2px); }
  66%  { transform: translateX(16px) translateY(0); }
  100% { transform: translateX(24px) translateY(-1px); }
}
@keyframes sse-hop {
  0%,100% { transform: translateY(0); }
  50%     { transform: translateY(-5px); }
}

/* ===== 4. ford-house-second-attempt ===== */
.scn-ford-house-second-attempt {
  background:
    linear-gradient(180deg, #d4a870 0%, #c89460 30%, #b87c48 60%, #a06430 100%),
    radial-gradient(ellipse at 50% 20%, #e8c898 0%, transparent 80%);
}
.scn-ford-house-second-attempt .wall-warm {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #d4a870 0%, #c08c50 100%);
  opacity: 0.7;
}
.scn-ford-house-second-attempt .window-bright {
  position: absolute; bottom: 55%; left: 20%; width: 30%; height: 30%;
  background: linear-gradient(180deg, #ffe0b0 0%, #ffd090 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: inset 0 0 20px #ffd090, 0 0 30px 10px rgba(255,208,144,.6);
  animation: fha-window 4s ease-in-out infinite alternate;
}
.scn-ford-house-second-attempt .figure-falstaff {
  position: absolute; bottom: 18%; left: 35%; width: 35px; height: 55px;
  background: linear-gradient(180deg, #704830 0%, #503020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fha-bow 3s ease-in-out infinite;
}
.scn-ford-house-second-attempt .figure-ford-wife {
  position: absolute; bottom: 18%; left: 48%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #906850 0%, #705038 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fha-curtsey 3.5s ease-in-out infinite;
}
.scn-ford-house-second-attempt .couch {
  position: absolute; bottom: 10%; left: 30%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #906850 0%, #604030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 -4px 8px rgba(0,0,0,.3);
}
.scn-ford-house-second-attempt .table-round {
  position: absolute; bottom: 8%; left: 55%; width: 40px; height: 10px;
  background: linear-gradient(180deg, #805040 0%, #604030 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
}
.scn-ford-house-second-attempt .rug-pattern {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 10%;
  background: repeating-linear-gradient(45deg, #906850 0px, #906850 10px, #805040 10px, #805040 20px);
  border-radius: 20% 20% 0 0;
  opacity: 0.5;
}
.scn-ford-house-second-attempt .vase-plant {
  position: absolute; bottom: 20%; left: 65%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #5a7040 0%, #4a6030 100%);
  border-radius: 50% 50% 20% 20% / 30% 30% 10% 10%;
}
@keyframes fha-window {
  0%   { opacity: .8; box-shadow: inset 0 0 15px #ffd090, 0 0 20px 5px rgba(255,208,144,.4); }
  50%  { opacity: 1;  box-shadow: inset 0 0 25px #ffe0b0, 0 0 40px 15px rgba(255,224,176,.6); }
  100% { opacity: .9; box-shadow: inset 0 0 18px #ffd090, 0 0 25px 8px rgba(255,208,144,.5); }
}
@keyframes fha-bow {
  0%   { transform: rotate(0) translateY(0); }
  30%  { transform: rotate(-15deg) translateY(-2px); }
  60%  { transform: rotate(5deg) translateY(-1px); }
  100% { transform: rotate(0) translateY(0); }
}
@keyframes fha-curtsey {
  0%   { transform: rotate(0) translateY(0); }
  25%  { transform: rotate(5deg) translateY(-3px); }
  50%  { transform: rotate(-5deg) translateY(-1px); }
  75%  { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(0) translateY(0); }
}

.scn-jealous-knave-forth { background: linear-gradient(180deg, #3a2a1e 0%, #1f150e 100%), radial-gradient(ellipse at 50% 60%, #6b4a2a 0%, transparent 70%); }
.scn-jealous-knave-forth .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #3d2c1f 0%, #2a1d14 100%); animation: jkf-wall 18s ease-in-out infinite alternate; }
.scn-jealous-knave-forth .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1f150e 0%, #0f0a07 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.5); }
.scn-jealous-knave-forth .table { position:absolute; bottom:32%; left:40%; width:120px; height:18px; background: linear-gradient(180deg, #4a3525 0%, #2a1d14 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); transform: translateX(-50%); animation: jkf-table 12s ease-in-out infinite alternate; }
.scn-jealous-knave-forth .candle { position:absolute; bottom:44%; left:45%; width:10px; height:20px; background: linear-gradient(180deg, #e8d0a0 0%, #c09060 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px #d4a060; animation: jkf-candle 2s ease-in-out infinite alternate; }
.scn-jealous-knave-forth .figure { position:absolute; bottom:26%; left:50%; width:22px; height:40px; background: linear-gradient(180deg, #0f0a07 0%, #050302 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jkf-figure 4s ease-in-out infinite; }
.scn-jealous-knave-forth .door { position:absolute; bottom:30%; left:10%; width:80px; height:100px; background: linear-gradient(180deg, #4a3525 0%, #2a1d14 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.4); animation: jkf-door 20s ease-in-out infinite alternate; }
.scn-jealous-knave-forth .shadow { position:absolute; bottom:20%; left:48%; width:40px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); animation: jkf-shadow 4s ease-in-out infinite; }
@keyframes jkf-wall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes jkf-table { 0% { transform: translateX(-50%) rotate(-0.5deg) } 100% { transform: translateX(-50%) rotate(0.5deg) } }
@keyframes jkf-candle { 0% { transform: scaleY(1) scaleX(1); opacity:.8 } 50% { transform: scaleY(1.08) scaleX(0.95); opacity:1 } 100% { transform: scaleY(.98) scaleX(1.02); opacity:.85 } }
@keyframes jkf-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes jkf-door { 0% { transform: rotateY(0deg) } 50% { transform: rotateY(15deg) } 100% { transform: rotateY(0deg) } }
@keyframes jkf-shadow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(8px) scaleX(1.2) } 100% { transform: translateX(0) scaleX(1) } }

.scn-mechanical-salt-butter { background: linear-gradient(180deg, #2d1f13 0%, #1a100a 100%), radial-gradient(ellipse at 50% 70%, #5a3a1e 0%, transparent 60%); }
.scn-mechanical-salt-butter .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #3a281c 0%, #261a10 100%); animation: msb-wall 20s ease-in-out infinite alternate; }
.scn-mechanical-salt-butter .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a100a 0%, #0f0805 100%); border-radius: 30% 30% 0 0 / 15% 15% 0 0; box-shadow: inset 0 15px 25px rgba(0,0,0,.5); }
.scn-mechanical-salt-butter .figure { position:absolute; bottom:22%; left:40%; width:24px; height:44px; background: linear-gradient(180deg, #0f0805 0%, #040201 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: msb-figure 5s ease-in-out infinite; }
.scn-mechanical-salt-butter .cudgel { position:absolute; bottom:38%; left:36%; width:6px; height:50px; background: linear-gradient(180deg, #4a3525 0%, #2a1d14 100%); border-radius: 3px; transform-origin: 50% 100%; animation: msb-cudgel 1.6s ease-in-out infinite alternate; }
.scn-mechanical-salt-butter .meteor-glow { position:absolute; bottom:65%; left:50%; width:40px; height:40px; background: radial-gradient(circle, #d4a060 0%, #8a6030 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px #b08040; animation: msb-meteor 3s ease-in-out infinite alternate; }
.scn-mechanical-salt-butter .window { position:absolute; bottom:50%; left:70%; width:60px; height:70px; background: linear-gradient(180deg, #1a100a 0%, #0f0805 100%); border: 2px solid #3a281c; border-radius: 6px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: msb-window 25s ease-in-out infinite alternate; }
.scn-mechanical-salt-butter .shadow { position:absolute; bottom:16%; left:36%; width:45px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); animation: msb-shadow 5s ease-in-out infinite; }
@keyframes msb-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes msb-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(10px) rotate(-2deg) } 75% { transform: translateX(15px) rotate(2deg) } 100% { transform: translateX(20px) rotate(0) } }
@keyframes msb-cudgel { 0% { transform: rotate(-20deg) } 100% { transform: rotate(20deg) } }
@keyframes msb-meteor { 0% { transform: scale(0.8); opacity:.6 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(0.9); opacity:.7 } }
@keyframes msb-window { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes msb-shadow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(5px) scaleX(1.3) } 100% { transform: translateX(0) scaleX(1) } }

.scn-epicurean-rascal { background: linear-gradient(180deg, #1a0e0a 0%, #0a0503 100%), radial-gradient(ellipse at 50% 50%, #2a120a 0%, transparent 70%); }
.scn-epicurean-rascal .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0f0705 0%, #000 100%); opacity:.8; }
.scn-epicurean-rascal .bg-mid { position:absolute; inset:20% 10% 20% 10%; background: radial-gradient(ellipse at 50% 50%, #3d1d14 0%, transparent 60%); animation: er-bg 30s ease-in-out infinite alternate; }
.scn-epicurean-rascal .figure { position:absolute; bottom:20%; left:50%; width:26px; height:48px; background: linear-gradient(180deg, #150a07 0%, #080403 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: er-figure 3s ease-in-out infinite; }
.scn-epicurean-rascal .heart-glow { position:absolute; bottom:38%; left:50%; width:16px; height:16px; background: radial-gradient(circle, #702243 0%, #4a1628 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 20px 8px #5e1a2a; animation: er-heart 1.5s ease-in-out infinite alternate; }
.scn-epicurean-rascal .crack { position:absolute; bottom:34%; left:48%; width:20px; height:2px; background: #2f140e; border-radius: 1px; box-shadow: 0 4px 0 #2f140e, 0 8px 0 #2f140e; animation: er-crack 4s ease-in-out infinite; }
.scn-epicurean-rascal .shadow { position:absolute; bottom:14%; left:46%; width:50px; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); animation: er-shadow 3s ease-in-out infinite; }
@keyframes er-bg { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes er-figure { 0% { transform: translateX(0) rotate(-3deg) translateY(0) } 25% { transform: translateX(-4px) rotate(0) translateY(-3px) } 50% { transform: translateX(0) rotate(3deg) translateY(0) } 75% { transform: translateX(4px) rotate(0) translateY(-3px) } 100% { transform: translateX(0) rotate(0) translateY(0) } }
@keyframes er-heart { 0% { transform: scale(0.9); opacity:.6 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(1); opacity:.7 } }
@keyframes er-crack { 0% { opacity:0 } 50% { opacity:.8 } 100% { opacity:0 } }
@keyframes er-shadow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-4px) scaleX(1.3) } 100% { transform: translateX(0) scaleX(1) } }

.scn-cuckold-terms { background: linear-gradient(180deg, #120607 0%, #060202 100%), radial-gradient(ellipse at 50% 40%, #3d1515 0%, transparent 70%); }
.scn-cuckold-terms .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0a0304 0%, #000 100%); opacity:.9; }
.scn-cuckold-terms .figure { position:absolute; bottom:18%; left:50%; width:28px; height:50px; background: linear-gradient(180deg, #120607 0%, #070202 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ct-figure 5s ease-in-out infinite; }
.scn-cuckold-terms .horn-left { position:absolute; bottom:42%; left:46%; width:8px; height:20px; background: linear-gradient(180deg, #2a0e0a 0%, #140504 100%); border-radius: 50% 50% 0 0; transform: rotate(-30deg); animation: ct-horn 5s ease-in-out infinite alternate; }
.scn-cuckold-terms .horn-right { position:absolute; bottom:42%; left:54%; width:8px; height:20px; background: linear-gradient(180deg, #2a0e0a 0%, #140504 100%); border-radius: 50% 50% 0 0; transform: rotate(30deg); animation: ct-horn 5s ease-in-out infinite alternate reverse; }
.scn-cuckold-terms .hell-glow { position:absolute; bottom:40%; left:50%; width:40px; height:40px; background: radial-gradient(circle, #a0461a 0%, #5c1a0c 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 30px 12px #70301a; animation: ct-glow 2s ease-in-out infinite alternate; }
.scn-cuckold-terms .shadow { position:absolute; bottom:12%; left:46%; width:55px; height:14px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); animation: ct-shadow 5s ease-in-out infinite; }
.scn-cuckold-terms .spark { position:absolute; bottom:50%; left:50%; width:4px; height:4px; background: #c0602a; border-radius: 50%; box-shadow: 0 0 6px 2px #c0602a; animation: ct-spark 2s ease-in-out infinite; }
@keyframes ct-figure { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(5px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes ct-horn { 0% { transform: rotate(-30deg) scaleY(1) } 50% { transform: rotate(-20deg) scaleY(1.3) } 100% { transform: rotate(-30deg) scaleY(1) } }
@keyframes ct-glow { 0% { transform: scale(0.9); opacity:.6 } 100% { transform: scale(1.2); opacity:1 } }
@keyframes ct-shadow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(3px) scaleX(1.2) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes ct-spark { 0% { transform: translate(0,0) scale(0.8); opacity:0 } 50% { transform: translate(10px,-10px) scale(1.2); opacity:1 } 100% { transform: translate(20px,-20px) scale(0.5); opacity:0 } }

.scn-quickly-as-messenger { background: linear-gradient(180deg, #f4e8c8 0%, #d4c098 30%, #b89870 60%, #a08050 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%); }
.scn-quickly-as-messenger .sun-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ffe890 0%, #f4d870 40%, #d4a850 100%); animation: ms-sky 12s ease-in-out infinite alternate; }
.scn-quickly-as-messenger .distant-trees { position:absolute; bottom:45%; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a9a5a 0%, #6a7a3a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,.2); animation: ms-trees 16s ease-in-out infinite alternate; }
.scn-quickly-as-messenger .road { position:absolute; bottom:0; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #c8a870 0%, #a08050 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); }
.scn-quickly-as-messenger .figure-messenger { position:absolute; bottom:28%; left:30%; width:24px; height:50px; background: linear-gradient(180deg, #c07040 0%, #905020 40%, #683818 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ms-walk 5s ease-in-out infinite; }
.scn-quickly-as-messenger .figure-shadow { position:absolute; bottom:20%; left:28%; width:40px; height:8px; background: rgba(0,0,0,.2); border-radius: 50%; filter: blur(4px); animation: ms-shadow 5s ease-in-out infinite; }
.scn-quickly-as-messenger .gate-arch { position:absolute; bottom:30%; right:25%; width:60px; height:80px; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.3); }
.scn-quickly-as-messenger .dust-particles { position:absolute; bottom:15%; left:10%; right:10%; height:30%; background: radial-gradient(ellipse at 30% 50%, rgba(200,180,140,.15) 0%, transparent 50%), radial-gradient(ellipse at 70% 40%, rgba(200,180,140,.1) 0%, transparent 40%); animation: ms-dust 8s ease-in-out infinite alternate; }
.scn-quickly-as-messenger .sunburst { position:absolute; top:8%; left:15%; width:120px; height:120px; background: radial-gradient(circle, rgba(255,240,180,.4) 0%, transparent 70%); filter: blur(12px); animation: ms-sunburst 6s ease-in-out infinite alternate; }
@keyframes ms-sky { 0% { opacity:.85; transform:scale(1) } 50% { opacity:1; transform:scale(1.02) } 100% { opacity:.9; transform:scale(1) } }
@keyframes ms-trees { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes ms-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(0deg) } 50% { transform: translateX(16px) translateY(0) rotate(2deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(32px) translateY(0) rotate(-2deg) } }
@keyframes ms-shadow { 0% { transform: translateX(0) scale(1); opacity:.3 } 50% { transform: translateX(16px) scale(.95); opacity:.4 } 100% { transform: translateX(32px) scale(1); opacity:.3 } }
@keyframes ms-dust { 0% { opacity:.3; transform: translateY(0) } 50% { opacity:.6; transform: translateY(-5px) } 100% { opacity:.3; transform: translateY(0) } }
@keyframes ms-sunburst { 0% { transform: translate(0,0) scale(1); opacity:0 } 50% { transform: translate(-10px,-8px) scale(1.3); opacity:.1 } 100% { transform: translate(0,0) scale(1); opacity:0 } }

.scn-ford-doubts { background: linear-gradient(180deg, #d4c098 0%, #b89870 40%, #906040 100%), radial-gradient(ellipse at 70% 20%, #fff0c0 0%, transparent 60%); }
.scn-ford-doubts .wall-bg { position:absolute; inset:0 30% 0 0; background: linear-gradient(180deg, #b09070 0%, #806050 100%); box-shadow: inset -20px 0 40px rgba(0,0,0,.3); }
.scn-ford-doubts .window-frame { position:absolute; top:10%; right:5%; width:60px; height:80px; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(0,0,0,.4); }
.scn-ford-doubts .sunlight-beam { position:absolute; top:0; right:3%; width:70px; height:100%; background: linear-gradient(180deg, rgba(255,240,200,.3) 0%, transparent 60%); transform: skewX(-10deg); filter: blur(6px); animation: fd-beam 7s ease-in-out infinite alternate; }
.scn-ford-doubts .figure-ford { position:absolute; bottom:15%; left:15%; width:30px; height:56px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fd-ford 6s ease-in-out infinite; }
.scn-ford-doubts .figure-ford-arm { position:absolute; bottom:28%; left:30%; width:20px; height:6px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 0 0; transform-origin: right center; animation: fd-arm 4s ease-in-out infinite alternate; }
.scn-ford-doubts .letter-scroll { position:absolute; bottom:22%; left:35%; width:18px; height:24px; background: linear-gradient(180deg, #e8d8b0 0%, #c8b090 100%); border-radius: 5% 5% 10% 10%; box-shadow: 2px 2px 6px rgba(0,0,0,.3); animation: fd-scroll 8s ease-in-out infinite; }
.scn-ford-doubts .shadow-diagonal { position:absolute; top:0; right:0; width:40%; height:100%; background: linear-gradient(135deg, rgba(0,0,0,.1) 0%, transparent 60%); animation: fd-shadow 10s ease-in-out infinite alternate; }
@keyframes fd-beam { 0% { opacity:.4; transform: skewX(-10deg) translateX(0) } 50% { opacity:.8; transform: skewX(-8deg) translateX(5px) } 100% { opacity:.4; transform: skewX(-10deg) translateX(0) } }
@keyframes fd-ford { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(-2deg) } 60% { transform: translateY(0) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fd-arm { 0% { transform: rotate(-20deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-20deg) } }
@keyframes fd-scroll { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(3px,-2px) rotate(5deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes fd-shadow { 0% { transform: translateX(0); opacity:.5 } 50% { transform: translateX(-20px); opacity:.8 } 100% { transform: translateX(0); opacity:.5 } }

.scn-host-arrives-fray { background: linear-gradient(180deg, #4a3a2a 0%, #6a4a3a 30%, #8a6a4a 60%, #5a3a2a 100%), radial-gradient(ellipse at 50% 0%, #d4a850 0%, transparent 60%); }
.scn-host-arrives-fray .tavern-wall { position:absolute; inset:0 20% 0 0; background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%); box-shadow: inset -10px 0 20px rgba(0,0,0,.4); }
.scn-host-arrives-fray .tavern-door { position:absolute; bottom:0; left:30%; width:60px; height:80px; background: linear-gradient(180deg, #8a7050 0%, #5a4030 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.3); animation: hf-door 4s ease-in-out infinite alternate; }
.scn-host-arrives-fray .host-figure { position:absolute; bottom:18%; left:55%; width:28px; height:52px; background: linear-gradient(180deg, #c07040 0%, #905020 40%, #683818 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hf-host 5s ease-in-out infinite; }
.scn-host-arrives-fray .host-cape { position:absolute; bottom:18%; left:50%; width:40px; height:44px; background: linear-gradient(180deg, #8a2020 0%, #5a1010 100%); border-radius: 60% 40% 30% 70% / 50% 60% 40% 50%; transform-origin: top center; animation: hf-cape 3s ease-in-out infinite alternate; }
.scn-host-arrives-fray .tankard { position:absolute; bottom:22%; left:65%; width:12px; height:16px; background: linear-gradient(180deg, #b09060 0%, #705030 100%); border-radius: 20% 20% 10% 10%; box-shadow: 2px 2px 4px rgba(0,0,0,.3); animation: hf-tankard 6s ease-in-out infinite; }
.scn-host-arrives-fray .lantern-light { position:absolute; top:15%; right:10%; width:20px; height:24px; background: radial-gradient(circle, #ffd080 0%, #b08040 60%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 30px 8px rgba(255,208,128,.6), 0 0 60px 20px rgba(255,208,128,.3); animation: hf-lantern 3s ease-in-out infinite alternate; }
.scn-host-arrives-fray .floor-planks { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #5a4030 0%, #6a5040 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-host-arrives-fray .rafters { position:absolute; top:0; left:0; right:0; height:8%; background: linear-gradient(180deg, #4a3020 0%, #3a2010 100%); box-shadow: 0 4px 8px rgba(0,0,0,.4); }
@keyframes hf-door { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes hf-host { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(0deg) } 50% { transform: translateX(10px) translateY(0) rotate(1deg) } 75% { transform: translateX(15px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(20px) translateY(0) rotate(-1deg) } }
@keyframes hf-cape { 0% { transform: rotate(-5deg) scaleX(1) } 50% { transform: rotate(10deg) scaleX(1.05) } 100% { transform: rotate(-5deg) scaleX(1) } }
@keyframes hf-tankard { 0% { transform: translate(0,0) rotate(-3deg) } 50% { transform: translate(2px,-3px) rotate(5deg) } 100% { transform: translate(0,0) rotate(-3deg) } }
@keyframes hf-lantern { 0% { box-shadow: 0 0 20px 4px rgba(255,208,128,.4), 0 0 40px 10px rgba(255,208,128,.2); opacity:.85 } 50% { box-shadow: 0 0 40px 12px rgba(255,208,128,.7), 0 0 80px 24px rgba(255,208,128,.4); opacity:1 } 100% { box-shadow: 0 0 25px 6px rgba(255,208,128,.5), 0 0 50px 15px rgba(255,208,128,.25); opacity:.9 } }

.scn-sport-planned { background: linear-gradient(180deg, #e8d8b0 0%, #c8b890 30%, #a8a070 60%, #889060 100%), radial-gradient(ellipse at 30% 80%, #d4c098 0%, transparent 60%); }
.scn-sport-planned .meadow-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f0e8c8 0%, #d4c098 50%, #b8a878 100%); animation: sp-sky 10s ease-in-out infinite alternate; }
.scn-sport-planned .horizon-hill { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a9a5a 0%, #6a7a3a 100%); border-radius: 50% 50% 0 0 / 70% 60% 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,.15); animation: sp-hill 14s ease-in-out infinite alternate; }
.scn-sport-planned .figure-page { position:absolute; bottom:25%; left:20%; width:22px; height:46px; background: linear-gradient(180deg, #c07040 0%, #905020 40%, #683818 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sp-figure 6s ease-in-out infinite; }
.scn-sport-planned .figure-shallow { position:absolute; bottom:25%; left:40%; width:26px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sp-figure2 6s ease-in-out infinite .5s; }
.scn-sport-planned .figure-host { position:absolute; bottom:25%; left:60%; width:28px; height:52px; background: linear-gradient(180deg, #c07040 0%, #905020 40%, #683818 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sp-figure 6s ease-in-out infinite 1s; }
.scn-sport-planned .wrestling-staff { position:absolute; bottom:20%; left:32%; width:4px; height:40px; background: linear-gradient(180deg, #8a7050 0%, #5a4030 100%); border-radius: 2px; transform: rotate(15deg); animation: sp-staff 5s ease-in-out infinite alternate; }
.scn-sport-planned .grass-blades { position:absolute; bottom:15%; left:5%; right:5%; height:20%; background: radial-gradient(ellipse at 20% 80%, #7a8a4a 0%, transparent 40%), radial-gradient(ellipse at 80% 70%, #7a8a4a 0%, transparent 40%); filter: blur(2px); animation: sp-grass 12s ease-in-out infinite alternate; }
.scn-sport-planned .butterflies { position:absolute; top:25%; left:15%; width:60px; height:40px; background: radial-gradient(ellipse at 30% 50%, #d4a060 0%, transparent 30%), radial-gradient(ellipse at 70% 50%, #d4a060 0%, transparent 30%); filter: blur(3px); animation: sp-butterflies 20s linear infinite; }
@keyframes sp-sky { 0% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.01) } 100% { opacity:.85; transform: scale(1) } }
@keyframes sp-hill { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.005) } 100% { transform: translateY(0) scale(1) } }
@keyframes sp-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(0deg) } 50% { transform: translateX(8px) translateY(0) rotate(1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(16px) translateY(0) rotate(-1deg) } }
@keyframes sp-figure2 { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 25% { transform: translateX(-3px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(-6px) translateY(0) rotate(-2deg) } 75% { transform: translateX(-9px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(-12px) translateY(0) rotate(2deg) } }
@keyframes sp-staff { 0% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(20deg) translateX(2px) } 100% { transform: rotate(10deg) translateX(0) } }
@keyframes sp-grass { 0% { opacity:.5; filter: blur(2px) } 50% { opacity:.8; filter: blur(1px) } 100% { opacity:.5; filter: blur(2px) } }
@keyframes sp-butterflies { 0% { transform: translateX(0) translateY(0) rotate(0deg); opacity:0 } 10% { opacity:.6 } 50% { transform: translateX(80px) translateY(-20px) rotate(180deg); opacity:.4 } 90% { opacity:.6 } 100% { transform: translateX(160px) translateY(0) rotate(360deg); opacity:0 } }

.scn-falstaff-needs-thrift {
  background: linear-gradient(180deg, #c8a87a 0%, #8a6a4a 50%, #4a2a1a 100%), radial-gradient(ellipse at 30% 40%, #deb887 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-falstaff-needs-thrift .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(135deg, #d4b48c 0%, #b8956a 50%, #a07850 100%);
}
.scn-falstaff-needs-thrift .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.3);
}
.scn-falstaff-needs-thrift .table {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #6a4a2a 0%, #8a6a4a 50%, #6a4a2a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-falstaff-needs-thrift .chair {
  position: absolute; bottom: 22%; left: 40%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 6px;
  transform: rotate(-5deg);
}
.scn-falstaff-needs-thrift .figure-falstaff {
  position: absolute; bottom: 18%; left: 35%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fnt-wobble 4s ease-in-out infinite;
}
.scn-falstaff-needs-thrift .figure-host {
  position: absolute; bottom: 18%; left: 55%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fnt-bow 6s ease-in-out infinite;
}
.scn-falstaff-needs-thrift .lantern {
  position: absolute; top: 18%; left: 30%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffd070 0%, #c08040 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 24px 10px #ffd070, 0 0 48px 20px rgba(255,208,112,0.4);
  animation: fnt-glow 3s ease-in-out infinite alternate;
}
.scn-falstaff-needs-thrift .tankard {
  position: absolute; bottom: 26%; left: 48%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: fnt-lift 5s ease-in-out infinite;
}
@keyframes fnt-wobble {
  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(-2deg); }
}
@keyframes fnt-bow {
  0% { transform: rotate(0deg); }
  30% { transform: rotate(15deg); }
  60% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes fnt-glow {
  0% { opacity: 0.7; box-shadow: 0 0 16px 6px #ffd070, 0 0 32px 12px rgba(255,208,112,0.3); }
  50% { opacity: 1; box-shadow: 0 0 30px 12px #ffe090, 0 0 60px 24px rgba(255,224,144,0.5); }
  100% { opacity: 0.8; box-shadow: 0 0 20px 8px #ffd070, 0 0 40px 16px rgba(255,208,112,0.35); }
}
@keyframes fnt-lift {
  0% { transform: translateY(0); }
  40% { transform: translateY(-6px) rotate(5deg); }
  70% { transform: translateY(-2px) rotate(-3deg); }
  100% { transform: translateY(0); }
}

.scn-bardolph-tapster {
  background: linear-gradient(180deg, #c8b090 0%, #8a7050 50%, #4a3a2a 100%), radial-gradient(ellipse at 50% 30%, #deb887 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-bardolph-tapster .bar-counter {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: inset 0 -6px 10px rgba(0,0,0,0.4);
}
.scn-bardolph-tapster .bar-top {
  position: absolute; bottom: 30%; left: 12%; right: 12%; height: 6px;
  background: linear-gradient(90deg, #a08060 0%, #c8a880 50%, #a08060 100%);
  border-radius: 4px;
}
.scn-bardolph-tapster .cask {
  position: absolute; bottom: 18%; left: 65%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a0a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
}
.scn-bardolph-tapster .figure-bardolph {
  position: absolute; bottom: 20%; left: 25%; width: 45px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bt-scrub 5s ease-in-out infinite;
}
.scn-bardolph-tapster .foam {
  position: absolute; bottom: 32%; left: 38%; width: 22px; height: 14px;
  background: radial-gradient(circle, #f8f0d0 0%, #d8d0a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 4px rgba(248,240,208,0.5);
  animation: bt-froth 3s ease-in-out infinite;
}
.scn-bardolph-tapster .tankard {
  position: absolute; bottom: 28%; left: 35%; width: 24px; height: 34px;
  background: linear-gradient(180deg, #c8a880 0%, #887050 100%);
  border-radius: 8px 8px 10px 10px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: bt-lift 4s ease-in-out infinite;
}
.scn-bardolph-tapster .signboard {
  position: absolute; top: 10%; left: 50%; width: 80px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b08050 0%, #805020 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: bt-swing 6s ease-in-out infinite;
}
@keyframes bt-scrub {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(8px) rotate(3deg); }
  60% { transform: translateX(0) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bt-froth {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.2) translateY(-3px); opacity: 1; }
  100% { transform: scale(1); opacity: 0.8; }
}
@keyframes bt-lift {
  0% { transform: translateY(0); }
  40% { transform: translateY(-8px) rotate(8deg); }
  70% { transform: translateY(-2px) rotate(-5deg); }
  100% { transform: translateY(0); }
}
@keyframes bt-swing {
  0% { transform: translateX(-50%) rotate(-3deg); }
  25% { transform: translateX(-50%) rotate(3deg); }
  50% { transform: translateX(-50%) rotate(-2deg); }
  75% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-3deg); }
}

.scn-falstaff-out-at-heels {
  background: linear-gradient(180deg, #bc9c7c 0%, #8a6a4a 50%, #4a2a1a 100%), radial-gradient(ellipse at 40% 60%, #d4b48c 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-falstaff-out-at-heels .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a0a 100%);
  box-shadow: inset 0 6px 10px rgba(0,0,0,0.3);
}
.scn-falstaff-out-at-heels .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 75%;
  background: linear-gradient(135deg, #c8a87a 0%, #a07850 100%);
}
.scn-falstaff-out-at-heels .chest {
  position: absolute; bottom: 20%; left: 15%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: foh-open 7s ease-in-out infinite;
}
.scn-falstaff-out-at-heels .coin-pile {
  position: absolute; bottom: 25%; left: 20%; width: 30px; height: 15px;
  background: radial-gradient(ellipse, #f0d080 0%, #c0a040 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #f0d080;
  animation: foh-pile 5s ease-in-out infinite alternate;
}
.scn-falstaff-out-at-heels .hand {
  position: absolute; bottom: 28%; left: 30%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #d0b090 0%, #b09070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: foh-reach 4s ease-in-out infinite;
}
.scn-falstaff-out-at-heels .figure-falstaff {
  position: absolute; bottom: 15%; left: 50%; width: 55px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: foh-slouch 6s ease-in-out infinite;
}
.scn-falstaff-out-at-heels .candle {
  position: absolute; top: 20%; left: 60%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #f0d080 0%, #e0b060 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px #f0d080, 0 0 40px 16px rgba(240,208,128,0.3);
  animation: foh-flicker 2s ease-in-out infinite alternate;
}
@keyframes foh-open {
  0% { transform: scaleY(1); }
  30% { transform: scaleY(0.8); }
  60% { transform: scaleY(1); }
  100% { transform: scaleY(1); }
}
@keyframes foh-pile {
  0% { transform: scale(1); opacity: 0.9; }
  100% { transform: scale(1.3) translateY(-4px); opacity: 1; }
}
@keyframes foh-reach {
  0% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-10px) rotate(15deg); }
  70% { transform: translateY(-5px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes foh-slouch {
  0% { transform: translateX(-50%) rotate(0deg); }
  20% { transform: translateX(-50%) rotate(-5deg) scaleY(0.95); }
  40% { transform: translateX(-50%) rotate(2deg) scaleY(1); }
  60% { transform: translateX(-50%) rotate(-3deg) scaleY(0.97); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes foh-flicker {
  0% { opacity: 0.7; box-shadow: 0 0 12px 4px #f0d080, 0 0 24px 8px rgba(240,208,128,0.2); }
  50% { opacity: 1; box-shadow: 0 0 28px 12px #ffe098, 0 0 56px 24px rgba(255,224,152,0.5); }
  100% { opacity: 0.8; box-shadow: 0 0 18px 6px #f0d080, 0 0 36px 12px rgba(240,208,128,0.3); }
}

.scn-falstaff-wooing-plot {
  background: linear-gradient(180deg, #d4b090 0%, #a07850 50%, #6a4a2a 100%), radial-gradient(ellipse at 30% 40%, #e8c8a0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-falstaff-wooing-plot .curtain-bg {
  position: absolute; top: 0; left: 0; right: 0; height: 100%;
  background: linear-gradient(135deg, #a08060 0%, #806040 50%, #604020 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  animation: fwp-curtain 10s ease-in-out infinite alternate;
}
.scn-falstaff-wooing-plot .wall {
  position: absolute; top: 10%; left: 10%; right: 10%; height: 80%;
  background: linear-gradient(180deg, #c8a880 0%, #a08060 100%);
  border-radius: 20px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
}
.scn-falstaff-wooing-plot .window {
  position: absolute; top: 20%; left: 20%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 4px 4px 10px 10px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: fwp-light 8s ease-in-out infinite;
}
.scn-falstaff-wooing-plot .figure-falstaff {
  position: absolute; bottom: 18%; left: 35%; width: 55px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fwp-bow 5s ease-in-out infinite;
}
.scn-falstaff-wooing-plot .figure-fordwife {
  position: absolute; bottom: 22%; left: 55%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fwp-turn 6s ease-in-out infinite;
}
.scn-falstaff-wooing-plot .rose {
  position: absolute; bottom: 30%; left: 48%; width: 12px; height: 12px;
  background: radial-gradient(circle, #b87878 0%, #702243 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(184,120,120,0.5);
  animation: fwp-rose-bloom 4s ease-in-out infinite;
}
.scn-falstaff-wooing-plot .lantern {
  position: absolute; top: 15%; left: 50%; width: 14px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd070 0%, #c08040 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 12px #ffd070, 0 0 60px 24px rgba(255,208,112,0.4);
  animation: fwp-glow 3s ease-in-out infinite alternate;
}
@keyframes fwp-curtain {
  0% { opacity: 0.6; transform: translateY(0); }
  50% { opacity: 0.8; transform: translateY(-5px); }
  100% { opacity: 0.7; transform: translateY(0); }
}
@keyframes fwp-light {
  0% { opacity: 0.5; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); }
  50% { opacity: 0.9; box-shadow: inset 0 0 20px rgba(180,160,120,0.4); }
  100% { opacity: 0.6; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); }
}
@keyframes fwp-bow {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(5px) rotate(10deg); }
  60% { transform: translateX(-5px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fwp-turn {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(10deg); }
  50% { transform: rotate(-8deg); }
  75% { transform: rotate(5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes fwp-rose-bloom {
  0% { transform: scale(0.8); opacity: 0.6; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.7; }
}
@keyframes fwp-glow {
  0% { opacity: 0.7; box-shadow: 0 0 20px 8px #ffd070, 0 0 40px 16px rgba(255,208,112,0.3); }
  50% { opacity: 1; box-shadow: 0 0 36px 16px #ffe090, 0 0 72px 32px rgba(255,224,144,0.5); }
  100% { opacity: 0.8; box-shadow: 0 0 24px 10px #ffd070, 0 0 48px 20px rgba(255,208,112,0.35); }
}

.scn-angels-and-oeillades { background: linear-gradient(180deg, #f5e6c8 0%, #e8d4a0 40%, #d4b87a 100%), radial-gradient(ellipse at 30% 80%, #eed29a 0%, transparent 70%); }
.scn-angels-and-oeillades .table   { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #c9a96e 0%, #a07a45 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(60,40,20,.5); }
.scn-angels-and-oeillades .window  { position:absolute; top:10%; left:65%; width:30%; height:50%; background: linear-gradient(135deg, #ffe9c0 0%, #fcd694 100%); border: 6px solid #8b6e3d; border-radius: 8% 8% 4% 4%; box-shadow: 0 0 30px 10px rgba(255,215,160,.4); animation: ao-window 12s ease-in-out infinite alternate; }
.scn-angels-and-oeillades .purse   { position:absolute; bottom:40%; left:40%; width:10%; height:12%; background: radial-gradient(ellipse 80% 60% at 50% 50%, #b88a4a 0%, #7a5d2a 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 6px 10px rgba(60,40,20,.5); animation: ao-purse 4s ease-in-out infinite; }
.scn-angels-and-oeillades .coin    { position:absolute; bottom:38%; width:3%; height:4%; background: radial-gradient(circle, #f0d478 0%, #c89f30 70%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.3), inset 0 -2px 2px rgba(0,0,0,.2); }
.scn-angels-and-oeillades .coin-1  { left:50%; animation: ao-coin 8s ease-in-out infinite; }
.scn-angels-and-oeillades .coin-2  { left:54%; animation: ao-coin 8s ease-in-out infinite 2s; }
.scn-angels-and-oeillades .coin-3  { left:58%; animation: ao-coin 8s ease-in-out infinite 4s; }
.scn-angels-and-oeillades .figure  { position:absolute; bottom:36%; left:48%; width:8%; height:20%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ao-walk 6s ease-in-out infinite; }
.scn-angels-and-oeillades .anchor  { position:absolute; bottom:34%; left:30%; width:6%; height:12%; background: radial-gradient(ellipse 60% 100% at 50% 50%, #7a6a5a 0%, #4a3a2a 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 4px 6px rgba(0,0,0,.4); animation: ao-anchor 10s ease-in-out infinite alternate; }
@keyframes ao-window  { 0% { opacity:.85 } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(255,215,160,.6) } 100% { opacity:.9 } }
@keyframes ao-purse   { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.03) translateY(-2px) } }
@keyframes ao-coin    { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(15deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ao-walk    { 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(0deg) } }
@keyframes ao-anchor   { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }

.scn-sun-on-dunghill { background: linear-gradient(180deg, #ffdb8c 0%, #fdd07a 30%, #e8b85a 100%), radial-gradient(ellipse at 50% 100%, #fde68a 0%, transparent 70%); }
.scn-sun-on-dunghill .sky      { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #ffe5a0 0%, #ffd47a 100%); animation: sd-sky 20s ease-in-out infinite alternate; }
.scn-sun-on-dunghill .ground   { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #a07a45 0%, #7a5a30 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 20px 30px rgba(40,20,10,.6); }
.scn-sun-on-dunghill .sun      { position:absolute; top:12%; left:20%; width:10%; height:10%; background: radial-gradient(circle, #ffedb0 0%, #fdd47a 60%, #e8a83a 100%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,220,100,.5), 0 0 120px 40px rgba(255,200,70,.3); animation: sd-sun 15s ease-in-out infinite alternate; }
.scn-sun-on-dunghill .dunghill { position:absolute; bottom:28%; left:50%; width:30%; height:18%; background: radial-gradient(ellipse 80% 60% at 50% 50%, #7a5a30 0%, #4a3018 70%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); animation: sd-dunghill 8s ease-in-out infinite alternate; }
.scn-sun-on-dunghill .ray      { position:absolute; top:15%; width:120%; height:2%; background: linear-gradient(90deg, transparent, rgba(255,240,200,.4), transparent); transform: rotate(20deg); animation: sd-ray 6s ease-in-out infinite; }
.scn-sun-on-dunghill .ray-1    { left:-10%; transform-origin: right center; animation-delay: 0s; }
.scn-sun-on-dunghill .ray-2    { left:-20%; top:20%; transform: rotate(-15deg); animation-duration: 8s; animation-delay: -3s; }
.scn-sun-on-dunghill .smoke    { position:absolute; bottom:45%; left:55%; width:4%; height:8%; background: radial-gradient(ellipse 60% 100% at 50% 50%, rgba(200,180,150,.3) 0%, transparent 80%); border-radius: 50%; filter: blur(3px); animation: sd-smoke 5s ease-in-out infinite; }
@keyframes sd-sky    { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes sd-sun    { 0% { transform: scale(.95) translateY(0) } 50% { transform: scale(1.05) translateY(-3px) } 100% { transform: scale(.95) translateY(0) } }
@keyframes sd-dunghill { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.04) } 100% { transform: scaleY(1) } }
@keyframes sd-ray    { 0% { opacity:0; transform: rotate(20deg) translateX(-20px) } 50% { opacity:.6; transform: rotate(20deg) translateX(0) } 100% { opacity:0; transform: rotate(20deg) translateX(20px) } }
@keyframes sd-smoke  { 0%,100% { transform: translateY(0) scale(1); opacity:.3 } 50% { transform: translateY(-10px) scale(1.2); opacity:.6 } }

.scn-item-falstaffs-letter-page { background: linear-gradient(180deg, #d4c4a8 0%, #c4b090 50%, #b09878 100%), radial-gradient(ellipse at 50% 60%, #c8b89a 0%, transparent 70%); }
.scn-item-falstaffs-letter-page .desk  { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #b09878 0%, #8a7050 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 8px 12px rgba(40,20,10,.4); }
.scn-item-falstaffs-letter-page .paper { position:absolute; bottom:30%; left:30%; width:45%; height:40%; background: linear-gradient(135deg, #faf3e0 0%, #ecdcc0 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 8px rgba(40,20,10,.3); transform: rotate(-2deg); animation: fl-paper 10s ease-in-out infinite alternate; }
.scn-item-falstaffs-letter-page .inkwell { position:absolute; bottom:26%; left:25%; width:8%; height:12%; background: radial-gradient(ellipse 70% 80% at 50% 40%, #4a3a2a 0%, #1a0a0a 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,.5); animation: fl-inkwell 8s ease-in-out infinite; }
.scn-item-falstaffs-letter-page .quill { position:absolute; bottom:30%; left:22%; width:4%; height:25%; background: linear-gradient(180deg, #f0e0c0 0%, #c8b090 50%, #8a7050 100%); border-radius: 20% 20% 40% 40%; transform: rotate(15deg); transform-origin: bottom center; animation: fl-quill 5s ease-in-out infinite alternate; }
.scn-item-falstaffs-letter-page .candle { position:absolute; bottom:34%; right:22%; width:6%; height:20%; background: linear-gradient(180deg, #f0d4a0 0%, #c8a878 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(40,20,10,.4); }
.scn-item-falstaffs-letter-page .flame { position:absolute; bottom:52%; right:22.5%; width:4%; height:8%; background: radial-gradient(circle at 50% 100%, #ffe8a0 0%, #ffa030 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,180,60,.5); animation: fl-flame 2s ease-in-out infinite alternate; }
.scn-item-falstaffs-letter-page .letter-text-line { position:absolute; left:32%; width:30%; height:1%; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 20%, #4a3a2a 40%, #6a5a4a 60%, #4a3a2a 80%, #6a5a4a 100%); border-radius: 2px; opacity:.6; }
.scn-item-falstaffs-letter-page .line-1 { bottom:55%; animation: fl-text 4s ease-in-out infinite; }
.scn-item-falstaffs-letter-page .line-2 { bottom:51%; width:20%; left:34%; animation: fl-text 4s ease-in-out infinite 1s; }
@keyframes fl-paper   { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes fl-inkwell { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes fl-quill   { 0% { transform: rotate(15deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(14deg) } }
@keyframes fl-flame   { 0% { transform: scaleY(.9); box-shadow: 0 0 15px 6px rgba(255,180,60,.4) } 50% { transform: scaleY(1.1); box-shadow: 0 0 25px 10px rgba(255,200,80,.6) } 100% { transform: scaleY(.95); box-shadow: 0 0 18px 8px rgba(255,180,60,.5) } }
@keyframes fl-text    { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.4 } }

.scn-revenge-humours { background: linear-gradient(180deg, #2a1a1a 0%, #3a2222 50%, #4a2a2a 100%), radial-gradient(ellipse at 70% 50%, #5a2a2a 0%, transparent 70%); }
.scn-revenge-humours .bg-wall  { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.6); }
.scn-revenge-humours .table   { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-revenge-humours .dagger  { position:absolute; bottom:38%; left:45%; width:4%; height:20%; background: linear-gradient(180deg, #c8c0b0 0%, #a09888 50%, #706858 100%); border-radius: 10% 10% 30% 30%; transform: rotate(25deg); transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: rh-dagger 3s ease-in-out infinite alternate; }
.scn-revenge-humours .hand    { position:absolute; bottom:36%; left:42%; width:10%; height:16%; background: radial-gradient(ellipse 70% 80% at 50% 30%, #6a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rh-hand 3s ease-in-out infinite alternate; }
.scn-revenge-humours .clasp   { position:absolute; bottom:42%; left:44%; width:3%; height:4%; background: radial-gradient(circle, #c8a878 0%, #a07850 100%); border-radius: 50%; box-shadow: 0 0 10px 3px rgba(200,168,120,.4); animation: rh-clasp 4s ease-in-out infinite; }
.scn-revenge-humours .shadow-figure { position:absolute; bottom:28%; right:10%; width:20%; height:50%; background: radial-gradient(ellipse 80% 90% at 50% 100%, #1a0a0a 0%, transparent 80%); border-radius: 40% 40% 20% 20%; filter: blur(4px); animation: rh-shadow 6s ease-in-out infinite alternate; }
.scn-revenge-humours .sparkle { position:absolute; bottom:50%; left:50%; width:2%; height:2%; background: radial-gradient(circle, #ffe0a0 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 10px 3px rgba(255,224,160,.6); animation: rh-sparkle 2s ease-in-out infinite; }
@keyframes rh-dagger  { 0% { transform: rotate(25deg) translateX(0) } 50% { transform: rotate(30deg) translateX(3px) } 100% { transform: rotate(25deg) translateX(0) } }
@keyframes rh-hand    { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes rh-clasp   { 0%,100% { transform: scale(1) } 50% { transform: scale(1.1) } }
@keyframes rh-shadow  { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.3 } }
@keyframes rh-sparkle { 0% { opacity:0; transform: scale(.5) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:0; transform: scale(.5) } }

/* -- Scene: pay-nay-word (funny, dim interior) -- */
.scn-pay-nay-word {
  background: linear-gradient(180deg, #2a1f1a 0%, #3d2b20 50%, #1e1410 100%), radial-gradient(ellipse at 30% 40%, #3d2b20 0%, transparent 70%);
}
.scn-pay-nay-word .backdrop {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a3628 0%, #2a1f1a 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; animation: pnw-fade 8s ease-in-out infinite alternate;
}
.scn-pay-nay-word .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 8%; background: linear-gradient(180deg, #5a4030 0%, #4a3020 100%); border-radius: 10px; box-shadow: 0 4px 10px rgba(0,0,0,.6); animation: pnw-float 6s ease-in-out infinite;
}
.scn-pay-nay-word .candle {
  position: absolute; bottom: 23%; left: 50%; width: 8px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #f0d090 0%, #b08040 50%, #6a4020 100%); border-radius: 4px; animation: pnw-flicker 2s ease-in-out infinite alternate;
}
.scn-pay-nay-word .figure-left {
  position: absolute; bottom: 22%; left: 20%; width: 40px; height: 70px; background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1e1410 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: pnw-bob 3s ease-in-out infinite;
}
.scn-pay-nay-word .figure-right {
  position: absolute; bottom: 22%; right: 20%; width: 40px; height: 70px; background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1e1410 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: pnw-bob 3s ease-in-out 0.5s infinite;
}
.scn-pay-nay-word .boy {
  position: absolute; bottom: 18%; left: 45%; width: 25px; height: 50px; background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1f1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pnw-headturn 5s ease-in-out infinite;
}
.scn-pay-nay-word .whisper-arc {
  position: absolute; bottom: 32%; left: 30%; right: 30%; height: 10px; background: radial-gradient(ellipse at 50% 0%, rgba(240,220,160,.3) 0%, transparent 80%); filter: blur(4px); animation: pnw-breathe 4s ease-in-out infinite alternate;
}
@keyframes pnw-fade { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .75; } }
@keyframes pnw-float { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } }
@keyframes pnw-flicker { 0% { opacity: .8; box-shadow: 0 0 12px 4px #f0d090; } 100% { opacity: 1; box-shadow: 0 0 20px 8px #f0d090; } }
@keyframes pnw-bob { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-4px); } }
@keyframes pnw-headturn { 0%,100% { transform: rotate(0deg); } 30% { transform: rotate(-10deg); } 60% { transform: rotate(10deg); } }
@keyframes pnw-breathe { 0% { opacity: .2; transform: scaleY(1); } 100% { opacity: .5; transform: scaleY(1.5); } }

/* -- Scene: cupid-carriers (tense, dim interior) -- */
.scn-cupid-carriers {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #0e0e1e 100%), radial-gradient(ellipse at 60% 50%, #2a2a3e 0%, transparent 70%);
}
.scn-cupid-carriers .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); animation: cpc-pulse 12s ease-in-out infinite alternate;
}
.scn-cupid-carriers .door {
  position: absolute; right: 5%; bottom: 10%; width: 70px; height: 120px; background: linear-gradient(180deg, #3a2a2a 0%, #1e1414 100%); border-radius: 4px 4px 0 0; box-shadow: 0 0 20px rgba(0,0,0,.5); animation: cpc-sway 15s ease-in-out infinite;
}
.scn-cupid-carriers .man {
  position: absolute; bottom: 12%; left: 15%; width: 45px; height: 90px; background: radial-gradient(ellipse at 50% 30%, #2a1a2e 0%, #1a0e1e 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: cpc-tremble 2s ease-in-out infinite;
}
.scn-cupid-carriers .purse {
  position: absolute; bottom: 25%; left: 12%; width: 12px; height: 16px; background: radial-gradient(circle, #6a6040 0%, #3a3020 100%); border-radius: 30% 30% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.6); animation: cpc-grip 2s ease-in-out infinite;
}
.scn-cupid-carriers .woman {
  position: absolute; bottom: 12%; left: 55%; width: 40px; height: 80px; background: radial-gradient(ellipse at 50% 30%, #3a2a3a 0%, #1e141e 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; animation: cpc-leave 6s ease-in-out infinite;
}
.scn-cupid-carriers .boy {
  position: absolute; bottom: 10%; left: 62%; width: 20px; height: 40px; background: radial-gradient(ellipse at 50% 30%, #3a2a3a 0%, #1e141e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cpc-leave 6s ease-in-out 0.5s infinite;
}
.scn-cupid-carriers .shadow-pool {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); animation: cpc-throb 3s ease-in-out infinite alternate;
}
@keyframes cpc-pulse { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes cpc-sway { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes cpc-tremble { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-1px); } 75% { transform: rotate(2deg) translateY(1px); } }
@keyframes cpc-grip { 0%,100% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(2px,-2px) rotate(10deg); } }
@keyframes cpc-leave { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(15px) scaleX(0.9); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes cpc-throb { 0% { opacity: .5; } 100% { opacity: .8; } }

/* -- Scene: sack-morning-draught (calm, dim interior) -- */
.scn-sack-morning-draught {
  background: linear-gradient(180deg, #3a3a2a 0%, #4a4a3a 50%, #2a2a1a 100%), radial-gradient(ellipse at 40% 60%, #4a4a3a 0%, transparent 70%);
}
.scn-sack-morning-draught .bg-warm {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); animation: smd-soft 18s ease-in-out infinite alternate;
}
.scn-sack-morning-draught .table {
  position: absolute; bottom: 20%; left: 20%; right: 30%; height: 8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: smd-rest 10s ease-in-out infinite;
}
.scn-sack-morning-draught .chair {
  position: absolute; bottom: 22%; right: 15%; width: 30px; height: 50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 30% 30%; transform: rotate(-5deg); animation: smd-creak 8s ease-in-out infinite;
}
.scn-sack-morning-draught .tankard {
  position: absolute; bottom: 28%; left: 30%; width: 20px; height: 30px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: smd-sway 6s ease-in-out infinite;
}
.scn-sack-morning-draught .figure-seated {
  position: absolute; bottom: 18%; left: 28%; width: 50px; height: 80px; background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: smd-breathe 5s ease-in-out infinite;
}
.scn-sack-morning-draught .steam {
  position: absolute; bottom: 38%; left: 30%; width: 20px; height: 15px; background: radial-gradient(ellipse at 50% 50%, rgba(220,210,180,.3) 0%, transparent 60%); filter: blur(6px); animation: smd-rise 12s linear infinite;
}
.scn-sack-morning-draught .hearth-glow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%; background: radial-gradient(ellipse at 70% 100%, rgba(240,200,120,.4) 0%, transparent 80%); animation: smd-glimmer 4s ease-in-out infinite alternate;
}
@keyframes smd-soft { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes smd-rest { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes smd-creak { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(-3deg); } }
@keyframes smd-sway { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } }
@keyframes smd-breathe { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02) translateY(-1px); } }
@keyframes smd-rise { 0% { transform: translateY(0) scale(1); opacity: .4; } 50% { transform: translateY(-20px) scale(1.5); opacity: .6; } 100% { transform: translateY(-40px) scale(2); opacity: 0; } }
@keyframes smd-glimmer { 0% { opacity: .2; } 100% { opacity: .5; } }

/* -- Scene: brook-arrives (warm, dim interior) -- */
.scn-brook-arrives {
  background: linear-gradient(180deg, #4a2a1a 0%, #5a3a2a 50%, #3a1a0a 100%), radial-gradient(ellipse at 50% 40%, #5a3a2a 0%, transparent 70%);
}
.scn-brook-arrives .room-back {
  position: absolute; inset: 0; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 0 0 20% 20%; animation: bar-warm 14s ease-in-out infinite alternate;
}
.scn-brook-arrives .doorway {
  position: absolute; right: 10%; bottom: 10%; width: 50px; height: 130px; background: linear-gradient(180deg, #4a2a1a 0%, #2a0a00 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: bar-door 20s ease-in-out infinite;
}
.scn-brook-arrives .figure-host {
  position: absolute; bottom: 15%; left: 20%; width: 50px; height: 100px; background: radial-gradient(ellipse at 50% 30%, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: bar-greeting 5s ease-in-out infinite;
}
.scn-brook-arrives .figure-guest {
  position: absolute; bottom: 15%; right: 20%; width: 50px; height: 100px; background: radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, #2a0a00 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: bar-approach 7s ease-in-out infinite;
}
.scn-brook-arrives .handshake {
  position: absolute; bottom: 30%; left: 44%; width: 12%; height: 6%; background: radial-gradient(ellipse at 50% 50%, #6a4a3a 0%, #4a2a1a 100%); border-radius: 40% 40% 20% 20%; transform: translateX(-50%); animation: bar-clasp 4s ease-in-out infinite;
}
.scn-brook-arrives .lantern {
  position: absolute; bottom: 15%; left: 10%; width: 12px; height: 18px; background: radial-gradient(circle at 50% 60%, #ffd080 0%, #b08040 60%, #5a3010 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 6px #ffd080; animation: bar-lantern 3s ease-in-out infinite alternate;
}
.scn-brook-arrives .welcome-glow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: radial-gradient(ellipse at 50% 100%, rgba(255,200,100,.3) 0%, transparent 70%); animation: bar-glow 6s ease-in-out infinite alternate;
}
@keyframes bar-warm { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes bar-door { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } }
@keyframes bar-greeting { 0%,100% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(5deg) translateY(-3px); } 60% { transform: rotate(-3deg) translateY(-1px); } }
@keyframes bar-approach { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-10px) scaleX(0.95); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes bar-clasp { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.1) rotate(2deg); } }
@keyframes bar-lantern { 0% { opacity: .8; box-shadow: 0 0 15px 4px #ffd080; } 100% { opacity: 1; box-shadow: 0 0 30px 10px #ffd080; } }
@keyframes bar-glow { 0% { opacity: .2; } 100% { opacity: .5; } }

/* castalion-king-urinal */
.scn-castalion-king-urinal { background: linear-gradient(180deg, #87ceeb 0%, #b8e0f4 40%, #fde8c4 100%), radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.4) 0%, transparent 70%); }
.scn-castalion-king-urinal .sky-castalion { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #6bb7e8 0%, #b0d8f0 100%); animation: cku-sky 12s ease-in-out infinite alternate; }
.scn-castalion-king-urinal .sun-castalion { position:absolute; top:12%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #fff8d0 0%, #ffd580 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,213,128,0.6); animation: cku-sun 8s ease-in-out infinite; }
.scn-castalion-king-urinal .wall-castalion { position:absolute; bottom:35%; left:0; right:0; height:40%; background: linear-gradient(90deg, #b59a7a 0%, #d4bc9e 30%, #e6d2b8 100%); border-radius: 0 0 20% 20% / 0 0 8% 8%; box-shadow: inset 0 -10px 15px rgba(0,0,0,0.2); }
.scn-castalion-king-urinal .ground-castalion { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8b7a5a 0%, #6b5a3a 100%); }
.scn-castalion-king-urinal .figure-castalion { position:absolute; bottom:28%; left:35%; width:40px; 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: cku-figure 4s ease-in-out infinite; }
.scn-castalion-king-urinal .helmet-castalion { position:absolute; bottom:68%; left:34%; width:34px; height:20px; background: linear-gradient(180deg, #c8a060 0%, #a07840 100%); border-radius: 40% 40% 0 0; transform: translateX(-2px); animation: cku-helmet 4s ease-in-out infinite; }
.scn-castalion-king-urinal .urinal-castalion { position:absolute; bottom:32%; left:50%; width:14px; height:18px; background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); border-radius: 40% 40% 10% 10%; transform: rotate(15deg); box-shadow: 0 4px 6px rgba(0,0,0,0.3); animation: cku-urinal 2s ease-in-out infinite alternate; }
.scn-castalion-king-urinal .shadow-castalion { position:absolute; bottom:28%; left:32%; width:50px; height:6px; background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(3px); animation: cku-shadow 4s ease-in-out infinite; }
@keyframes cku-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes cku-sun { 0%,100%{transform:scale(1) translate(0,0); opacity:0.9} 50%{transform:scale(1.05) translate(5px,-3px); opacity:1} }
@keyframes cku-figure { 0%{transform:translate(0,0) rotate(-1deg)} 25%{transform:translate(4px,-2px) rotate(1deg)} 50%{transform:translate(8px,0) rotate(-1deg)} 75%{transform:translate(12px,-2px) rotate(1deg)} 100%{transform:translate(16px,0) rotate(0deg)} }
@keyframes cku-helmet { 0%,100%{transform:translate(-2px,0) rotate(0)} 50%{transform:translate(-2px,-1px) rotate(3deg)} }
@keyframes cku-urinal { 0%{transform:rotate(10deg) scale(1)} 100%{transform:rotate(20deg) scale(1.1)} }
@keyframes cku-shadow { 0%,100%{width:50px; left:32%} 50%{width:60px; left:30%} }

/* mock-water-joke */
.scn-mock-water-joke { background: linear-gradient(180deg, #f0d8b0 0%, #e0c8a0 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%); }
.scn-mock-water-joke .wall-mockwater { position:absolute; inset:0; background: linear-gradient(90deg, #d4bc9e 0%, #b59a7a 100%); }
.scn-mock-water-joke .table-mockwater { position:absolute; bottom:12%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 4% 4% 0 0; box-shadow: 0 6px 10px rgba(0,0,0,0.3); }
.scn-mock-water-joke .jug-mockwater { position:absolute; bottom:32%; left:50%; width:30px; height:40px; transform:translate(-50%,0); background: linear-gradient(180deg, #c8a060 0%, #a07840 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 8px 12px rgba(0,0,0,0.4); animation: mwj-jug 6s ease-in-out infinite; }
.scn-mock-water-joke .hand-left-mockwater { position:absolute; bottom:28%; left:38%; width:20px; height:30px; background: linear-gradient(180deg, #e0c090 0%, #c0a080 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-20deg); transform-origin: bottom right; animation: mwj-hand-l 3s ease-in-out infinite alternate; }
.scn-mock-water-joke .hand-right-mockwater { position:absolute; bottom:28%; left:52%; width:20px; height:30px; background: linear-gradient(180deg, #e0c090 0%, #c0a080 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(20deg); transform-origin: bottom left; animation: mwj-hand-r 3s ease-in-out infinite alternate; }
.scn-mock-water-joke .splash-left-mockwater { position:absolute; bottom:38%; left:40%; width:8px; height:12px; background: radial-gradient(circle, #b0d8f0 0%, transparent 100%); border-radius:50%; filter: blur(2px); animation: mwj-splash 1.5s ease-in-out infinite; }
.scn-mock-water-joke .splash-right-mockwater { position:absolute; bottom:38%; left:52%; width:8px; height:12px; background: radial-gradient(circle, #b0d8f0 0%, transparent 100%); border-radius:50%; filter: blur(2px); animation: mwj-splash 1.5s ease-in-out infinite 0.75s; }
@keyframes mwj-jug { 0%,100%{transform:translate(-50%,0) rotate(0)} 50%{transform:translate(-50%,-5px) rotate(2deg)} }
@keyframes mwj-hand-l { 0%{transform:rotate(-20deg) translate(0,0)} 100%{transform:rotate(-10deg) translate(-5px,-3px)} }
@keyframes mwj-hand-r { 0%{transform:rotate(20deg) translate(0,0)} 100%{transform:rotate(10deg) translate(5px,-3px)} }
@keyframes mwj-splash { 0%{opacity:0; transform:scale(0.5)} 50%{opacity:1; transform:scale(1.5) translate(0,-5px)} 100%{opacity:0; transform:scale(0.5) translate(0,-10px)} }

/* clapper-claw */
.scn-clapper-claw { background: linear-gradient(180deg, #87ceeb 0%, #b8e0f4 40%, #f0d8b0 100%), radial-gradient(ellipse at 50% 100%, #c8b090 0%, transparent 70%); }
.scn-clapper-claw .sky-clapper { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #6bb7e8 0%, #b0d8f0 100%); animation: ccl-sky 10s ease-in-out infinite alternate; }
.scn-clapper-claw .ground-clapper { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b7a5a 0%, #5a4a3a 100%); }
.scn-clapper-claw .figure-big-clapper { position:absolute; bottom:22%; left:20%; width:50px; height:80px; background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ccl-big 3s ease-in-out infinite; }
.scn-clapper-claw .figure-small-clapper { position:absolute; bottom:22%; left:55%; width:40px; 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: ccl-small 3s ease-in-out infinite 0.5s; }
.scn-clapper-claw .dust-clapper { position:absolute; bottom:20%; left:30%; width:60px; height:20px; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,150,0.6) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: ccl-dust 2s ease-in-out infinite; }
.scn-clapper-claw .tree-clapper { position:absolute; bottom:30%; left:75%; width:20px; height:60px; background: linear-gradient(180deg, #6b4a2a 0%, #4a2a1a 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom center; animation: ccl-tree 6s ease-in-out infinite; }
.scn-clapper-claw .ear-clapper { position:absolute; bottom:58%; left:32%; width:12px; height:16px; background: #c8553d; border-radius: 50% 50% 0 0; transform: rotate(-10deg); animation: ccl-ear 1.5s ease-in-out infinite alternate; }
@keyframes ccl-sky { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes ccl-big { 0%{transform:translateX(0) rotate(0)} 25%{transform:translateX(15px) rotate(5deg)} 50%{transform:translateX(30px) rotate(-5deg)} 75%{transform:translateX(15px) rotate(3deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes ccl-small { 0%{transform:translateX(0) rotate(0)} 25%{transform:translateX(-10px) rotate(-5deg)} 50%{transform:translateX(-20px) rotate(5deg)} 75%{transform:translateX(-10px) rotate(-3deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes ccl-dust { 0%{transform:scale(1) translate(0,0); opacity:0.6} 50%{transform:scale(2) translate(10px,-5px); opacity:0.2} 100%{transform:scale(1) translate(0,0); opacity:0.6} }
@keyframes ccl-tree { 0%,100%{transform:scale(1) rotate(0)} 50%{transform:scale(1.02) rotate(2deg)} }
@keyframes ccl-ear { 0%{transform:rotate(-10deg) scale(1)} 100%{transform:rotate(-20deg) scale(1.2)} }

/* frogmore-plot */
.scn-frogmore-plot { background: linear-gradient(180deg, #87ceeb 0%, #a8d8f0 40%, #e8d4b0 100%), radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.4) 0%, transparent 60%); }
.scn-frogmore-plot .sky-frogmore { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #4a90d9 0%, #87ceeb 100%); animation: fmp-sky 15s ease-in-out infinite alternate; }
.scn-frogmore-plot .hills-frogmore { position:absolute; bottom:20%; left:0; right:0; height:20%; background: linear-gradient(180deg, #6b8a4a 0%, #4a6a2a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.2); animation: fmp-hills 20s ease-in-out infinite alternate; }
.scn-frogmore-plot .town-frogmore { position:absolute; bottom:10%; left:10%; right:10%; height:35%; background: linear-gradient(90deg, #b59a7a 0%, #d4bc9e 30%, #b59a7a 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 -5px 10px rgba(0,0,0,0.1); display: flex; align-items: flex-end; }
.scn-frogmore-plot .town-frogmore::before { content:''; position:absolute; bottom:0; left:15%; width:12%; height:80%; background: linear-gradient(180deg, #c8a060 0%, #a07840 100%); border-radius: 4% 4% 0 0; } /* building */
.scn-frogmore-plot .town-frogmore::after { content:''; position:absolute; bottom:0; right:15%; width:10%; height:60%; background: linear-gradient(180deg, #a07840 0%, #806040 100%); border-radius: 4% 4% 0 0; } /* building */
.scn-frogmore-plot .signpost-frogmore { position:absolute; bottom:42%; left:50%; width:6px; height:30px; background: #6b4a2a; transform:translate(-50%,0); border-radius: 10%; animation: fmp-sign 4s ease-in-out infinite; }
.scn-frogmore-plot .signpost-frogmore::before { content:''; position:absolute; top:-10px; left:-6px; width:18px; height:8px; background: #d4a03a; border-radius: 20%; }
.scn-frogmore-plot .figure-frogmore { position:absolute; bottom:8%; 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: fmp-figure 5s ease-in-out infinite; }
.scn-frogmore-plot .path-frogmore { position:absolute; bottom:0; left:35%; right:35%; height:8%; background: linear-gradient(90deg, #d4bc9e 0%, #c8b090 50%, #b59a7a 100%); border-radius: 50% 50% 0 0; filter: blur(2px); animation: fmp-path 8s ease-in-out infinite alternate; }
@keyframes fmp-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes fmp-hills { 0%{transform:translateY(0)} 50%{transform:translateY(-4px)} 100%{transform:translateY(0)} }
@keyframes fmp-sign { 0%,100%{transform:translate(-50%,0) rotate(0)} 50%{transform:translate(-50%,-2px) rotate(3deg)} }
@keyframes fmp-figure { 0%{transform:translateX(0) rotate(0)} 25%{transform:translateX(8px) rotate(2deg)} 50%{transform:translateX(16px) rotate(-2deg)} 75%{transform:translateX(8px) rotate(1deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes fmp-path { 0%{width:30%; left:35%} 50%{width:40%; left:30%} 100%{width:30%; left:35%} }

/* host-horses - dim interior, warm amber, funny */
.scn-host-horses {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%), radial-gradient(ellipse at 50% 0%, #4a3a2a 0%, transparent 80%);
}
.scn-host-horses .wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(0deg, #4a3a2a 0%, transparent 100%);
  animation: hh-wall 12s ease-in-out infinite alternate;
}
.scn-host-horses .table {
  position:absolute; bottom:20%; left:10%; right:10%; height:5%;
  background: linear-gradient(180deg, #6a5038 0%, #4a3828 100%);
  border-radius: 4px;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.6);
  animation: hh-table 8s ease-in-out infinite alternate;
}
.scn-host-horses .lantern {
  position:absolute; bottom:35%; left:25%; width:14px; height:30px;
  background: radial-gradient(ellipse at 50% 60%, #f0c040 0%, #b08020 70%);
  border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 0 20px 8px #d09030, 0 0 40px 16px rgba(208,144,48,0.4);
  animation: hh-lantern-glow 3s ease-in-out infinite alternate;
}
.scn-host-horses .host {
  position:absolute; bottom:25%; left:30%; width:24px; height:44px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hh-walk-bounce 4s ease-in-out infinite;
}
.scn-host-horses .horse-silhouette {
  position:absolute; bottom:20%; right:15%; width:50px; height:40px;
  background: linear-gradient(180deg, #1a1208 0%, #0a0804 100%);
  border-radius: 60% 40% 30% 50% / 50% 50% 40% 40%;
  box-shadow: -2px 0 4px rgba(0,0,0,0.5);
  animation: hh-horse-bob 5s ease-in-out infinite;
}
.scn-host-horses .mug {
  position:absolute; bottom:22%; left:38%; width:12px; height:16px;
  background: linear-gradient(180deg, #8a7050 0%, #5a4830 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: 1px 1px 3px rgba(0,0,0,0.5);
  animation: hh-mug-lift 6s ease-in-out infinite;
}
.scn-host-horses .bottle {
  position:absolute; bottom:24%; left:50%; width:10px; height:28px;
  background: linear-gradient(180deg, #7a6040 0%, #4a3820 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  animation: hh-bottle-tilt 7s ease-in-out infinite alternate;
}
@keyframes hh-wall { 0%,100% { opacity:0.7 } 50% { opacity:0.9 } }
@keyframes hh-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(2px) } }
@keyframes hh-lantern-glow { 0%,100% { box-shadow: 0 0 15px 5px #d09030, 0 0 30px 10px rgba(208,144,48,0.3); opacity:0.8 } 50% { box-shadow: 0 0 30px 12px #f0c040, 0 0 60px 20px rgba(240,192,64,0.5); opacity:1 } }
@keyframes hh-walk-bounce { 0%,100% { transform: translateX(0) translateY(0) rotate(-3deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-2px) rotate(2deg) } }
@keyframes hh-horse-bob { 0%,100% { transform: rotate(0) scaleY(1) } 50% { transform: rotate(-5deg) scaleY(0.95) } }
@keyframes hh-mug-lift { 0%,100% { transform: translateY(0) rotate(0) } 33% { transform: translateY(-3px) rotate(-10deg) } 66% { transform: translateY(0) rotate(5deg) } }
@keyframes hh-bottle-tilt { 0%,100% { transform: rotate(0) } 50% { transform: rotate(15deg) } }

/* ford-house-plot - bright interior, calm mood */
.scn-ford-house-plot {
  background: linear-gradient(180deg, #f8f0e0 0%, #e0d0b0 100%), radial-gradient(ellipse at 50% 30%, #fff8ee 0%, transparent 60%);
}
.scn-ford-house-plot .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(90deg, #e8d8c0 0%, #f0e0c8 50%, #e8d8c0 100%);
  animation: fh-wall-light 15s ease-in-out infinite alternate;
}
.scn-ford-house-plot .window-light {
  position:absolute; top:15%; left:60%; width:24%; height:30%;
  background: radial-gradient(ellipse at 50% 40%, #fff8f0 0%, #f0e0c0 70%);
  border-radius: 10%;
  box-shadow: inset 0 0 30px 10px #fff0d0, 0 0 20px 5px rgba(255,255,200,0.3);
  animation: fh-window-bright 8s ease-in-out infinite alternate;
}
.scn-ford-house-plot .table {
  position:absolute; bottom:20%; left:20%; right:20%; height:6%;
  background: linear-gradient(180deg, #c8b898 0%, #a08868 100%);
  border-radius: 6px;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.2);
  animation: fh-table-still 12s ease-in-out infinite alternate;
}
.scn-ford-house-plot .figure-left {
  position:absolute; bottom:22%; left:25%; width:20px; height:42px;
  background: linear-gradient(180deg, #c8b8a0 0%, #a09078 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fh-figure-left 6s ease-in-out infinite;
}
.scn-ford-house-plot .figure-right {
  position:absolute; bottom:22%; right:25%; width:22px; height:44px;
  background: linear-gradient(180deg, #d0c0a8 0%, #b0a088 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fh-figure-right 6s ease-in-out infinite;
}
.scn-ford-house-plot .letter {
  position:absolute; bottom:30%; left:48%; width:16px; height:10px;
  background: linear-gradient(180deg, #f0e8d8 0%, #d0c0a0 100%);
  border-radius: 4px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.3);
  animation: fh-letter-float 10s ease-in-out infinite alternate;
}
@keyframes fh-wall-light { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes fh-window-bright { 0%,100% { box-shadow: inset 0 0 20px 5px #fff0d0, 0 0 10px 2px rgba(255,255,200,0.2); opacity:0.85 } 50% { box-shadow: inset 0 0 40px 15px #fff8e8, 0 0 30px 8px rgba(255,255,200,0.5); opacity:1 } }
@keyframes fh-table-still { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes fh-figure-left { 0%,100% { transform: rotate(0) translateY(0) } 25% { transform: rotate(-3deg) translateY(-1px) } 50% { transform: rotate(2deg) translateY(0) } 75% { transform: rotate(-1deg) translateY(-1px) } }
@keyframes fh-figure-right { 0%,100% { transform: rotate(0) translateY(0) } 25% { transform: rotate(2deg) translateY(-1px) } 50% { transform: rotate(-3deg) translateY(0) } 75% { transform: rotate(1deg) translateY(-1px) } }
@keyframes fh-letter-float { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(5deg) } }

/* herne-oak-plot - dark, dim night exterior */
.scn-herne-oak-plot {
  background: linear-gradient(180deg, #0a0a14 0%, #1a1a2e 100%), radial-gradient(ellipse at 70% 20%, #2a2a4e 0%, transparent 80%);
}
.scn-herne-oak-plot .sky-night {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(0deg, #151528 0%, #0a0a14 100%);
  animation: ho-sky-pulse 20s ease-in-out infinite alternate;
}
.scn-herne-oak-plot .oak-tree {
  position:absolute; bottom:30%; left:50%; width:90px; height:80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 15px 5px rgba(0,0,0,0.7);
  animation: ho-oak-sway 14s ease-in-out infinite alternate;
}
.scn-herne-oak-plot .moon {
  position:absolute; top:12%; right:20%; width:30px; height:30px;
  background: radial-gradient(circle, #d0d8e8 0%, #a0a8c0 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px #b0b8d0, 0 0 60px 25px rgba(176,184,208,0.3);
  animation: ho-moon-glow 10s ease-in-out infinite alternate;
}
.scn-herne-oak-plot .figure-cloak {
  position:absolute; bottom:28%; left:35%; width:20px; height:48px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ho-figure-creep 8s ease-in-out infinite;
}
.scn-herne-oak-plot .lantern {
  position:absolute; bottom:33%; left:42%; width:8px; height:12px;
  background: radial-gradient(ellipse at 50% 50%, #b09040 0%, #705820 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px 6px #806030, 0 0 20px 10px rgba(128,96,48,0.4);
  animation: ho-lantern-swing 4s ease-in-out infinite alternate;
}
.scn-herne-oak-plot .ground {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #0a0a14 0%, #1a1a2e 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: ho-ground-shimmer 18s ease-in-out infinite alternate;
}
@keyframes ho-sky-pulse { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes ho-oak-sway { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(3deg) } }
@keyframes ho-moon-glow { 0%,100% { box-shadow: 0 0 20px 10px #b0b8d0, 0 0 40px 20px rgba(176,184,208,0.2); opacity:0.9 } 50% { box-shadow: 0 0 40px 20px #c0c8e0, 0 0 80px 30px rgba(192,200,224,0.4); opacity:1 } }
@keyframes ho-figure-creep { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(6px) translateY(0) rotate(-2deg) } 75% { transform: translateX(9px) translateY(-1px) rotate(1deg) } }
@keyframes ho-lantern-swing { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes ho-ground-shimmer { 0%,100% { opacity:0.7 } 50% { opacity:0.85 } }

/* mrs-page-plotting - bright interior, calm mood */
.scn-mrs-page-plotting {
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 100%), radial-gradient(ellipse at 50% 50%, #fff8ec 0%, transparent 70%);
}
.scn-mrs-page-plotting .wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(135deg, #e8dcc8 0%, #d8c8b0 100%);
  animation: mp-wall-glow 16s ease-in-out infinite alternate;
}
.scn-mrs-page-plotting .window {
  position:absolute; top:18%; left:65%; width:20%; height:28%;
  background: radial-gradient(ellipse at 50% 40%, #fff8f0 0%, #f0e0c8 70%);
  border-radius: 10%;
  box-shadow: inset 0 0 20px 5px #fff0d0, 0 0 10px 3px rgba(255,255,200,0.2);
  animation: mp-window-light 9s ease-in-out infinite alternate;
}
.scn-mrs-page-plotting .chair {
  position:absolute; bottom:22%; left:30%; width:28px; height:40px;
  background: linear-gradient(180deg, #b8a080 0%, #907858 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: mp-chair-settle 12s ease-in-out infinite;
}
.scn-mrs-page-plotting .table {
  position:absolute; bottom:20%; left:15%; right:15%; height:5%;
  background: linear-gradient(180deg, #c8b898 0%, #a08868 100%);
  border-radius: 4px;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.15);
  animation: mp-table-steady 18s ease-in-out infinite alternate;
}
.scn-mrs-page-plotting .mrs-page {
  position:absolute; bottom:22%; left:35%; width:20px; height:44px;
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a888 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mp-figure-pace 6s ease-in-out infinite;
}
.scn-mrs-page-plotting .fan {
  position:absolute; bottom:32%; right:35%; width:14px; height:20px;
  background: linear-gradient(135deg, #e0c8a0 0%, #c0a880 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  transform-origin: bottom center;
  animation: mp-fan-wave 4s ease-in-out infinite alternate;
}
.scn-mrs-page-plotting .letter {
  position:absolute; bottom:28%; left:45%; width:12px; height:8px;
  background: linear-gradient(180deg, #f0e8d8 0%, #d0c0a0 100%);
  border-radius: 3px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.2);
  animation: mp-letter-lift 7s ease-in-out infinite alternate;
}
@keyframes mp-wall-glow { 0%,100% { opacity:0.85 } 50% { opacity:1 } }
@keyframes mp-window-light { 0%,100% { opacity:0.8; box-shadow: inset 0 0 15px 3px #fff0d0, 0 0 8px 2px rgba(255,255,200,0.15) } 50% { opacity:1; box-shadow: inset 0 0 30px 10px #fff8e8, 0 0 20px 5px rgba(255,255,200,0.3) } }
@keyframes mp-chair-settle { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(1deg) } }
@keyframes mp-table-steady { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes mp-figure-pace { 0%,100% { transform: rotate(0) translateY(0) } 25% { transform: rotate(-2deg) translateY(-1px) } 50% { transform: rotate(1deg) translateY(0) } 75% { transform: rotate(-1deg) translateY(-1px) } }
@keyframes mp-fan-wave { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } }
@keyframes mp-letter-lift { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(3deg) } }

.scn-fairies-enter {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #1a0a00 60%, #0a0500 100%);
  box-shadow: inset 0 0 60px #4a2a0a;
}
.scn-fairies-enter .bg-fire { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, #3a1a0a 0%, transparent 70%); }
.scn-fairies-enter .wall-left { position:absolute; bottom:0; left:0; width:35%; height:100%; background: linear-gradient(90deg, #1a0a00 0%, #2a1a0a 100%); border-radius: 0 40% 0 0 / 0 60% 0 0; }
.scn-fairies-enter .wall-right { position:absolute; bottom:0; right:0; width:35%; height:100%; background: linear-gradient(270deg, #1a0a00 0%, #2a1a0a 100%); border-radius: 40% 0 0 0 / 60% 0 0 0; }
.scn-fairies-enter .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.8); }
.scn-fairies-enter .fireplace { position:absolute; bottom:25%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: #2a1a0a; border-radius: 10% 10% 5% 5%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6), 0 0 30px rgba(200,100,40,0.4); }
.scn-fairies-enter .flame { position:absolute; bottom:25%; left:50%; width:20px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse, #d08040 0%, #a05020 50%, transparent 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; filter: blur(2px); }
.scn-fairies-enter .flame-1 { animation: fe-flame1 1.5s ease-in-out infinite alternate; }
.scn-fairies-enter .flame-2 { width:14px; height:30px; animation: fe-flame2 1.8s ease-in-out infinite alternate; left:48%; }
.scn-fairies-enter .figure { position:absolute; bottom:25%; width:16px; height:50px; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-fairies-enter .figure-left { left:20%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%); animation: fe-run-left 1.6s ease-in-out infinite; }
.scn-fairies-enter .figure-right { right:20%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%); animation: fe-run-right 1.8s ease-in-out infinite; }
@keyframes fe-flame1 { 0% { transform: translateX(-50%) scaleY(0.8) rotate(-5deg); opacity:0.9; } 50% { transform: translateX(-50%) scaleY(1.1) rotate(3deg); opacity:1; } 100% { transform: translateX(-50%) scaleY(0.9) rotate(-2deg); opacity:0.85; } }
@keyframes fe-flame2 { 0% { transform: translateX(-50%) scaleY(0.7) rotate(4deg); opacity:0.8; } 50% { transform: translateX(-50%) scaleY(1.0) rotate(-4deg); opacity:0.95; } 100% { transform: translateX(-50%) scaleY(0.8) rotate(2deg); opacity:0.9; } }
@keyframes fe-run-left { 0% { transform: translateX(0) rotate(-5deg); } 25% { transform: translateX(10px) rotate(5deg); } 50% { transform: translateX(20px) rotate(-3deg); } 75% { transform: translateX(30px) rotate(4deg); } 100% { transform: translateX(40px) rotate(0deg); } }
@keyframes fe-run-right { 0% { transform: translateX(0) rotate(5deg); } 25% { transform: translateX(-10px) rotate(-5deg); } 50% { transform: translateX(-20px) rotate(3deg); } 75% { transform: translateX(-30px) rotate(-4deg); } 100% { transform: translateX(-40px) rotate(0deg); } }

.scn-item-fairy-tapers {
  background: linear-gradient(180deg, #0a1630 0%, #14203a 40%, #1a2a4a 70%, #0d1a2a 100%);
  box-shadow: inset 0 0 80px rgba(100,150,200,0.15);
}
.scn-item-fairy-tapers .sky-moon { position:absolute; inset:0; background: radial-gradient(ellipse at 70% 20%, #1a2a4a 0%, transparent 60%); }
.scn-item-fairy-tapers .moon { position:absolute; top:8%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #e0f0ff 0%, #b0c0d0 100%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(180,200,230,0.3), 0 0 80px 20px rgba(150,180,220,0.15); animation: ft-moon-glow 6s ease-in-out infinite alternate; }
.scn-item-fairy-tapers .tree { position:absolute; bottom:0; width:40px; height:60%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; }
.scn-item-fairy-tapers .tree-left { left:10%; }
.scn-item-fairy-tapers .tree-right { right:10%; transform: scaleX(-1); }
.scn-item-fairy-tapers .fairy { position:absolute; width:14px; height:30px; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; background: linear-gradient(180deg, #c0d0e0 0%, #8090a0 100%); }
.scn-item-fairy-tapers .fairy-a { bottom:40%; left:30%; animation: ft-fairy-a 8s ease-in-out infinite; }
.scn-item-fairy-tapers .fairy-b { bottom:50%; right:25%; animation: ft-fairy-b 9s ease-in-out infinite; animation-delay: -2s; }
.scn-item-fairy-tapers .taper { position:absolute; width:4px; height:10px; background: radial-gradient(ellipse, #ffe0a0 0%, #d08040 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,220,150,0.4); }
.scn-item-fairy-tapers .taper-1 { bottom:45%; left:32%; animation: ft-taper-flicker 2.4s ease-in-out infinite alternate; }
.scn-item-fairy-tapers .taper-2 { bottom:55%; right:22%; animation: ft-taper-flicker 1.5s ease-in-out infinite alternate; animation-delay: -0.7s; }
@keyframes ft-moon-glow { 0% { box-shadow: 0 0 30px 6px rgba(180,200,230,0.2), 0 0 60px 12px rgba(150,180,220,0.1); } 50% { box-shadow: 0 0 50px 12px rgba(200,220,255,0.3), 0 0 90px 20px rgba(180,200,240,0.2); } 100% { box-shadow: 0 0 35px 8px rgba(180,200,230,0.25), 0 0 70px 15px rgba(150,180,220,0.15); } }
@keyframes ft-fairy-a { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(20px,-30px) rotate(10deg); } 50% { transform: translate(-10px,-50px) rotate(-5deg); } 75% { transform: translate(15px,-80px) rotate(8deg); } 100% { transform: translate(0,-100px) rotate(0deg); } }
@keyframes ft-fairy-b { 0% { transform: translate(0,0) rotate(0deg); } 33% { transform: translate(-25px,-20px) rotate(-8deg); } 66% { transform: translate(10px,-60px) rotate(5deg); } 100% { transform: translate(-5px,-90px) rotate(-2deg); } }
@keyframes ft-taper-flicker { 0% { opacity:0.8; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.85; transform: scale(0.95); } }

.scn-fairy-pinching {
  background: linear-gradient(180deg, #0a0a0a 0%, #1a0a00 40%, #2a1a0a 70%, #1a0a00 100%);
  box-shadow: inset 0 0 80px #3a1a0a;
}
.scn-fairy-pinching .bg-night { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, #2a1a0a 0%, transparent 70%); }
.scn-fairy-pinching .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
.scn-fairy-pinching .fire-pit { position:absolute; bottom:20%; left:50%; width:60px; height:40px; transform:translateX(-50%); background: #2a1a0a; border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 20px rgba(200,100,40,0.3); }
.scn-fairy-pinching .flame-pinch { position:absolute; bottom:22%; left:50%; width:16px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse, #d07030 0%, #a05020 50%, transparent 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; filter: blur(1px); }
.scn-fairy-pinching .pinch-1 { animation: fp-flame1 1.6s ease-in-out infinite alternate; }
.scn-fairy-pinching .pinch-2 { width:12px; height:22px; left:48%; animation: fp-flame2 1.9s ease-in-out infinite alternate; }
.scn-fairy-pinching .figure-cower { position:absolute; bottom:22%; left:50%; width:24px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fp-cower 3s ease-in-out infinite; }
.scn-fairy-pinching .fairy-pinch { position:absolute; width:10px; height:22px; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); }
.scn-fairy-pinching .fairy-p-a { bottom:30%; left:35%; animation: fp-fairy-a 5s ease-in-out infinite; }
.scn-fairy-pinching .fairy-p-b { bottom:35%; right:30%; animation: fp-fairy-b 5.5s ease-in-out infinite; animation-delay: -1.5s; }
@keyframes fp-flame1 { 0% { transform: translateX(-50%) scaleY(0.7) rotate(-3deg); opacity:0.9; } 50% { transform: translateX(-50%) scaleY(1.0) rotate(4deg); opacity:1; } 100% { transform: translateX(-50%) scaleY(0.8) rotate(-1deg); opacity:0.85; } }
@keyframes fp-flame2 { 0% { transform: translateX(-50%) scaleY(0.6) rotate(5deg); opacity:0.8; } 50% { transform: translateX(-50%) scaleY(1.1) rotate(-5deg); opacity:0.95; } 100% { transform: translateX(-50%) scaleY(0.7) rotate(2deg); opacity:0.9; } }
@keyframes fp-cower { 0% { transform: translateX(-50%) scale(1) rotate(0deg); } 50% { transform: translateX(-50%) scale(0.95) rotate(5deg); } 100% { transform: translateX(-50%) scale(1) rotate(0deg); } }
@keyframes fp-fairy-a { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(10px,-10px) rotate(15deg); } 50% { transform: translate(20px,0) rotate(-10deg); } 75% { transform: translate(30px,-5px) rotate(5deg); } 100% { transform: translate(40px,-20px) rotate(0deg); } }
@keyframes fp-fairy-b { 0% { transform: translate(0,0) rotate(0deg); } 33% { transform: translate(-15px,-8px) rotate(-12deg); } 66% { transform: translate(-30px,5px) rotate(8deg); } 100% { transform: translate(-45px,-15px) rotate(-4deg); } }

.scn-fairy-instructions {
  background: linear-gradient(180deg, #0a1a2a 0%, #14203a 30%, #1a2a4a 60%, #0d1a2a 100%);
  box-shadow: inset 0 0 60px rgba(100,140,180,0.2);
}
.scn-fairy-instructions .castle-wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%); }
.scn-fairy-instructions .castle-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); box-shadow: inset 0 8px 16px rgba(0,0,0,0.5); }
.scn-fairy-instructions .window-moon { position:absolute; top:20%; left:30%; width:60px; height:80px; background: #2a2a3a; border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; box-shadow: inset 0 0 20px rgba(100,150,200,0.3); }
.scn-fairy-instructions .window-moon::after { content:''; position:absolute; top:10px; left:10px; width:40px; height:40px; background: radial-gradient(circle, #e0f0ff 0%, #8098b0 100%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(180,210,240,0.2); }
.scn-fairy-instructions .torch { position:absolute; bottom:30%; right:20%; width:8px; height:30px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 2px; }
.scn-fairy-instructions .torch::after { content:''; position:absolute; top:-10px; left:2px; width:12px; height:20px; background: radial-gradient(ellipse, #e0a060 0%, #c08040 50%, transparent 100%); border-radius:50%; filter: blur(1px); animation: fi-torch-flicker 2.6s ease-in-out infinite alternate; }
.scn-fairy-instructions .fairy-instr { position:absolute; width:12px; height:26px; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; background: linear-gradient(180deg, #c0d0e0 0%, #8090a0 100%); }
.scn-fairy-instructions .fairy-i1 { bottom:40%; left:20%; animation: fi-fairy1 10s ease-in-out infinite; }
.scn-fairy-instructions .fairy-i2 { bottom:45%; right:15%; animation: fi-fairy2 11s ease-in-out infinite; animation-delay: -3s; }
.scn-fairy-instructions .dust { position:absolute; bottom:35%; left:10%; width:40px; height:40px; background: radial-gradient(circle, rgba(200,220,255,0.3) 0%, transparent 70%); filter: blur(4px); animation: fi-dust-drift 8s ease-in-out infinite; }
@keyframes fi-torch-flicker { 0% { opacity:0.8; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.85; transform: scale(0.9); } }
@keyframes fi-fairy1 { 0% { transform: translate(0,0) rotate(0deg); } 20% { transform: translate(30px,-20px) rotate(12deg); } 40% { transform: translate(60px,-10px) rotate(-8deg); } 60% { transform: translate(90px,-40px) rotate(5deg); } 80% { transform: translate(120px,-30px) rotate(-3deg); } 100% { transform: translate(150px,-50px) rotate(0deg); } }
@keyframes fi-fairy2 { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(-25px,-15px) rotate(-10deg); } 50% { transform: translate(-50px,5px) rotate(6deg); } 75% { transform: translate(-75px,-25px) rotate(-4deg); } 100% { transform: translate(-100px,-35px) rotate(0deg); } }
@keyframes fi-dust-drift { 0% { transform: translate(0,0) scale(1); opacity:0.5; } 50% { transform: translate(20px,-30px) scale(1.2); opacity:0.8; } 100% { transform: translate(40px,-60px) scale(0.8); opacity:0.3; } }

/* Scene 1: husband-coming-search */
.scn-husband-coming-search {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #d4b68a 40%, #8a6e4b 100%),
    radial-gradient(ellipse at 80% 50%, #f0d8b0 0%, transparent 70%);
}
.scn-husband-coming-search .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #e8d5b5 0%, #c8b094 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.15);
}
.scn-husband-coming-search .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a6e4b 0%, #5a4a32 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
}
.scn-husband-coming-search .door-frame {
  position: absolute; bottom: 30%; right: 25%; width: 80px; height: 130px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
}
.scn-husband-coming-search .door-light {
  position: absolute; bottom: 32%; right: 27%; width: 60px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, #ffe8c0 0%, #d4b68a 70%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(255,232,192,0.4);
  animation: hc-door-glow 4s ease-in-out infinite alternate;
}
.scn-husband-coming-search .figure-woman {
  position: absolute; bottom: 30%; left: 30%; 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: hc-woman 3s ease-in-out infinite;
}
.scn-husband-coming-search .shadow-husband {
  position: absolute; bottom: 30%; right: 15%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  opacity: 0.6;
  animation: hc-shadow 5s ease-in-out infinite alternate;
}
.scn-husband-coming-search .window-pane {
  position: absolute; top: 10%; left: 15%; width: 70px; height: 90px;
  background: linear-gradient(135deg, #d4e0f0 0%, #a0b8d0 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(100,150,200,0.3);
  animation: hc-window 6s ease-in-out infinite alternate;
}
.scn-husband-coming-search .curtain {
  position: absolute; top: 10%; left: 14%; width: 20px; height: 90px;
  background: linear-gradient(180deg, #b87878 0%, #8a5050 100%);
  border-radius: 4px 20px 20px 4px;
  transform-origin: top left;
  animation: hc-curtain 7s ease-in-out infinite alternate;
}
@keyframes hc-door-glow { 0% { opacity: 0.7; box-shadow: 0 0 15px 4px rgba(255,232,192,0.3); } 50% { opacity: 1; box-shadow: 0 0 30px 10px rgba(255,232,192,0.6); } 100% { opacity: 0.8; box-shadow: 0 0 20px 6px rgba(255,232,192,0.4); } }
@keyframes hc-woman { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hc-shadow { 0% { transform: scaleX(1) translateX(0); opacity: 0.5; } 50% { transform: scaleX(1.1) translateX(5px); opacity: 0.7; } 100% { transform: scaleX(1) translateX(0); opacity: 0.6; } }
@keyframes hc-window { 0% { background: linear-gradient(135deg, #d4e0f0 0%, #a0b8d0 100%); } 50% { background: linear-gradient(135deg, #e0ecf8 0%, #b0c8e0 100%); } 100% { background: linear-gradient(135deg, #d4e0f0 0%, #a0b8d0 100%); } }
@keyframes hc-curtain { 0% { transform: rotate(0); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0); } }

/* Scene 2: basket-conveyance */
.scn-basket-conveyance {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 50%, #9a8a72 100%),
    radial-gradient(ellipse at 30% 70%, #d8c8a8 0%, transparent 60%);
}
.scn-basket-conveyance .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(135deg, #b8a888 25%, #a89878 25%, #a89878 50%, #b8a888 50%, #b8a888 75%, #a89878 75%);
  background-size: 30px 30px;
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  animation: bc-floor 8s linear infinite;
}
.scn-basket-conveyance .basket-body {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 60px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: bc-basket 4s ease-in-out infinite;
}
.scn-basket-conveyance .basket-lid {
  position: absolute; bottom: 45%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 20px;
  background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
  transform-origin: bottom center;
  animation: bc-lid 2s ease-in-out infinite alternate;
}
.scn-basket-conveyance .basket-shadow {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%);
  width: 90px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: bc-shadow 4s ease-in-out infinite;
}
.scn-basket-conveyance .hand-left {
  position: absolute; bottom: 30%; left: 35%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #d4b08a 0%, #a08060 100%);
  border-radius: 8px 8px 4px 4px;
  transform-origin: top center;
  animation: bc-hand-l 3s ease-in-out infinite;
}
.scn-basket-conveyance .hand-right {
  position: absolute; bottom: 30%; right: 35%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #d4b08a 0%, #a08060 100%);
  border-radius: 8px 8px 4px 4px;
  transform-origin: top center;
  animation: bc-hand-r 3s ease-in-out infinite;
}
.scn-basket-conveyance .footstep {
  position: absolute; bottom: 12%; left: 20%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 20% 20%;
  opacity: 0.9;
  animation: bc-step 5s linear infinite;
}
@keyframes bc-floor { 0% { background-position: 0 0; } 100% { background-position: 30px 0; } }
@keyframes bc-basket { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes bc-lid { 0% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes bc-shadow { 0% { transform: translateX(-50%) scale(1); opacity: 0.3; } 50% { transform: translateX(-50%) scale(1.1); opacity: 0.5; } 100% { transform: translateX(-50%) scale(1); opacity: 0.3; } }
@keyframes bc-hand-l { 0% { transform: rotate(20deg); } 33% { transform: rotate(25deg); } 66% { transform: rotate(15deg); } 100% { transform: rotate(20deg); } }
@keyframes bc-hand-r { 0% { transform: rotate(-20deg); } 33% { transform: rotate(-25deg); } 66% { transform: rotate(-15deg); } 100% { transform: rotate(-20deg); } }
@keyframes bc-step { 0% { transform: translateX(0) scale(1); opacity: 0.9; } 25% { transform: translateX(20px) scale(1.1); opacity: 0.6; } 50% { transform: translateX(40px) scale(1); opacity: 0.3; } 75% { transform: translateX(60px) scale(0.9); opacity: 0.6; } 100% { transform: translateX(80px) scale(1); opacity: 0.9; } }

/* Scene 3: falstaff-in-basket */
.scn-falstaff-in-basket {
  background:
    linear-gradient(180deg, #c8a87a 0%, #8a6a4a 40%, #4a3a2a 100%),
    radial-gradient(ellipse at 50% 100%, #6a4a2a 0%, transparent 60%);
}
.scn-falstaff-in-basket .room-corner {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d4b8a0 0%, #9a7a5a 50%, #6a4a2a 100%);
  clip-path: polygon(0 0, 100% 0, 100% 70%, 0 100%);
  animation: fb-corner 10s ease-in-out infinite alternate;
}
.scn-falstaff-in-basket .basket-large {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 100px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 50% 50%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: fb-basket 3s ease-in-out infinite;
}
.scn-falstaff-in-basket .basket-lip {
  position: absolute; bottom: 55%; left: 50%; transform: translateX(-50%);
  width: 130px; height: 14px;
  background: linear-gradient(180deg, #9a7a5a 0%, #6a4a2a 100%);
  border-radius: 30% 30% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-falstaff-in-basket .falstaff-leg {
  position: absolute; bottom: 55%; left: 40%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%;
  transform-origin: bottom center;
  animation: fb-leg 2s ease-in-out infinite;
}
.scn-falstaff-in-basket .falstaff-arm {
  position: absolute; bottom: 65%; right: 35%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: top center;
  animation: fb-arm 2.5s ease-in-out infinite;
}
.scn-falstaff-in-basket .shadow-creep {
  position: absolute; bottom: 15%; left: 30%; width: 40px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: fb-shadow 3.5s ease-in-out infinite;
}
.scn-falstaff-in-basket .candle-glow {
  position: absolute; top: 20%; left: 60%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #ffe080 0%, #c88030 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(255,224,128,0.5);
  animation: fb-candle 2s ease-in-out infinite alternate;
}
@keyframes fb-corner { 0% { opacity: 1; } 50% { opacity: 0.9; } 100% { opacity: 1; } }
@keyframes fb-basket { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes fb-leg { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(0) translateY(2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes fb-arm { 0% { transform: rotate(-15deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-15deg); } }
@keyframes fb-shadow { 0% { transform: translateX(0) scale(1); opacity: 0.4; } 50% { transform: translateX(5px) scale(1.2); opacity: 0.6; } 100% { transform: translateX(0) scale(1); opacity: 0.4; } }
@keyframes fb-candle { 0% { transform: scale(1); opacity: 0.9; box-shadow: 0 0 20px 5px rgba(255,224,128,0.4); } 50% { transform: scale(1.05); opacity: 1; box-shadow: 0 0 40px 15px rgba(255,224,128,0.6); } 100% { transform: scale(1); opacity: 0.9; box-shadow: 0 0 20px 5px rgba(255,224,128,0.4); } }

/* Scene 4: carry-to-laundress */
.scn-carry-to-laundress {
  background:
    linear-gradient(180deg, #f0e0c8 0%, #d0b898 40%, #907060 100%),
    radial-gradient(ellipse at 70% 30%, #e0c8a8 0%, transparent 50%);
}
.scn-carry-to-laundress .laundry-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d8c8a0 0%, #b8a080 50%, #806858 100%);
  clip-path: polygon(0 0, 100% 0, 100% 60%, 0 90%);
}
.scn-carry-to-laundress .basket-wicker {
  position: absolute; bottom: 20%; left: 35%; transform: translateX(-50%);
  width: 70px; height: 50px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: cl-basket 4s ease-in-out infinite;
}
.scn-carry-to-laundress .basket-cloth {
  position: absolute; bottom: 35%; left: 33%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b898 100%);
  border-radius: 10% 10% 30% 30% / 40% 40% 50% 50%;
  transform-origin: bottom center;
  animation: cl-cloth 5s ease-in-out infinite;
}
.scn-carry-to-laundress .figure-carrier {
  position: absolute; bottom: 22%; left: 20%; 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: cl-carrier 3.5s ease-in-out infinite;
}
.scn-carry-to-laundress .figure-laundress {
  position: absolute; bottom: 25%; right: 25%; width: 26px; height: 55px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: cl-laundress 4.5s ease-in-out infinite;
}
.scn-carry-to-laundress .steam {
  position: absolute; top: 10%; right: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,255,255,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: cl-steam 6s linear infinite;
}
.scn-carry-to-laundress .soap-bubble {
  position: absolute; top: 15%; left: 50%; width: 12px; height: 12px;
  background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, rgba(200,220,255,0.2) 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: cl-bubble 8s linear infinite;
}
@keyframes cl-basket { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes cl-cloth { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes cl-carrier { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes cl-laundress { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cl-steam { 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; } }
@keyframes cl-bubble { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 100% { transform: translateY(-60px) scale(0.5); opacity: 0; } }

/* ===== slender-jointure (funny, bright interior) ===== */
.scn-slender-jointure {
  background:
    linear-gradient(180deg, #fef3d9 0%, #f7e8c4 40%, #e6d4a8 100%),
    radial-gradient(ellipse at 30% 70%, #fff8e7 0%, transparent 60%);
}
.scn-slender-jointure .room-bg {
  position:absolute; inset:0; 
  background: linear-gradient(135deg, #fdf1d0 0%, #edd9aa 60%, #d4be8c 100%);
}
.scn-slender-jointure .window-light {
  position:absolute; top:8%; left:20%; width:120px; height:140px;
  background: radial-gradient(ellipse, #fffae0 0%, #f5e2b0 70%, transparent 100%);
  border-radius: 8px; opacity:0.6;
  animation: sj-window 7s ease-in-out infinite alternate;
}
.scn-slender-jointure .chair {
  position:absolute; bottom:15%; left:35%; width:70px; height:100px;
  background: linear-gradient(135deg, #8b6f47 0%, #6b5436 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: inset 4px 4px 8px rgba(0,0,0,0.3);
  animation: sj-chair 5s ease-in-out infinite;
}
.scn-slender-jointure .money-pouch {
  position:absolute; bottom:22%; left:46%; width:24px; height:20px;
  background: radial-gradient(circle at 40% 30%, #d4a960 0%, #b8893a 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: sj-pouch 2s ease-in-out infinite;
}
.scn-slender-jointure .slender-figure {
  position:absolute; bottom:10%; left:42%; width:28px; height:60px;
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a40 60%, #1e1e30 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: sj-slender 3s ease-in-out infinite;
}
.scn-slender-jointure .shallow-figure {
  position:absolute; bottom:10%; left:55%; width:32px; height:58px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 60%, #2a1a0a 100%);
  border-radius: 45% 40% 30% 30% / 65% 60% 35% 35%;
  transform-origin: bottom center;
  animation: sj-shallow 4s ease-in-out infinite 0.5s;
}
.scn-slender-jointure .speech-blob {
  position:absolute; top:20%; left:52%; width:40px; height:30px;
  background: radial-gradient(circle at 30% 40%, #fffbd6 0%, #f0e2b8 100%);
  border-radius: 50% 50% 20% 80% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  animation: sj-blob 3s ease-in-out infinite alternate;
}
@keyframes sj-window { 0% { opacity:0.5; transform:scaleX(0.95); } 50% { opacity:0.8; transform:scaleX(1.05); } 100% { opacity:0.6; transform:scaleX(0.98); } }
@keyframes sj-chair { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(1deg); } }
@keyframes sj-pouch { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px) scale(1.05); } }
@keyframes sj-slender { 0%,100% { transform:translateX(0) rotate(-2deg); } 25% { transform:translateX(5px) rotate(2deg); } 50% { transform:translateX(0) rotate(-1deg); } 75% { transform:translateX(-4px) rotate(1deg); } }
@keyframes sj-shallow { 0%,100% { transform:translateX(0) rotate(1deg); } 33% { transform:translateX(-3px) rotate(-1deg); } 66% { transform:translateX(4px) rotate(2deg); } }
@keyframes sj-blob { 0% { transform:scale(1) rotate(0deg); border-radius: 50% 50% 20% 80% / 60% 60% 40% 40%; } 50% { transform:scale(1.2) rotate(5deg); border-radius: 60% 40% 30% 70% / 70% 50% 50% 30%; } 100% { transform:scale(0.95) rotate(-3deg); border-radius: 40% 60% 50% 50% / 50% 70% 30% 50%; } }

/* ===== slender-wooing (funny, bright interior) ===== */
.scn-slender-wooing {
  background:
    linear-gradient(180deg, #fef1d6 0%, #f5deb3 50%, #e6c88a 100%),
    radial-gradient(ellipse at 80% 30%, #fff2d6 0%, transparent 60%);
}
.scn-slender-wooing .salon-bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #fbeccf 0%, #ecd6a2 100%);
}
.scn-slender-wooing .table {
  position:absolute; bottom:20%; left:35%; width:90px; height:40px;
  background: linear-gradient(135deg, #a0845c 0%, #7e6646 100%);
  border-radius: 30% 30% 5% 5% / 50% 50% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  animation: sw-table 8s ease-in-out infinite alternate;
}
.scn-slender-wooing .candle {
  position:absolute; bottom:46%; left:46%; width:8px; height:40px;
  background: linear-gradient(180deg, #fbe3a0 0%, #d4b06a 40%, #8a6a3a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 0 16px 4px #ffd78e;
  animation: sw-candle 2s ease-in-out infinite;
}
.scn-slender-wooing .slender-figure {
  position:absolute; bottom:10%; left:35%; width:30px; height:62px;
  background: linear-gradient(180deg, #3a3a50 0%, #25253a 60%, #15152a 100%);
  border-radius: 45% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: sw-slender 3.5s ease-in-out infinite;
}
.scn-slender-wooing .anne-figure {
  position:absolute; bottom:10%; left:52%; width:26px; height:58px;
  background: linear-gradient(180deg, #7a4a3a 0%, #5a3a2a 60%, #3a2a1a 100%);
  border-radius: 45% 40% 30% 30% / 75% 70% 25% 25%;
  transform-origin: bottom center;
  animation: sw-anne 4s ease-in-out infinite 0.3s;
}
.scn-slender-wooing .gesture-hand {
  position:absolute; bottom:22%; left:44%; width:20px; height:16px;
  background: radial-gradient(circle at 50% 40%, #d0a080 0%, #b08060 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform-origin: center bottom;
  animation: sw-hand 1.5s ease-in-out infinite alternate;
}
.scn-slender-wooing .lace-frill {
  position:absolute; bottom:14%; left:48%; width:14px; height:10px;
  background: radial-gradient(circle at 50% 30%, #f2e4d6 0%, #dcc8af 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(1px);
  animation: sw-frill 6s ease-in-out infinite;
}
@keyframes sw-table { 0%,100% { transform:translateY(0) scale(1); } 50% { transform:translateY(-2px) scale(0.98); } }
@keyframes sw-candle { 0%,100% { opacity:0.9; box-shadow: 0 0 16px 4px #ffd78e; } 50% { opacity:1; box-shadow: 0 0 24px 8px #ffdfa0; } }
@keyframes sw-slender { 0%,100% { transform:translateX(0) rotate(-1deg); } 33% { transform:translateX(4px) rotate(2deg); } 66% { transform:translateX(-3px) rotate(-1deg); } }
@keyframes sw-anne { 0%,100% { transform:translateX(0) rotate(1deg); } 50% { transform:translateX(-2px) rotate(-1deg); } }
@keyframes sw-hand { 0% { transform:rotate(0deg) scale(1); } 100% { transform:rotate(15deg) scale(1.1); } }
@keyframes sw-frill { 0%,100% { transform:scale(1) rotate(0deg); } 50% { transform:scale(1.3) rotate(10deg); } }

/* ===== anne-protest (tense, bright interior) ===== */
.scn-anne-protest {
  background:
    linear-gradient(160deg, #e8dcc8 0%, #cbb89a 50%, #a68e6a 100%),
    radial-gradient(ellipse at 40% 60%, #d4c4a8 0%, transparent 70%);
}
.scn-anne-protest .chamber {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #ede0c8 0%, #d2bf9a 60%, #b8a07a 100%);
}
.scn-anne-protest .window-bars {
  position:absolute; top:10%; right:12%; width:80px; height:110px;
  border-right: 3px solid #6a5a3a;
  border-left: 3px solid #6a5a3a;
  background: repeating-linear-gradient(0deg, transparent 0px, transparent 14px, #7a6a4a 14px, #7a6a4a 16px);
  border-radius: 4px;
  opacity:0.5;
  animation: ap-bars 3s ease-in-out infinite alternate;
}
.scn-anne-protest .anne-figure {
  position:absolute; bottom:10%; left:40%; width:26px; height:60px;
  background: linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 60%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ap-anne 1.6s ease-in-out infinite;
}
.scn-anne-protest .mother-figure {
  position:absolute; bottom:10%; left:52%; width:34px; height:56px;
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a40 60%, #1a1a2a 100%);
  border-radius: 45% 40% 30% 30% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: ap-mother 2.4s ease-in-out infinite 0.2s;
}
.scn-anne-protest .turnip {
  position:absolute; bottom:15%; left:34%; width:18px; height:16px;
  background: radial-gradient(circle at 40% 30%, #b08a5a 0%, #8a6a3a 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(0,0,0,0.4);
  animation: ap-turnip 1.5s ease-in-out infinite;
}
.scn-anne-protest .shadow-stripes {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: repeating-linear-gradient(0deg, rgba(0,0,0,0.15) 0px, rgba(0,0,0,0.15) 6px, transparent 6px, transparent 12px);
  animation: ap-stripes 4s linear infinite;
}
.scn-anne-protest .flung-arm {
  position:absolute; bottom:22%; left:44%; width:8px; height:20px;
  background: linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: ap-arm 1.8s ease-in-out infinite alternate;
}
@keyframes ap-bars { 0% { opacity:0.3; transform:scaleY(1); } 50% { opacity:0.6; transform:scaleY(1.05); } 100% { opacity:0.4; transform:scaleY(0.95); } }
@keyframes ap-anne { 0%,100% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(3px) rotate(5deg); } 50% { transform:translateX(-2px) rotate(-4deg); } 75% { transform:translateX(2px) rotate(3deg); } }
@keyframes ap-mother { 0%,100% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-2px) rotate(-2deg); } }
@keyframes ap-turnip { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(15deg); } }
@keyframes ap-stripes { 0% { background-position:0 0; } 100% { background-position:0 12px; } }
@keyframes ap-arm { 0% { transform:rotate(-20deg) scaleY(1); } 100% { transform:rotate(30deg) scaleY(1.2); } }

/* ===== fenton-ring-delivery (warm, bright interior) ===== */
.scn-fenton-ring-delivery {
  background:
    linear-gradient(180deg, #fceccc 0%, #f2d8a8 50%, #e0be82 100%),
    radial-gradient(ellipse at 60% 20%, #ffefd6 0%, transparent 60%);
}
.scn-fenton-ring-delivery .warm-room {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #fbe4ba 0%, #eccd96 60%, #d6b072 100%);
}
.scn-fenton-ring-delivery .window-glow {
  position:absolute; top:6%; left:10%; width:100px; height:130px;
  background: radial-gradient(ellipse, #fff6d6 0%, #f5deb3 70%, transparent 100%);
  border-radius: 8px; opacity:0.7;
  animation: fr-window 9s ease-in-out infinite alternate;
}
.scn-fenton-ring-delivery .fenton-figure {
  position:absolute; bottom:10%; left:38%; width:30px; height:62px;
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a40 60%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: fr-fenton 4s ease-in-out infinite;
}
.scn-fenton-ring-delivery .anne-figure {
  position:absolute; bottom:10%; left:50%; width:26px; height:58px;
  background: linear-gradient(180deg, #7a4a3a 0%, #5a3a2a 60%, #3a2a1a 100%);
  border-radius: 45% 40% 30% 30% / 75% 70% 25% 25%;
  transform-origin: bottom center;
  animation: fr-anne 4.5s ease-in-out infinite 0.4s;
}
.scn-fenton-ring-delivery .ring {
  position:absolute; bottom:24%; left:46%; width:10px; height:10px;
  background: radial-gradient(circle at 50% 40%, #ffe066 0%, #d4a040 70%, #b08830 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #ffd966, 0 0 24px 6px rgba(255,217,102,0.4);
  animation: fr-ring 2s ease-in-out infinite alternate;
}
.scn-fenton-ring-delivery .breath-hearts {
  position:absolute; top:20%; left:45%; width:12px; height:12px;
  background: radial-gradient(circle, #e87878 0%, #c8554a 100%);
  border-radius: 50% 50% 0 50%;
  transform: rotate(45deg) scale(0.8);
  animation: fr-hearts 3s ease-in-out infinite;
}
.scn-fenton-ring-delivery .hem-drape {
  position:absolute; bottom:0; left:0; right:0; height:18%;
  background: linear-gradient(180deg, transparent 0%, #c8a878 30%, #a08050 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: fr-drape 7s ease-in-out infinite alternate;
}
@keyframes fr-window { 0% { opacity:0.5; transform:scaleX(0.95); } 50% { opacity:0.8; transform:scaleX(1.05); } 100% { opacity:0.7; transform:scaleX(1); } }
@keyframes fr-fenton { 0%,100% { transform:translateX(0) rotate(0deg); } 33% { transform:translateX(3px) rotate(2deg); } 66% { transform:translateX(-2px) rotate(-1deg); } }
@keyframes fr-anne { 0%,100% { transform:translateX(0) rotate(1deg); } 50% { transform:translateX(-2px) rotate(-2deg); } }
@keyframes fr-ring { 0% { transform:scale(0.9) rotate(0deg); opacity:0.7; } 50% { transform:scale(1.3) rotate(15deg); opacity:1; } 100% { transform:scale(1) rotate(-5deg); opacity:0.8; } }
@keyframes fr-hearts { 0%,100% { transform:rotate(45deg) scale(0.8); opacity:0.6; } 50% { transform:rotate(45deg) scale(1.5); opacity:1; } }
@keyframes fr-drape { 0% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-3px) scaleY(1.02); } 100% { transform:translateY(0) scaleY(0.98); } }

/* item-witch-disguise */
.scn-item-witch-disguise {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d9c49a 50%, #b89a6b 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e7 0%, transparent 70%);
}
.scn-item-witch-disguise .bg-deep { position:absolute; inset:0; background: linear-gradient(135deg, #c9b894 0%, #a88860 100%); }
.scn-item-witch-disguise .window { position:absolute; top:18%; left:30%; width:100px; height:120px; background: linear-gradient(180deg, #fff8e7 0%, #f0dbc0 100%); border-radius: 8px; box-shadow: inset 0 0 30px #fff8e7, 0 0 40px rgba(255,248,231,.3); animation: iwd-glow 4s ease-in-out infinite alternate; }
.scn-item-witch-disguise .figure { position:absolute; bottom:20%; left:50%; width:60px; height:140px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2420 0%, #1a1410 100%); border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%; animation: iwd-sway 2.5s ease-in-out infinite; }
.scn-item-witch-disguise .hat { position:absolute; bottom:65%; left:50%; width:80px; height:40px; transform:translateX(-50%) rotate(-5deg); background: linear-gradient(135deg, #3a2a20 0%, #1a1210 100%); clip-path: polygon(20% 100%, 80% 100%, 50% 0%); animation: iwd-bob 3s ease-in-out infinite; }
.scn-item-witch-disguise .cloak { position:absolute; bottom:20%; left:42%; width:70px; height:100px; background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%); border-radius: 40% 40% 30% 30%; transform: rotate(4deg); animation: iwd-drift 5s ease-in-out infinite; }
.scn-item-witch-disguise .mask { position:absolute; bottom:44%; left:50%; width:24px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #c8553d 0%, #8a3a28 70%); border-radius: 50% 50% 40% 40%; box-shadow: 0 0 8px 2px #8a3a28; animation: iwd-turn 6s ease-in-out infinite; }
.scn-item-witch-disguise .shadow-fig { position:absolute; bottom:8%; left:35%; width:120px; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 100%); filter: blur(4px); animation: iwd-shrink 3s ease-in-out infinite; }
@keyframes iwd-glow { 0% { opacity:.7; box-shadow: inset 0 0 20px #fff8e7, 0 0 30px rgba(255,248,231,.2); } 50% { opacity:1; box-shadow: inset 0 0 60px #fff8e7, 0 0 80px rgba(255,248,231,.5); } 100% { opacity:.8; box-shadow: inset 0 0 30px #fff8e7, 0 0 40px rgba(255,248,231,.3); } }
@keyframes iwd-sway { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-52%) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes iwd-bob { 0%,100% { transform: translateX(-50%) rotate(-5deg) translateY(0); } 50% { transform: translateX(-50%) rotate(-7deg) translateY(-3px); } }
@keyframes iwd-drift { 0%,100% { transform: rotate(4deg) translateX(0); } 50% { transform: rotate(6deg) translateX(4px); } }
@keyframes iwd-turn { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-48%) scale(1.05); } }
@keyframes iwd-shrink { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.85); } }

/* ford-house-basket-again */
.scn-ford-house-basket-again {
  background:
    linear-gradient(180deg, #e6d5b8 0%, #c4a87a 50%, #9c7e52 100%),
    radial-gradient(ellipse at 40% 60%, #f5edd6 0%, transparent 70%);
}
.scn-ford-house-basket-again .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #d4be96 0%, #b09670 100%); }
.scn-ford-house-basket-again .table { position:absolute; bottom:10%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #8a6e4a 0%, #6a5030 100%); border-radius: 4px; box-shadow: 0 -6px 12px rgba(0,0,0,.2); }
.scn-ford-house-basket-again .basket { position:absolute; bottom:20%; left:35%; width:90px; height:60px; background: repeating-linear-gradient(45deg, #bc9a6a 0%, #bc9a6a 4px, #a08050 4px, #a08050 8px); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 12px rgba(0,0,0,.3); animation: fhb-shake 2s ease-in-out infinite; }
.scn-ford-house-basket-again .basket-figure { position:absolute; bottom:22%; left:40%; width:30px; height:40px; background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%); border-radius: 40% 40% 30% 30%; transform: rotate(8deg); animation: fhb-curdle 3s ease-in-out infinite; }
.scn-ford-house-basket-again .lid { position:absolute; bottom:38%; left:32%; width:100px; height:12px; background: linear-gradient(135deg, #b89668 0%, #9a7a4a 100%); border-radius: 8px 8px 0 0; transform: rotate(-12deg); transform-origin: left center; animation: fhb-tilt 4s ease-in-out infinite; }
.scn-ford-house-basket-again .shadow-basket { position:absolute; bottom:12%; left:30%; width:110px; height:16px; background: radial-gradient(ellipse, rgba(0,0,0,.25) 0%, transparent 100%); filter: blur(3px); animation: fhb-spread 2.5s ease-in-out infinite; }
@keyframes fhb-shake { 0%,100% { transform: rotate(0deg); } 20% { transform: rotate(-3deg); } 40% { transform: rotate(3deg); } 60% { transform: rotate(-2deg); } 80% { transform: rotate(2deg); } }
@keyframes fhb-curdle { 0%,100% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } }
@keyframes fhb-tilt { 0%,100% { transform: rotate(-12deg); } 50% { transform: rotate(-20deg); } }
@keyframes fhb-spread { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } }

/* witch-of-brentford */
.scn-witch-of-brentford {
  background:
    linear-gradient(180deg, #d9c8a8 0%, #b89a7a 40%, #907258 100%),
    radial-gradient(ellipse at 60% 20%, #f5edd6 0%, transparent 60%);
}
.scn-witch-of-brentford .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #c4aa82 0%, #a88862 100%); }
.scn-witch-of-brentford .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: repeating-linear-gradient(90deg, #907258 0%, #907258 8px, #7a6042 8px, #7a6042 16px); border-radius: 0; }
.scn-witch-of-brentford .figure-old { position:absolute; bottom:30%; left:45%; width:50px; height:110px; background: linear-gradient(180deg, #2a2420 0%, #1a1410 100%); border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%; transform: skewX(3deg); animation: wob-creep 4s ease-in-out infinite; }
.scn-witch-of-brentford .staff { position:absolute; bottom:28%; left:52%; width:8px; height:100px; background: linear-gradient(180deg, #6a5a42 0%, #4a3a2a 100%); border-radius: 4px; transform: rotate(10deg); transform-origin: bottom; animation: wob-staff 3s ease-in-out infinite; }
.scn-witch-of-brentford .broom { position:absolute; bottom:35%; left:38%; width:60px; height:8px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 4px; transform: rotate(-25deg); animation: wob-sweep 5s ease-in-out infinite; }
.scn-witch-of-brentford .shawl { position:absolute; bottom:45%; left:42%; width:70px; height:30px; background: linear-gradient(135deg, #6a5a42 0%, #4a3a2a 100%); border-radius: 60% 60% 40% 40%; filter: blur(1px); animation: wob-drape 6s ease-in-out infinite; }
.scn-witch-of-brentford .shadow-old { position:absolute; bottom:12%; left:40%; width:100px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.25) 0%, transparent 100%); filter: blur(5px); animation: wob-lengthen 4s ease-in-out infinite; }
@keyframes wob-creep { 0%,100% { transform: skewX(3deg) translateX(0); } 25% { transform: skewX(5deg) translateX(3px); } 50% { transform: skewX(3deg) translateX(0); } 75% { transform: skewX(1deg) translateX(-3px); } }
@keyframes wob-staff { 0%,100% { transform: rotate(10deg); } 50% { transform: rotate(15deg); } }
@keyframes wob-sweep { 0%,100% { transform: rotate(-25deg) translateY(0); } 50% { transform: rotate(-30deg) translateY(-2px); } }
@keyframes wob-drape { 0%,100% { transform: translateY(0); } 50% { transform: translateY(4px); } }
@keyframes wob-lengthen { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } }

/* aftermath-plot */
.scn-aftermath-plot {
  background:
    linear-gradient(180deg, #fce4c8 0%, #f0c8a0 50%, #d9ac82 100%),
    radial-gradient(ellipse at 80% 40%, #fff0d6 0%, transparent 60%);
}
.scn-aftermath-plot .bg-fun { position:absolute; inset:0; background: linear-gradient(135deg, #ffe8c4 0%, #f0d0a8 100%); }
.scn-aftermath-plot .altar { position:absolute; bottom:15%; left:50%; width:140px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #b89068 0%, #9a7250 100%); border-radius: 8px; box-shadow: 0 -4px 8px rgba(0,0,0,.2); }
.scn-aftermath-plot .cudgel { position:absolute; bottom:50%; left:50%; width:12px; height:70px; transform:translateX(-50%) rotate(15deg); background: linear-gradient(180deg, #a08050 0%, #7a5e36 100%); border-radius: 6px; transform-origin: bottom center; box-shadow: 0 0 10px rgba(0,0,0,.2); animation: amp-swing 2s ease-in-out infinite; }
.scn-aftermath-plot .ribbon { position:absolute; bottom:55%; left:50%; width:40px; height:6px; transform:translateX(-50%) rotate(45deg); background: linear-gradient(90deg, #e08040 0%, #f0a060 50%, #e08040 100%); border-radius: 3px; animation: amp-ribbon 3s ease-in-out infinite; }
.scn-aftermath-plot .figure-jester { position:absolute; bottom:20%; left:30%; width:40px; height:100px; background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%); border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: amp-jump 1.5s ease-in-out infinite; }
.scn-aftermath-plot .shadow-fun { position:absolute; bottom:10%; left:25%; width:70px; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,.2) 0%, transparent 100%); filter: blur(3px); animation: amp-squash 1.5s ease-in-out infinite; }
@keyframes amp-swing { 0%,100% { transform: translateX(-50%) rotate(15deg); } 50% { transform: translateX(-50%) rotate(-15deg); } }
@keyframes amp-ribbon { 0%,100% { transform: translateX(-50%) rotate(45deg) translateY(0); } 25% { transform: translateX(-50%) rotate(60deg) translateY(-4px); } 75% { transform: translateX(-50%) rotate(30deg) translateY(4px); } }
@keyframes amp-jump { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-10px); } }
@keyframes amp-squash { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } }

.scn-caius-seeks-green-box {
  background: linear-gradient(180deg, #1e1a16 0%, #2d241b 60%, #1a1510 100%), radial-gradient(ellipse at 30% 80%, #4a3b2a 0%, transparent 70%);
}
.scn-caius-seeks-green-box .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a2218 0%, #3c3024 50%, #201a14 100%);
  animation: cs-wall 12s ease-in-out infinite alternate;
}
.scn-caius-seeks-green-box .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2e20 0%, #1f1810 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-caius-seeks-green-box .caius {
  position: absolute; bottom: 20%; left: 20%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2d2218 0%, #16100a 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%;
  transform-origin: bottom center;
  animation: cs-caius 4s ease-in-out infinite;
}
.scn-caius-seeks-green-box .box {
  position: absolute; bottom: 38%; left: 58%; width: 20px; height: 16px;
  background: linear-gradient(135deg, #2e5a2e 0%, #1a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 0 12px 2px rgba(46,90,46,.3);
  animation: cs-box 6s ease-in-out infinite alternate;
}
.scn-caius-seeks-green-box .closet {
  position: absolute; bottom: 24%; right: 12%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1f14 0%, #1a120a 100%);
  border-radius: 6px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
}
.scn-caius-seeks-green-box .candle {
  position: absolute; bottom: 42%; left: 40%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #f0c070 0%, #b08030 100%);
  border-radius: 2px;
  box-shadow: 0 0 16px 6px #d09840, 0 0 32px 12px rgba(208,152,64,.3);
  animation: cs-candle 1.5s ease-in-out infinite alternate;
}
@keyframes cs-wall {
  0% { opacity: .7; filter: brightness(.95); }
  50% { opacity: .85; filter: brightness(1); }
  100% { opacity: .75; filter: brightness(.9); }
}
@keyframes cs-caius {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes cs-box {
  0% { box-shadow: 0 0 8px 1px rgba(46,90,46,.2); opacity: .9; }
  50% { box-shadow: 0 0 18px 4px rgba(46,90,46,.5); opacity: 1; }
  100% { box-shadow: 0 0 10px 2px rgba(46,90,46,.25); opacity: .92; }
}
@keyframes cs-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: .8; box-shadow: 0 0 14px 4px #c08830; }
  30% { transform: scaleY(1.05) scaleX(.95); opacity: 1; box-shadow: 0 0 20px 6px #e0a040; }
  70% { transform: scaleY(.97) scaleX(1.02); opacity: .9; box-shadow: 0 0 16px 5px #c08830; }
  100% { transform: scaleY(1) scaleX(1); opacity: .85; box-shadow: 0 0 14px 4px #b08030; }
}

.scn-item-green-box {
  background: linear-gradient(180deg, #1f1b17 0%, #2e251e 40%, #1a1510 100%), radial-gradient(ellipse at 60% 20%, #3e3228 0%, transparent 60%);
}
.scn-item-green-box .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #2a2218 0%, #3c3024 50%, #1f1814 100%);
  animation: ig-wall 15s ease-in-out infinite alternate;
}
.scn-item-green-box .arch {
  position: absolute; bottom: 20%; left: 20%; width: 50%; height: 80%;
  background: transparent;
  border: 6px solid #3a2e20;
  border-bottom: none;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
  animation: ig-arch 20s ease-in-out infinite;
}
.scn-item-green-box .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2c241a 0%, #1a140e 100%);
  box-shadow: inset 0 6px 15px rgba(0,0,0,.5);
}
.scn-item-green-box .rugby {
  position: absolute; bottom: 18%; left: 30%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #2a1f14 0%, #120e0a 100%);
  border-radius: 40% 40% 50% 50% / 60% 50% 40% 50%;
  transform-origin: bottom center;
  animation: ig-rugby 5s ease-in-out infinite;
}
.scn-item-green-box .rapier {
  position: absolute; bottom: 30%; left: 35%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #a08060 0%, #605040 100%);
  border-radius: 1px;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: ig-rapier 3s ease-in-out infinite alternate;
}
.scn-item-green-box .lantern {
  position: absolute; bottom: 50%; right: 25%; width: 8px; height: 12px;
  background: radial-gradient(circle, #d0b050 0%, #a08030 100%);
  border-radius: 3px;
  box-shadow: 0 0 20px 6px #c0a040, 0 0 40px 12px rgba(192,160,64,.3);
  animation: ig-lantern 2s ease-in-out infinite alternate;
}
@keyframes ig-wall {
  0% { filter: brightness(.9); }
  50% { filter: brightness(1.05); }
  100% { filter: brightness(.92); }
}
@keyframes ig-arch {
  0% { border-color: #3a2e20; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
  50% { border-color: #4a3e2e; box-shadow: inset 0 0 40px rgba(0,0,0,.7); }
  100% { border-color: #2e2218; box-shadow: inset 0 0 25px rgba(0,0,0,.55); }
}
@keyframes ig-rugby {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(3px) rotate(1deg); }
  60% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ig-rapier {
  0% { transform: rotate(12deg) scaleY(1); }
  50% { transform: rotate(18deg) scaleY(.98); }
  100% { transform: rotate(14deg) scaleY(1); }
}
@keyframes ig-lantern {
  0% { opacity: .7; box-shadow: 0 0 16px 4px #a08030; }
  50% { opacity: 1; box-shadow: 0 0 28px 8px #d0b050; }
  100% { opacity: .8; box-shadow: 0 0 18px 5px #b09040; }
}

.scn-simple-discovered {
  background: linear-gradient(180deg, #1a1612 0%, #2a2018 50%, #120e0a 100%), radial-gradient(ellipse at 70% 60%, #3a2a1e 0%, transparent 70%);
}
.scn-simple-discovered .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #221c14 0%, #342a1e 50%, #1a1410 100%);
  animation: sd-wall 10s ease-in-out infinite alternate;
}
.scn-simple-discovered .closet {
  position: absolute; bottom: 10%; right: 20%; width: 45px; height: 85px;
  background: linear-gradient(180deg, #2a1f14 0%, #1a120a 100%);
  border-radius: 8px;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.7), 0 0 20px rgba(0,0,0,.5);
  animation: sd-closet 8s ease-in-out infinite;
}
.scn-simple-discovered .door {
  position: absolute; bottom: 10%; right: 25%; width: 20px; height: 85px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e160e 100%);
  border-radius: 4px 0 0 4px;
  transform-origin: left center;
  animation: sd-door 5s ease-in-out infinite alternate;
}
.scn-simple-discovered .caius {
  position: absolute; bottom: 12%; left: 28%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #2d2218 0%, #14100a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 40% 50%;
  transform-origin: bottom center;
  animation: sd-caius 4s ease-in-out infinite;
}
.scn-simple-discovered .simple {
  position: absolute; bottom: 10%; left: 40%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #2a1e14 0%, #120e0a 100%);
  border-radius: 40% 50% 50% 40% / 50% 60% 50% 40%;
  transform-origin: bottom center;
  animation: sd-simple 4s ease-in-out infinite reverse;
}
.scn-simple-discovered .rug {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a2016 100%);
  border-radius: 50% / 100% 100% 0 0;
  transform: scaleX(1.1);
  box-shadow: inset 0 4px 8px rgba(0,0,0,.4);
  animation: sd-rug 12s ease-in-out infinite;
}
@keyframes sd-wall {
  0% { filter: brightness(.85); }
  50% { filter: brightness(1); }
  100% { filter: brightness(.88); }
}
@keyframes sd-closet {
  0% { box-shadow: inset 0 6px 12px rgba(0,0,0,.7), 0 0 20px rgba(0,0,0,.4); }
  50% { box-shadow: inset 0 8px 16px rgba(0,0,0,.8), 0 0 30px rgba(0,0,0,.6); }
  100% { box-shadow: inset 0 4px 10px rgba(0,0,0,.65), 0 0 20px rgba(0,0,0,.45); }
}
@keyframes sd-door {
  0% { transform: rotateY(0deg); opacity: .9; }
  50% { transform: rotateY(-15deg); opacity: .8; }
  100% { transform: rotateY(0deg); opacity: .95; }
}
@keyframes sd-caius {
  0% { transform: translateX(0) rotate(-3deg); }
  25% { transform: translateX(5px) rotate(2deg); }
  50% { transform: translateX(10px) rotate(-1deg); }
  75% { transform: translateX(5px) rotate(3deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes sd-simple {
  0% { transform: translateX(0) rotate(2deg); }
  20% { transform: translateX(-4px) rotate(-1deg); }
  50% { transform: translateX(-8px) rotate(3deg); }
  80% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes sd-rug {
  0% { transform: scaleX(1.1) translateY(0); }
  50% { transform: scaleX(1.05) translateY(-2px); }
  100% { transform: scaleX(1.1) translateY(0); }
}

.scn-caius-writes-challenge {
  background: linear-gradient(180deg, #1e1a16 0%, #2d241b 50%, #16120e 100%), radial-gradient(ellipse at 40% 60%, #3e3228 0%, transparent 70%);
}
.scn-caius-writes-challenge .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #2a2218 0%, #3c3024 50%, #1f1814 100%);
  animation: cw-wall 14s ease-in-out infinite alternate;
}
.scn-caius-writes-challenge .desk {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 10px;
  box-shadow: 0 8px 16px rgba(0,0,0,.6);
}
.scn-caius-writes-challenge .caius {
  position: absolute; bottom: 25%; left: 28%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #2d2218 0%, #14100a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 40% 50%;
  transform-origin: bottom center;
  animation: cw-caius 4s ease-in-out infinite;
}
.scn-caius-writes-challenge .paper {
  position: absolute; bottom: 28%; left: 42%; width: 24px; height: 18px;
  background: linear-gradient(180deg, #d8c8a0 0%, #b8a880 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  transform: rotate(-2deg);
  animation: cw-paper 8s ease-in-out infinite alternate;
}
.scn-caius-writes-challenge .ink {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 4px rgba(0,0,0,.5);
}
.scn-caius-writes-challenge .candle {
  position: absolute; bottom: 40%; left: 35%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #f0c070 0%, #b08030 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px #d09840, 0 0 40px 14px rgba(208,152,64,.3);
  animation: cw-candle 1.8s ease-in-out infinite alternate;
}
@keyframes cw-wall {
  0% { filter: brightness(.88); }
  50% { filter: brightness(1.02); }
  100% { filter: brightness(.9); }
}
@keyframes cw-caius {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes cw-paper {
  0% { transform: rotate(-2deg) translateY(0); opacity: .95; }
  50% { transform: rotate(-1deg) translateY(-1px); opacity: .98; }
  100% { transform: rotate(-3deg) translateY(0); opacity: .92; }
}
@keyframes cw-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: .75; box-shadow: 0 0 16px 4px #b08030; }
  30% { transform: scaleY(1.06) scaleX(.94); opacity: 1; box-shadow: 0 0 24px 6px #e0a040; }
  70% { transform: scaleY(.96) scaleX(1.03); opacity: .88; box-shadow: 0 0 18px 5px #c08830; }
  100% { transform: scaleY(1) scaleX(1); opacity: .8; box-shadow: 0 0 16px 4px #a07020; }
}

/* bears-in-town */
.scn-bears-in-town {
  background: linear-gradient(180deg, #f9e4b7 0%, #f5d0a0 30%, #d9b88a 100%), radial-gradient(ellipse at 50% 0%, #fff7e0 0%, transparent 60%);
}
.scn-bears-in-town .sky { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #b3d9ff 0%, #e6f0ff 60%, transparent); animation: bit-sky 14s ease-in-out infinite alternate; }
.scn-bears-in-town .clouds { position:absolute; top:12%; left:0; width:100%; height:20px; background:rgba(255,255,255,.7); border-radius:50%; filter:blur(8px); animation: bit-clouds 40s linear infinite; }
.scn-bears-in-town .bldg-left { position:absolute; bottom:40%; left:5%; width:40%; height:55%; background:linear-gradient(180deg, #c4a882 0%, #b09772 100%); border-radius:4% 4% 0 0; box-shadow:inset 0 -10px 20px rgba(0,0,0,.15); }
.scn-bears-in-town .bldg-right { position:absolute; bottom:40%; right:5%; width:35%; height:50%; background:linear-gradient(180deg, #b89e7a 0%, #a38763 100%); border-radius:4% 4% 0 0; box-shadow:inset 0 -10px 20px rgba(0,0,0,.2); }
.scn-bears-in-town .street { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(0deg, #8b7355 0%, #a0876a 40%, transparent); }
.scn-bears-in-town .bear { position:absolute; bottom:32%; left:30%; width:80px; height:70px; background:linear-gradient(180deg, #3d2b1f 0%, #241a12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bit-bear-walk 3s ease-in-out infinite; }
.scn-bears-in-town .man { position:absolute; bottom:34%; left:55%; width:20px; height:40px; background:linear-gradient(180deg, #5a3d2b 0%, #3a261a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bit-man-walk 4s ease-in-out infinite; }

@keyframes bit-sky { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes bit-clouds { 0% { transform: translateX(-100px); } 100% { transform: translateX(120vw); } }
@keyframes bit-bear-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(15px) translateY(-2px) rotate(0deg); } 50% { transform: translateX(30px) translateY(0) rotate(2deg); } 75% { transform: translateX(15px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes bit-man-walk { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(-8px) translateY(-1px) rotate(0deg); } 50% { transform: translateX(-16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(-8px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }

/* sackerson-bear */
.scn-sackerson-bear {
  background: linear-gradient(180deg, #f4d9a8 0%, #e8c68a 40%, #d4a76a 100%), radial-gradient(ellipse at 30% 80%, #fce4b0 0%, transparent 50%);
}
.scn-sackerson-bear .sky { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #c7e0ff 0%, transparent); animation: sb-sky 12s ease-in-out infinite alternate; }
.scn-sackerson-bear .arena { position:absolute; bottom:15%; left:10%; width:80%; height:75%; background:radial-gradient(ellipse at 50% 60%, #ab8a63 0%, #7d6243 100%); border-radius:50%; box-shadow:inset 0 20px 40px rgba(0,0,0,.3); animation: sb-arena 20s ease-in-out infinite; }
.scn-sackerson-bear .crowd-left { position:absolute; bottom:50%; left:2%; width:15%; height:30%; background: linear-gradient(180deg, #3d2b1f 0%, #1a120c 100%); border-radius:40% 40% 20% 20%; animation: sb-crowd 3s ease-in-out infinite; }
.scn-sackerson-bear .crowd-right { position:absolute; bottom:50%; right:2%; width:15%; height:30%; background: linear-gradient(180deg, #3d2b1f 0%, #1a120c 100%); border-radius:40% 40% 20% 20%; animation: sb-crowd 3s ease-in-out 1.5s infinite; }
.scn-sackerson-bear .bear { position:absolute; bottom:30%; left:38%; width:90px; height:80px; background:linear-gradient(180deg, #2a1f13 0%, #140e08 100%); border-radius:45% 55% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: sb-bear 5s ease-in-out infinite; }
.scn-sackerson-bear .post { position:absolute; bottom:28%; left:55%; width:8px; height:50px; background:linear-gradient(180deg, #5c4633 0%, #3b2d20 100%); border-radius:4px; animation: sb-post 7s ease-in-out infinite; }
.scn-sackerson-bear .chain { position:absolute; bottom:48%; left:48%; width:40px; height:4px; background:#7a6b5b; border-radius:2px; transform-origin: left center; animation: sb-chain 2s ease-in-out infinite alternate; }

@keyframes sb-sky { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes sb-arena { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes sb-crowd { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes sb-bear { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-4px) rotate(1deg); } 50% { transform: translateY(0) rotate(3deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes sb-post { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes sb-chain { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }

/* page-insists-dinner */
.scn-page-insists-dinner {
  background: linear-gradient(180deg, #ffe9c8 0%, #f7d9b0 60%, #dbb58a 100%), radial-gradient(ellipse at 50% 100%, #fff3df 0%, transparent 70%);
}
.scn-page-insists-dinner .doorway { position:absolute; bottom:20%; left:20%; width:60%; height:70%; background:linear-gradient(135deg, #b58c6a 0%, #8a6a4e 100%); border-radius:40% 40% 0 0 / 30% 30% 0 0; box-shadow:inset 0 20px 40px rgba(0,0,0,.2); animation: pid-doorway 10s ease-in-out infinite alternate; }
.scn-page-insists-dinner .interior-dim { position:absolute; bottom:23%; left:25%; width:50%; height:60%; background:radial-gradient(ellipse at 30% 50%, #c9a87c 0%, #9a7f5f 100%); border-radius:20% 20% 0 0; filter: blur(8px); }
.scn-page-insists-dinner .table { position:absolute; bottom:28%; left:30%; width:40%; height:18%; background:linear-gradient(180deg, #8a7055 0%, #6f583f 100%); border-radius:40% 40% 20% 20%; box-shadow:0 4px 8px rgba(0,0,0,.3); animation: pid-table 6s ease-in-out infinite; }
.scn-page-insists-dinner .chair-a { position:absolute; bottom:20%; left:32%; width:12%; height:30%; background:linear-gradient(180deg, #5f4a38 0%, #3f3024 100%); border-radius:20% 20% 10% 10%; transform-origin: bottom; animation: pid-chair 4s ease-in-out infinite; }
.scn-page-insists-dinner .chair-b { position:absolute; bottom:20%; right:32%; width:12%; height:30%; background:linear-gradient(180deg, #5f4a38 0%, #3f3024 100%); border-radius:20% 20% 10% 10%; transform-origin: bottom; animation: pid-chair 4s ease-in-out 2s infinite; }
.scn-page-insists-dinner .figure-a { position:absolute; bottom:25%; left:28%; width:18px; height:40px; background:linear-gradient(180deg, #3d2e20 0%, #1f160e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pid-figure-a 3.5s ease-in-out infinite; }
.scn-page-insists-dinner .figure-b { position:absolute; bottom:25%; right:28%; width:22px; height:44px; background:linear-gradient(180deg, #4b3827 0%, #2b1f14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pid-figure-b 4.2s ease-in-out infinite; }

@keyframes pid-doorway { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes pid-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pid-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes pid-figure-a { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-3px) translateY(-1px) rotate(-3deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes pid-figure-b { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(5px) translateY(-2px) rotate(5deg); } 60% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }

/* evans-sends-simple */
.scn-evans-sends-simple {
  background: linear-gradient(180deg, #f0dbb5 0%, #e0c69e 50%, #c9af87 100%), radial-gradient(ellipse at 20% 80%, #fff3e0 0%, transparent 60%);
}
.scn-evans-sends-simple .sky { position:absolute; inset:0 0 45% 0; background:linear-gradient(180deg, #a8d1f0 0%, transparent); animation: ess-sky 15s ease-in-out infinite alternate; }
.scn-evans-sends-simple .building { position:absolute; bottom:40%; left:5%; width:30%; height:50%; background:linear-gradient(180deg, #b5977a 0%, #9d8065 100%); border-radius:5% 5% 0 0; box-shadow:inset 0 -10px 20px rgba(0,0,0,.15); }
.scn-evans-sends-simple .sign { position:absolute; bottom:55%; left:22%; width:40px; height:20px; background:linear-gradient(180deg, #d4b48a 0%, #b8956e 100%); border-radius:4px; transform-origin: bottom left; animation: ess-sign 6s ease-in-out infinite alternate; }
.scn-evans-sends-simple .figure-evans { position:absolute; bottom:35%; left:22%; width:24px; height:50px; background:linear-gradient(180deg, #3d2b1f 0%, #241a12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ess-evans 5s ease-in-out infinite; }
.scn-evans-sends-simple .figure-simple { position:absolute; bottom:35%; left:38%; width:18px; height:38px; background:linear-gradient(180deg, #2d1f14 0%, #170e08 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ess-simple 4s ease-in-out infinite; }
.scn-evans-sends-simple .street { position:absolute; bottom:0; left:0; right:0; height:45%; background:linear-gradient(0deg, #7c684c 0%, #a78b6e 40%, transparent); }

@keyframes ess-sky { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes ess-sign { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes ess-evans { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(3deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ess-simple { 0% { transform: translateY(0) translateX(0); } 30% { transform: translateY(-2px) translateX(4px); } 60% { transform: translateY(0) translateX(0); } 100% { transform: translateY(-1px) translateX(2px); } }

.scn-boarding-above-deck { background: linear-gradient(180deg, #6ab0e6 0%, #4a8fc4 40%, #2a6a94 100%), radial-gradient(ellipse at 30% 100%, #4a8fc4 0%, transparent 60%); }
.scn-boarding-above-deck .sky    { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #8ec8f0 0%, #4a8fc4 100%); animation: bad-sky 12s ease-in-out infinite alternate; }
.scn-boarding-above-deck .sea    { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a6a8a 0%, #1a4a6a 100%), repeating-linear-gradient(90deg, transparent 0px, transparent 12px, rgba(255,255,255,0.08) 12px, rgba(255,255,255,0.08) 14px); animation: bad-sea 8s ease-in-out infinite alternate; }
.scn-boarding-above-deck .deck   { position:absolute; bottom:22%; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 8px 12px rgba(0,0,0,0.5); }
.scn-boarding-above-deck .railing{ position:absolute; bottom:38%; left:5%; right:5%; height:4%; background: linear-gradient(90deg, #4a2a1a 0%, #6a3a2a 50%, #4a2a1a 100%); border-radius: 2px; box-shadow: 0 -2px 4px rgba(0,0,0,0.3); animation: bad-rail 6s ease-in-out infinite; }
.scn-boarding-above-deck .figure.fatman{ position:absolute; bottom:26%; left:30%; width:36px; height:48px; background: radial-gradient(ellipse at 50% 30%, #c8a06a 0%, #a0784a 70%, #5a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bad-fatman 3s ease-in-out infinite; }
.scn-boarding-above-deck .barrel { position:absolute; bottom:24%; left:60%; width:26px; height:30px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.6); animation: bad-barrel 5s ease-in-out infinite; }
.scn-boarding-above-deck .flag   { position:absolute; top:12%; right:20%; width:30px; height:20px; background: linear-gradient(180deg, #c8553d 0%, #a03a2a 100%); clip-path: polygon(0 0, 100% 0, 75% 50%, 100% 100%, 0 100%); transform-origin: top left; animation: bad-flag 2s ease-in-out infinite alternate; }
.scn-boarding-above-deck .cloud-a{ position:absolute; top:10%; left:10%; width:80px; height:20px; background: rgba(255,255,255,0.4); border-radius: 50%; filter: blur(8px); animation: bad-cloud 40s linear infinite; }
.scn-boarding-above-deck .cloud-b{ position:absolute; top:18%; right:5%; width:60px; height:15px; background: rgba(255,255,255,0.3); border-radius: 50%; filter: blur(6px); animation: bad-cloud 50s linear infinite reverse; animation-delay: -20s; }
@keyframes bad-sky   { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes bad-sea   { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes bad-rail  { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(0.5deg) } 75% { transform: rotate(-0.5deg) } }
@keyframes bad-fatman{ 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(0) translateY(-4px) rotate(0deg) } 75% { transform: translateX(-4px) translateY(-2px) rotate(-1deg) } }
@keyframes bad-barrel{ 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes bad-flag  { 0% { transform: rotate(0deg) scaleX(1) } 100% { transform: rotate(15deg) scaleX(0.8) } }
@keyframes bad-cloud { 0% { transform: translateX(-60px) } 100% { transform: translateX(140vw) } }

.scn-husbands-approaching { background: linear-gradient(180deg, #f0d080 0%, #d0a050 40%, #b08030 100%), radial-gradient(ellipse at 50% 0%, #f0e0a0 0%, transparent 60%); }
.scn-husbands-approaching .sky    { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #f0e0a0 0%, #d0b060 100%); animation: hap-sky 20s ease-in-out infinite alternate; }
.scn-husbands-approaching .sun    { position:absolute; top:5%; left:50%; width:40px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, #ffe080 0%, #f0c040 70%); border-radius:50%; box-shadow: 0 0 60px 20px #f0c040, 0 0 120px 40px rgba(240,192,64,0.3); animation: hap-sun 30s linear infinite; }
.scn-husbands-approaching .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8a8a4a 0%, #5a5a2a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; }
.scn-husbands-approaching .bush   { position:absolute; bottom:12%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 100%, #4a7a2a 0%, #2a5a1a 100%); border-radius:50%; filter: blur(2px); }
.scn-husbands-approaching .bush.left { left:15%; animation: hap-bush 8s ease-in-out infinite; }
.scn-husbands-approaching .bush.right{ right:20%; width:50px; height:35px; animation: hap-bush 10s ease-in-out infinite reverse; }
.scn-husbands-approaching .woman  { position:absolute; bottom:14%; width:24px; height:44px; background: linear-gradient(180deg, #b0586a 0%, #7a3840 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-husbands-approaching .woman.left { left:35%; animation: hap-woman-l 4s ease-in-out infinite; }
.scn-husbands-approaching .woman.right{ left:48%; animation: hap-woman-r 4s ease-in-out infinite 0.5s; }
.scn-husbands-approaching .man    { position:absolute; bottom:10%; left:70%; 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: hap-man 6s ease-in-out infinite; }
@keyframes hap-sky    { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes hap-sun    { 0% { transform:translateX(-50%) rotate(0deg) } 100% { transform:translateX(-50%) rotate(360deg) } }
@keyframes hap-bush   { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1) } }
@keyframes hap-woman-l{ 0%,100% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-3px) rotate(0deg) } 60% { transform: translateY(-1px) rotate(2deg) } }
@keyframes hap-woman-r{ 0%,100% { transform: translateY(0) rotate(2deg) } 30% { transform: translateY(-4px) rotate(0deg) } 60% { transform: translateY(-2px) rotate(-2deg) } }
@keyframes hap-man    { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(-2px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(-5px) translateY(-4px) rotate(0deg) } 75% { transform: translateX(-2px) translateY(-2px) rotate(-1deg) } }

.scn-horns-warning { background: linear-gradient(180deg, #4a8ab0 0%, #2a5a7a 40%, #1a3a4a 100%), radial-gradient(ellipse at 60% 100%, #2a5a7a 0%, transparent 70%); }
.scn-horns-warning .sky    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a9ac0 0%, #2a5a7a 100%); animation: hw-sky 15s ease-in-out infinite alternate; }
.scn-horns-warning .sun.light{ position:absolute; top:8%; left:70%; width:30px; height:30px; background: radial-gradient(circle, #ffe0a0 0%, #d0a040 70%); border-radius:50%; box-shadow: 0 0 40px 10px #d0a040, 0 0 80px 20px rgba(208,160,64,0.4); animation: hw-sun 25s linear infinite; }
.scn-horns-warning .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a6a4a 0%, #2a4a2a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-horns-warning .tree   { position:absolute; bottom:20%; left:10%; width:20px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom; animation: hw-tree 4s ease-in-out infinite; }
.scn-horns-warning .tree::before{ content:''; position:absolute; top:-20px; left:-10px; width:40px; height:30px; background: radial-gradient(ellipse at 50% 100%, #2a5a1a 0%, #1a3a0a 100%); border-radius:50%; }
.scn-horns-warning .figure.nym{ position:absolute; bottom:18%; left:45%; width:22px; 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: hw-nym 2s ease-in-out infinite; }
.scn-horns-warning .horn   { position:absolute; bottom:28%; left:52%; width:16px; height:8px; background: linear-gradient(90deg, #c8a06a 0%, #8a6a3a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; transform: rotate(-20deg); transform-origin: left center; animation: hw-horn 1.5s ease-in-out infinite alternate; }
.scn-horns-warning .bird   { position:absolute; top:15%; right:15%; width:16px; height:8px; background: #1a1a2a; border-radius: 50%; clip-path: polygon(0 50%, 100% 0, 100% 100%); transform-origin: center; animation: hw-bird 3s ease-in-out infinite; }
.scn-horns-warning .shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%); animation: hw-shadow 10s ease-in-out infinite alternate; }
@keyframes hw-sky   { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes hw-sun   { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(180deg) scale(1.1) } 100% { transform: rotate(360deg) scale(1) } }
@keyframes hw-tree  { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } }
@keyframes hw-nym   { 0%,100% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-3px) rotate(2deg) } 60% { transform: translateY(-1px) rotate(-2deg) } 80% { transform: translateY(-4px) rotate(1deg) } }
@keyframes hw-horn  { 0% { transform: rotate(-25deg) scaleY(1) } 100% { transform: rotate(-15deg) scaleY(0.9) } }
@keyframes hw-bird  { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-8px) rotate(-10deg) } }
@keyframes hw-shadow{ 0% { opacity:0.3 } 100% { opacity:0.7 } }

.scn-corpral-nyms-humour { background: linear-gradient(180deg, #f0e070 0%, #d0b050 40%, #b09030 100%), radial-gradient(ellipse at 30% 100%, #e0c060 0%, transparent 60%); }
.scn-corpral-nyms-humour .sky    { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f8e888 0%, #e0c060 100%); animation: cnh-sky 18s ease-in-out infinite alternate; }
.scn-corpral-nyms-humour .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #b0a060 0%, #8a7a4a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-corpral-nyms-humour .figure.falstaff{ position:absolute; bottom:18%; left:25%; width:40px; height:56px; background: radial-gradient(ellipse at 50% 20%, #d8b078 0%, #a08050 70%, #6a4a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cnh-falstaff 3s ease-in-out infinite; }
.scn-corpral-nyms-humour .figure.nym   { position:absolute; bottom:20%; left:55%; width:20px; height:38px; background: linear-gradient(180deg, #3a3a5a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cnh-nym 2.5s ease-in-out infinite 0.3s; }
.scn-corpral-nyms-humour .hat    { position:absolute; bottom:42%; left:23%; width:30px; height:14px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 0 0; transform: rotate(-5deg); animation: cnh-hat 4s ease-in-out infinite; }
.scn-corpral-nyms-humour .mug    { position:absolute; bottom:16%; left:42%; width:16px; height:20px; background: linear-gradient(180deg, #c8a06a 0%, #a0784a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; animation: cnh-mug 2s ease-in-out infinite alternate; }
.scn-corpral-nyms-humour .table  { position:absolute; bottom:10%; left:30%; right:30%; height:6%; background: linear-gradient(90deg, #7a5a3a 0%, #9a7a5a 50%, #7a5a3a 100%); border-radius: 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: cnh-table 6s ease-in-out infinite; }
@keyframes cnh-sky    { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cnh-falstaff{ 0%,100% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-4px) rotate(1deg) } 50% { transform: translateX(4px) translateY(-2px) rotate(0deg) } 75% { transform: translateY(-3px) rotate(-1deg) } }
@keyframes cnh-nym    { 0%,100% { transform: translateY(0) rotate(2deg) } 30% { transform: translateY(-3px) rotate(-1deg) } 60% { transform: translateX(-3px) translateY(-1px) rotate(1deg) } 80% { transform: translateY(-4px) rotate(-2deg) } }
@keyframes cnh-hat    { 0%,100% { transform: rotate(-8deg) } 50% { transform: rotate(-2deg) } }
@keyframes cnh-mug    { 0% { transform: translateY(0) rotate(0deg) } 100% { transform: translateY(-2px) rotate(10deg) } }
@keyframes cnh-table  { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }

/* mistress-ford-arrives */
.scn-mistress-ford-arrives {
  background:
    linear-gradient(180deg, #ffe6b0 0%, #ffcc80 40%, #f9a825 100%),
    radial-gradient(circle at 80% 20%, #fff4e0 0%, transparent 70%);
}
.scn-mistress-ford-arrives .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b3d9ff 0%, #cce5ff 100%);
  animation: mfa-sky 12s ease-in-out infinite alternate;
}
.scn-mistress-ford-arrives .sun {
  position: absolute; top: 15%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe082 0%, #ffb300 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #ffb300, 0 0 80px 30px rgba(255,179,0,0.3);
  animation: mfa-sun 6s ease-in-out infinite alternate;
}
.scn-mistress-ford-arrives .path {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #d2b48c 0%, #c4a882 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 5px 10px rgba(0,0,0,0.1);
  animation: mfa-path 15s ease-in-out infinite alternate;
}
.scn-mistress-ford-arrives .bush-left {
  position: absolute; bottom: 40%; left: 10%; width: 70px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #6b8e23 0%, #4a7c1a 70%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.2);
  animation: mfa-bush 18s ease-in-out infinite alternate;
}
.scn-mistress-ford-arrives .bush-right {
  position: absolute; bottom: 40%; right: 15%; width: 80px; height: 45px;
  background: radial-gradient(ellipse at 50% 100%, #6b8e23 0%, #4a7c1a 70%);
  border-radius: 60% 40% 10% 10%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.2);
  animation: mfa-bush 14s ease-in-out infinite alternate-reverse;
}
.scn-mistress-ford-arrives .figure-1 {
  position: absolute; bottom: 33%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #8b4513 0%, #5c2e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mfa-walk1 4s ease-in-out infinite;
}
.scn-mistress-ford-arrives .figure-2 {
  position: absolute; bottom: 33%; right: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #8b4513 0%, #5c2e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mfa-walk2 4s ease-in-out infinite;
}
.scn-mistress-ford-arrives .flower-1 {
  position: absolute; bottom: 38%; left: 30%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ff69b4 0%, #c8507a 80%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #ff69b4;
  animation: mfa-flower 3s ease-in-out infinite alternate;
}
.scn-mistress-ford-arrives .flower-2 {
  position: absolute; bottom: 38%; right: 30%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ff69b4 0%, #c8507a 80%);
  border-radius: 50%;
  box-shadow: 0 0 4px 2px #ff69b4;
  animation: mfa-flower 2.5s ease-in-out infinite alternate-reverse;
}
@keyframes mfa-sky    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes mfa-sun    { 0% { transform: scale(0.95) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes mfa-path   { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mfa-bush   { 0% { transform: scale(1) } 50% { transform: scale(1.03) rotate(1deg) } 100% { transform: scale(1) } }
@keyframes mfa-walk1  { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes mfa-walk2  { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 25% { transform: translateX(-8px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(-16px) translateY(0) rotate(1deg) } 75% { transform: translateX(-24px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(-32px) translateY(0) rotate(0) } }
@keyframes mfa-flower { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }

/* knighted-nonsense */
.scn-knighted-nonsense {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e0c9a6 40%, #d19c5e 100%),
    radial-gradient(circle at 30% 40%, #fff8e1 0%, transparent 70%);
}
.scn-knighted-nonsense .wall {
  position: absolute; inset: 0 0 20% 0;
  background: repeating-linear-gradient(90deg, #d4b896 0px, #d4b896 4px, #c4a882 4px, #c4a882 8px);
  animation: knn-wall 2s linear infinite;
}
.scn-knighted-nonsense .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #6b4226 0%, #4a2e1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 8px 15px rgba(0,0,0,0.3);
  animation: knn-table 10s ease-in-out infinite alternate;
}
.scn-knighted-nonsense .helmet {
  position: absolute; bottom: 40%; left: 25%; width: 40px; height: 35px;
  background: linear-gradient(180deg, #a0a0a0 0%, #707070 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3), 0 5px 10px rgba(0,0,0,0.2);
  animation: knn-helmet 3s ease-in-out infinite alternate;
}
.scn-knighted-nonsense .helmet::after {
  content: ""; position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
  width: 20px; height: 15px;
  background: linear-gradient(180deg, #ff6347 0%, #c8553d 100%);
  border-radius: 50% 50% 0 0;
  animation: knn-plume 2s ease-in-out infinite alternate;
}
.scn-knighted-nonsense .figure-knight {
  position: absolute; bottom: 22%; left: 28%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #8b4513 0%, #5c2e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: knn-bow 5s ease-in-out infinite;
}
.scn-knighted-nonsense .scroll {
  position: absolute; bottom: 28%; left: 48%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 3px 6px rgba(0,0,0,0.2);
  animation: knn-scroll 4s ease-in-out infinite alternate;
}
.scn-knighted-nonsense .sword {
  position: absolute; bottom: 30%; left: 60%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 20% 20% 0 0;
  transform-origin: bottom center;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: knn-sword 2s ease-in-out infinite alternate;
}
@keyframes knn-wall  { 0% { background-position: 0 0 } 100% { background-position: 8px 0 } }
@keyframes knn-table  { 0% { transform: scale(1) } 50% { transform: scale(0.98) translateY(2px) } 100% { transform: scale(1) } }
@keyframes knn-helmet { 0% { transform: rotate(-2deg) } 50% { transform: rotate(0deg) scale(1.02) } 100% { transform: rotate(2deg) } }
@keyframes knn-plume  { 0% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(5deg) } 100% { transform: translateX(-50%) rotate(-5deg) } }
@keyframes knn-bow    { 0% { transform: rotate(0deg) } 25% { transform: rotate(-15deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(15deg) } 100% { transform: rotate(0deg) } }
@keyframes knn-scroll { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes knn-sword  { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-3px) } 100% { transform: rotate(0deg) translateY(0) } }

/* whale-ashore */
.scn-whale-ashore {
  background:
    linear-gradient(180deg, #a4d8f0 0%, #7ec8e3 40%, #5fa8d3 100%),
    radial-gradient(circle at 70% 60%, #cce5ff 0%, transparent 60%);
}
.scn-whale-ashore .sky-whale {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%);
  animation: waa-sky 20s ease-in-out infinite alternate;
}
.scn-whale-ashore .sea {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5fa8d3 0%, #2e6b8a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: waa-sea 10s ease-in-out infinite alternate;
}
.scn-whale-ashore .sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c2b280 0%, #a08c5c 100%);
  border-radius: 30% 20% 0 0 / 20% 15% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.15);
}
.scn-whale-ashore .whale-body {
  position: absolute; bottom: 25%; left: 30%; width: 120px; height: 60px;
  background: radial-gradient(ellipse at 40% 50%, #4a6fa5 0%, #2c4a6e 100%);
  border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.3), inset 0 -10px 15px rgba(0,0,0,0.2);
  animation: waa-whale 6s ease-in-out infinite;
}
.scn-whale-ashore .oil-slick {
  position: absolute; bottom: 28%; left: 35%; width: 80px; height: 15px;
  background: radial-gradient(ellipse at 50% 50%, rgba(50,50,50,0.8) 0%, rgba(30,30,30,0.4) 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: waa-oil 8s ease-in-out infinite alternate;
}
.scn-whale-ashore .figure-revenger {
  position: absolute; bottom: 22%; right: 25%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #5c3a1e 0%, #3a2010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: waa-figure 5s ease-in-out infinite;
}
.scn-whale-ashore .gull {
  position: absolute; top: 15%; right: 20%; width: 20px; height: 12px;
  background: linear-gradient(180deg, #ffffff 0%, #d0d0d0 100%);
  border-radius: 50% 50% 0 0;
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: waa-gull 15s linear infinite;
}
@keyframes waa-sky    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes waa-sea    { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes waa-whale  { 0% { transform: scale(1) rotate(0deg) } 25% { transform: scale(0.98) rotate(-2deg) } 50% { transform: scale(1) rotate(0deg) } 75% { transform: scale(0.99) rotate(2deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes waa-oil    { 0% { transform: scaleX(1) opacity:0.6 } 50% { transform: scaleX(1.2) opacity:0.8 } 100% { transform: scaleX(1) opacity:0.6 } }
@keyframes waa-figure { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(5px) rotate(0deg) } 50% { transform: translateX(10px) rotate(3deg) } 75% { transform: translateX(5px) rotate(0deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes waa-gull   { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }

/* twin-letters */
.scn-twin-letters {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e0c9a6 40%, #d19c5e 100%),
    radial-gradient(circle at 50% 70%, #fff8e1 0%, transparent 60%);
}
.scn-twin-letters .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 60%;
  background: linear-gradient(180deg, #6b4226 0%, #4a2e1a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.3);
  animation: tle-desk 12s ease-in-out infinite alternate;
}
.scn-twin-letters .letter-a {
  position: absolute; bottom: 30%; left: 20%; width: 50px; height: 35px;
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%);
  border: 2px solid #a08060;
  border-radius: 5% 10% 5% 5%;
  box-shadow: 3px 3px 6px rgba(0,0,0,0.2);
  animation: tle-letter 6s ease-in-out infinite;
}
.scn-twin-letters .letter-b {
  position: absolute; bottom: 30%; right: 20%; width: 50px; height: 35px;
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%);
  border: 2px solid #a08060;
  border-radius: 10% 5% 5% 5%;
  box-shadow: -3px 3px 6px rgba(0,0,0,0.2);
  animation: tle-letter 6s ease-in-out infinite 2s;
}
.scn-twin-letters .quill {
  position: absolute; bottom: 35%; left: 50%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #e0e0e0 0%, #a0a0a0 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform-origin: bottom center;
  animation: tle-quill 2s ease-in-out infinite alternate;
}
.scn-twin-letters .hand {
  position: absolute; bottom: 28%; left: 45%; width: 22px; height: 30px;
  background: linear-gradient(180deg, #d2a679 0%, #b88563 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: tle-hand 4s ease-in-out infinite;
}
.scn-twin-letters .inkpot {
  position: absolute; bottom: 20%; left: 48%; width: 15px; height: 18px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: tle-inkpot 8s ease-in-out infinite alternate;
}
@keyframes tle-desk   { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes tle-letter { 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 tle-quill  { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes tle-hand   { 0% { transform: translateX(0) } 25% { transform: translateX(5px) } 50% { transform: translateX(0) } 75% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes tle-inkpot { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

.scn-buck-basket-ready {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #cbb59a 40%, #a0846c 100%),
    radial-gradient(ellipse at 70% 20%, #f5edd0 0%, transparent 60%);
}
.scn-buck-basket-ready .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(180,160,130,0.2) 45%, rgba(80,60,40,0.15) 55%);
  animation: bb-shadowsway 6s ease-in-out infinite alternate;
}
.scn-buck-basket-ready .window-streak {
  position: absolute; top: 8%; left: 15%; width: 40px; height: 180px;
  background: linear-gradient(180deg, rgba(255,240,210,0.6), rgba(200,180,150,0.1) 60%, transparent);
  border-radius: 2px; transform: skewX(-6deg);
  box-shadow: 2px 0 12px rgba(255,230,180,0.3);
  animation: bb-streak 9s ease-in-out infinite;
}
.scn-buck-basket-ready .basket {
  position: absolute; bottom: 18%; left: 35%; width: 120px; height: 80px;
  background: linear-gradient(45deg, #8b6f4c 0%, #a48356 30%, #7a5e3e 70%, #5e452b 100%);
  border-radius: 12% 12% 8% 8% / 20% 20% 10% 10%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3), 0 8px 16px rgba(0,0,0,0.4);
  transform: rotate(-1deg);
  animation: bb-basket 4s ease-in-out infinite alternate;
}
.scn-buck-basket-ready .basket-lid {
  position: absolute; bottom: calc(18% + 78px); left: 35%; width: 120px; height: 18px;
  background: linear-gradient(180deg, #a8885a, #7a5e3e);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.2);
  transform-origin: bottom center;
  animation: bb-lid 2s ease-in-out infinite alternate;
}
.scn-buck-basket-ready .servant-left {
  position: absolute; bottom: 18%; left: 18%; width: 40px; height: 120px;
  background: linear-gradient(180deg, #4a3e30 0%, #3a2e20 60%, #2a1e10 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: bb-servant 7s ease-in-out infinite;
}
.scn-buck-basket-ready .servant-right {
  position: absolute; bottom: 18%; right: 22%; width: 38px; height: 110px;
  background: linear-gradient(180deg, #3e3224 0%, #2e2214 60%, #1e1208 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
  animation: bb-servant 7s ease-in-out infinite reverse;
}
.scn-buck-basket-ready .table-edge {
  position: absolute; bottom: 22%; left: 20%; right: 20%; height: 8px;
  background: linear-gradient(90deg, transparent, #6a5a44 20%, #8a7a64 50%, #6a5a44 80%, transparent);
  border-radius: 2px;
  opacity: 0.5;
}
@keyframes bb-shadowsway {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes bb-streak {
  0%, 100% { opacity: 0.3; transform: scaleX(1) skewX(-6deg); }
  50% { opacity: 0.8; transform: scaleX(1.2) skewX(-4deg); }
}
@keyframes bb-basket {
  0% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(-0.5deg) translateY(1px); }
}
@keyframes bb-lid {
  0% { transform: rotateX(0deg); }
  50% { transform: rotateX(15deg); }
  100% { transform: rotateX(-5deg); }
}
@keyframes bb-servant {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(1px); }
}

.scn-robin-comes {
  background:
    linear-gradient(180deg, #f5edd0 0%, #e8d8b8 40%, #d4c0a0 100%),
    radial-gradient(ellipse at 50% 30%, #fff6e0 0%, transparent 60%);
}
.scn-robin-comes .bg-cottage {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(200,180,150,0.15) 30%, transparent 50%, rgba(160,140,110,0.1) 70%);
}
.scn-robin-comes .doorway {
  position: absolute; bottom: 0; left: 40%; width: 100px; height: 200px;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.2);
}
.scn-robin-comes .robin-figure {
  position: absolute; bottom: 0; left: 42%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #b87860 0%, #a06850 50%, #784828 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rc-enter 5s ease-in-out infinite;
}
.scn-robin-comes .robin-cap {
  position: absolute; bottom: 85px; left: 42%; width: 36px; height: 16px;
  background: linear-gradient(180deg, #c88848 0%, #a06830 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: rc-cap 5s ease-in-out infinite;
}
.scn-robin-comes .stool {
  position: absolute; bottom: 0; left: 60%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 10% 10% 20% 20% / 10% 10% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
}
.scn-robin-comes .jug {
  position: absolute; bottom: 40px; left: 62%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #c8b898 0%, #a08868 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: rc-jug 8s ease-in-out infinite;
}
@keyframes rc-enter {
  0% { transform: translateX(-10px) rotate(-2deg) scale(0.95); }
  25% { transform: translateX(0px) rotate(0deg) scale(1); }
  50% { transform: translateX(8px) rotate(1deg) scale(0.98); }
  75% { transform: translateX(-4px) rotate(-1deg) scale(1.02); }
  100% { transform: translateX(-10px) rotate(-2deg) scale(0.95); }
}
@keyframes rc-cap {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes rc-jug {
  0%, 100% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg) translateY(-1px); }
}

.scn-doublet-and-hose-promise {
  background:
    linear-gradient(180deg, #fff0d0 0%, #f0dbb0 40%, #dcc498 100%),
    radial-gradient(ellipse at 60% 20%, #ffeecc 0%, transparent 50%);
}
.scn-doublet-and-hose-promise .bg-workshop {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(180,160,130,0.12) 40%, transparent 60%);
}
.scn-doublet-and-hose-promise .doublet {
  position: absolute; top: 20%; left: 25%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #b06848 0%, #904830 30%, #703820 70%, #502818 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%;
  transform: rotate(-5deg);
  box-shadow: 4px 4px 12px rgba(0,0,0,0.2);
  animation: dh-doublet 6s ease-in-out infinite alternate;
}
.scn-doublet-and-hose-promise .tape-measure {
  position: absolute; top: 35%; left: 40%; width: 120px; height: 6px;
  background: linear-gradient(90deg, #d0b060 20%, #e8c870 40%, #f0d880 60%, #e0c068 80%);
  border-radius: 3px;
  transform: rotate(20deg) translateY(-10px);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: dh-tape 9s ease-in-out infinite;
}
.scn-doublet-and-hose-promise .boy-silhouette {
  position: absolute; bottom: 10%; left: 50%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dh-boy 4s ease-in-out infinite;
}
.scn-doublet-and-hose-promise .boy-arm {
  position: absolute; bottom: 50%; left: 55%; width: 25px; height: 8px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(-30deg);
  transform-origin: left center;
  animation: dh-arm 4s ease-in-out infinite;
}
.scn-doublet-and-hose-promise .scissors {
  position: absolute; top: 50%; right: 20%; width: 20px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #a0a0a0 0%, #707070 50%, #505050 100%);
  border-radius: 50% 50% 0 0 / 50% 50% 0 0;
  transform: rotate(15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: dh-scissors 7s ease-in-out infinite alternate;
}
@keyframes dh-doublet {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(4px); }
  100% { transform: rotate(-3deg) translateX(-2px); }
}
@keyframes dh-tape {
  0%, 100% { transform: rotate(20deg) translateY(-10px) scaleX(1); }
  50% { transform: rotate(25deg) translateY(-14px) scaleX(1.1); }
}
@keyframes dh-boy {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes dh-arm {
  0% { transform: rotate(-30deg); }
  50% { transform: rotate(-20deg); }
  100% { transform: rotate(-35deg); }
}
@keyframes dh-scissors {
  0% { transform: rotate(15deg) scale(1); }
  50% { transform: rotate(25deg) scale(1.05); }
  100% { transform: rotate(10deg) scale(0.98); }
}

.scn-falstaff-caught-heavenly-jewel {
  background:
    linear-gradient(180deg, #f8e8c0 0%, #e8d0a0 30%, #c8a880 70%, #a08060 100%),
    radial-gradient(ellipse at 40% 60%, #ffe8a0 0%, transparent 50%);
}
.scn-falstaff-caught-heavenly-jewel .bg-sunroom {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,200,100,0.15) 30%, transparent 60%, rgba(150,100,50,0.1) 80%);
}
.scn-falstaff-caught-heavenly-jewel .falstaff-form {
  position: absolute; bottom: 10%; left: 30%; width: 70px; height: 130px;
  background: linear-gradient(180deg, #503018 0%, #402410 60%, #301408 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  box-shadow: 6px 0 18px rgba(0,0,0,0.3);
  animation: fc-falstaff 6s ease-in-out infinite;
}
.scn-falstaff-caught-heavenly-jewel .mistress-form {
  position: absolute; bottom: 15%; left: 50%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #a08060 0%, #806040 60%, #604020 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(3deg);
  box-shadow: -4px 0 12px rgba(0,0,0,0.2);
  animation: fc-mistress 6s ease-in-out infinite reverse;
}
.scn-falstaff-caught-heavenly-jewel .golden-halo {
  position: absolute; top: 20%; left: 35%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(255,200,80,0.4) 0%, rgba(255,180,60,0.2) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: fc-halo 8s ease-in-out infinite alternate;
}
.scn-falstaff-caught-heavenly-jewel .jewel-glow {
  position: absolute; bottom: 55%; left: 48%; width: 16px; height: 16px;
  background: radial-gradient(circle, #ffd090 0%, #e8a860 60%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px rgba(255,208,144,0.5), 0 0 48px 16px rgba(255,200,80,0.3);
  animation: fc-jewel 3s ease-in-out infinite alternate;
}
.scn-falstaff-caught-heavenly-jewel .curtain-left {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(135deg, #a08050 0%, #806040 50%, #604020 100%);
  border-radius: 0 40% 0 0;
  opacity: 0.7;
  animation: fc-curtain 12s ease-in-out infinite alternate;
}
.scn-falstaff-caught-heavenly-jewel .curtain-right {
  position: absolute; top: 0; right: 0; width: 30%; height: 100%;
  background: linear-gradient(225deg, #a08050 0%, #806040 50%, #604020 100%);
  border-radius: 40% 0 0 0;
  opacity: 0.7;
  animation: fc-curtain 12s ease-in-out infinite alternate-reverse;
}
@keyframes fc-falstaff {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(6px); }
  100% { transform: rotate(-3deg) translateX(-2px); }
}
@keyframes fc-mistress {
  0% { transform: rotate(3deg) translateX(0); }
  50% { transform: rotate(-1deg) translateX(-4px); }
  100% { transform: rotate(1deg) translateX(2px); }
}
@keyframes fc-halo {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.95); }
}
@keyframes fc-jewel {
  0% { transform: scale(0.9); opacity: 0.8; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(1); opacity: 0.9; }
}
@keyframes fc-curtain {
  0% { transform: scaleX(0.95); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(0.98); }
}

.scn-marriage-proposal-to-anne { background: linear-gradient(180deg, #f7e4c0 0%, #f0c880 40%, #dba550 100%), radial-gradient(ellipse at 50% 100%, #dba550 0%, transparent 70%); }
.scn-marriage-proposal-to-anne .sky    { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #f7e4c0 0%, #f0c880 80%); animation: mp-sky 12s ease-in-out infinite alternate; }
.scn-marriage-proposal-to-anne .arch   { position:absolute; bottom:35%; left:50%; width:80px; height:120px; transform:translate(-50%,0); background: linear-gradient(180deg, #c8a87c 0%, #a08058 100%); border-radius:50% 50% 0 0/60% 60% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.2); animation: mp-arch 8s ease-in-out infinite alternate; }
.scn-marriage-proposal-to-anne .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #b8a060 0%, #8a7840 100%); border-radius:20% 40% 0 0/30% 50% 0 0; animation: mp-ground 10s ease-in-out infinite alternate; }
.scn-marriage-proposal-to-anne .anne   { position:absolute; bottom:30%; left:35%; width:20px; height:38px; background: linear-gradient(180deg, #b08050 0%, #704030 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin: bottom center; animation: mp-anne 4s ease-in-out infinite; }
.scn-marriage-proposal-to-anne .suitor { position:absolute; bottom:30%; left:50%; width:22px; height:40px; background: linear-gradient(180deg, #a07040 0%, #684830 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin: bottom center; animation: mp-suitor 4s ease-in-out infinite reverse; }
.scn-marriage-proposal-to-anne .ring   { position:absolute; bottom:44%; left:44%; width:8px; height:6px; background: radial-gradient(circle, #ffd080 0%, #e8a030 70%); border-radius:50%; box-shadow: 0 0 14px 4px rgba(255,208,128,.7); animation: mp-ring 3s ease-in-out infinite; }
.scn-marriage-proposal-to-anne .flowers{ position:absolute; bottom:40%; left:28%; width:30px; height:20px; background: repeating-linear-gradient(90deg, #b06030 0px, #b06030 3px, #d08050 3px, #d08050 6px); border-radius:50%; filter: blur(2px); animation: mp-flowers 6s ease-in-out infinite; }
.scn-marriage-proposal-to-anne .glow   { position:absolute; inset:10% 10% auto auto; width:120px; height:120px; background: radial-gradient(circle, rgba(255,230,160,.3) 0%, transparent 70%); border-radius:50%; animation: mp-glow 8s ease-in-out infinite alternate; }
@keyframes mp-sky    { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes mp-arch   { 0% { transform:translate(-50%,0) scale(1) } 50% { transform:translate(-50%,-2px) scale(1.02) } 100% { transform:translate(-50%,0) scale(1) } }
@keyframes mp-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes mp-anne   { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 25% { transform:translateX(6px) translateY(-1px) rotate(2deg) } 50% { transform:translateX(12px) translateY(0) rotate(-2deg) } 75% { transform:translateX(6px) translateY(-1px) rotate(1deg) } 100% { transform:translateX(0) translateY(0) rotate(0) } }
@keyframes mp-suitor { 0% { transform:translateX(0) translateY(0) rotate(2deg) } 25% { transform:translateX(-4px) translateY(-1px) rotate(-1deg) } 50% { transform:translateX(-8px) translateY(0) rotate(2deg) } 75% { transform:translateX(-4px) translateY(-1px) rotate(-1deg) } 100% { transform:translateX(0) translateY(0) rotate(0) } }
@keyframes mp-ring   { 0% { box-shadow: 0 0 10px 2px rgba(255,208,128,.5); opacity:.7 } 50% { box-shadow: 0 0 20px 6px rgba(255,208,128,.9); opacity:1 } 100% { box-shadow: 0 0 12px 3px rgba(255,208,128,.6); opacity:.8 } }
@keyframes mp-flowers{ 0% { transform:scale(1) rotate(0deg) } 50% { transform:scale(1.05) rotate(3deg) } 100% { transform:scale(1) rotate(0deg) } }
@keyframes mp-glow   { 0% { transform:scale(1); opacity:.3 } 50% { transform:scale(1.1); opacity:.5 } 100% { transform:scale(1); opacity:.3 } }

.scn-evans-knocks-at-page { background: linear-gradient(180deg, #f0d8b0 0%, #dba050 50%, #b88540 100%), radial-gradient(ellipse at 50% 80%, #b88540 0%, transparent 60%); }
.scn-evans-knocks-at-page .sky     { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #f0d8b0 0%, #e8c070 100%); animation: ek-sky 15s ease-in-out infinite alternate; }
.scn-evans-knocks-at-page .wall    { position:absolute; bottom:35%; left:10%; right:10%; height:50%; background: linear-gradient(135deg, #c8a070 0%, #a08058 100%); border-radius:8% 8% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: ek-wall 10s ease-in-out infinite alternate; }
.scn-evans-knocks-at-page .door    { position:absolute; bottom:38%; left:50%; width:60px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #7a5a40 0%, #5a3a20 100%); border-radius:6% 6% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: ek-door 8s ease-in-out infinite; }
.scn-evans-knocks-at-page .knocker { position:absolute; bottom:65%; left:50%; transform:translateX(-50%); width:12px; height:16px; background: radial-gradient(circle, #d0a060 0%, #a07840 70%); border-radius:40%; box-shadow: 0 0 8px 2px rgba(160,120,64,.5); animation: ek-knocker 3s ease-in-out infinite; }
.scn-evans-knocks-at-page .evans   { position:absolute; bottom:36%; left:30%; width:20px; height:36px; background: linear-gradient(180deg, #b08050 0%, #6a4830 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin: bottom center; animation: ek-evans 4s ease-in-out infinite; }
.scn-evans-knocks-at-page .lantern { position:absolute; bottom:38%; left:22%; width:8px; height:8px; background: radial-gradient(circle, #ffe080 0%, #d0a040 70%); border-radius:50%; box-shadow: 0 0 18px 6px rgba(255,224,128,.6); animation: ek-lantern 5s ease-in-out infinite alternate; }
.scn-evans-knocks-at-page .step    { position:absolute; bottom:32%; left:40%; right:40%; height:6px; background: linear-gradient(90deg, #a08860 0%, #c0a870 50%, #a08860 100%); border-radius:20%; animation: ek-step 10s ease-in-out infinite; }
.scn-evans-knocks-at-page .bush    { position:absolute; bottom:30%; left:5%; width:50px; height:30px; background: radial-gradient(ellipse at 50% 100%, #6a8a4a 0%, #4a6a2a 70%); border-radius:50%; filter: blur(3px); animation: ek-bush 12s ease-in-out infinite alternate; }
@keyframes ek-sky    { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ek-wall   { 0% { transform:scale(1) } 50% { transform:scale(1.01) } 100% { transform:scale(1) } }
@keyframes ek-door   { 0% { transform:translateX(-50%) } 50% { transform:translateX(-50%) translateY(-2px) } 100% { transform:translateX(-50%) } }
@keyframes ek-knocker{ 0% { transform:translateX(-50%) rotate(0deg) } 30% { transform:translateX(-50%) rotate(-6deg) } 60% { transform:translateX(-50%) rotate(6deg) } 100% { transform:translateX(-50%) rotate(0deg) } }
@keyframes ek-evans  { 0% { transform:translateX(0) translateY(0) rotate(0deg) } 20% { transform:translateX(4px) translateY(-1px) rotate(2deg) } 40% { transform:translateX(8px) translateY(0) rotate(-1deg) } 60% { transform:translateX(4px) translateY(-1px) rotate(1deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes ek-lantern{ 0% { box-shadow: 0 0 12px 3px rgba(255,224,128,.4); opacity:.8 } 50% { box-shadow: 0 0 24px 8px rgba(255,224,128,.9); opacity:1 } 100% { box-shadow: 0 0 14px 4px rgba(255,224,128,.5); opacity:.85 } }
@keyframes ek-step   { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.03) } 100% { transform:scaleX(1) } }
@keyframes ek-bush   { 0% { transform:scale(1) translateY(0) } 50% { transform:scale(1.05) translateY(-2px) } 100% { transform:scale(1) translateY(0) } }

.scn-page-greets-the-group { background: linear-gradient(180deg, #f7e0b0 0%, #e8c070 40%, #c89850 100%), radial-gradient(ellipse at 50% 100%, #c89850 0%, transparent 60%); }
.scn-page-greets-the-group .sky     { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f7e0b0 0%, #e8c070 100%); animation: pg-sky 14s ease-in-out infinite alternate; }
.scn-page-greets-the-group .ground  { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b8a060 0%, #8a7840 100%); border-radius:30% 20% 0 0/40% 30% 0 0; animation: pg-ground 12s ease-in-out infinite alternate; }
.scn-page-greets-the-group .page    { position:absolute; bottom:35%; left:50%; width:24px; height:42px; transform:translateX(-50%); background: linear-gradient(180deg, #c08050 0%, #7a5030 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin: bottom center; animation: pg-page 4s ease-in-out infinite; }
.scn-page-greets-the-group .shallow { position:absolute; bottom:33%; left:35%; width:22px; height:40px; background: linear-gradient(180deg, #a07040 0%, #684830 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin: bottom center; animation: pg-shallow 5s ease-in-out infinite; }
.scn-page-greets-the-group .slender { position:absolute; bottom:34%; left:60%; width:18px; height:36px; background: linear-gradient(180deg, #b08050 0%, #6a4830 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin: bottom center; animation: pg-slender 4.5s ease-in-out infinite reverse; }
.scn-page-greets-the-group .trees   { position:absolute; bottom:28%; left:5%; right:5%; height:40%; background: repeating-linear-gradient(135deg, #5a7a3a 0px, #5a7a3a 15px, #4a6a2a 15px, #4a6a2a 30px); border-radius:50% 50% 0 0/70% 70% 0 0; filter: blur(6px); animation: pg-trees 18s ease-in-out infinite alternate; }
.scn-page-greets-the-group .path    { position:absolute; bottom:22%; left:40%; right:40%; height:8px; background: linear-gradient(90deg, #c0a060 0%, #d0b070 50%, #c0a060 100%); border-radius:40%; animation: pg-path 8s ease-in-out infinite; }
@keyframes pg-sky    { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes pg-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes pg-page   { 0% { transform:translateX(-50%) translateY(0) rotate(0deg) } 25% { transform:translateX(-50%) translateY(-1px) rotate(3deg) } 50% { transform:translateX(-50%) translateY(0) rotate(-2deg) } 75% { transform:translateX(-50%) translateY(-1px) rotate(1deg) } 100% { transform:translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes pg-shallow{ 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 30% { transform:translateX(6px) translateY(-1px) rotate(2deg) } 60% { transform:translateX(12px) translateY(0) rotate(-1deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes pg-slender{ 0% { transform:translateX(0) translateY(0) rotate(1deg) } 30% { transform:translateX(-6px) translateY(-1px) rotate(-2deg) } 60% { transform:translateX(-12px) translateY(0) rotate(1deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes pg-trees  { 0% { transform:scale(1) translateY(0); opacity:.8 } 50% { transform:scale(1.02) translateY(-3px); opacity:1 } 100% { transform:scale(1) translateY(0); opacity:.8 } }
@keyframes pg-path   { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.05) } 100% { transform:scaleX(1) } }

.scn-greyhound-gossip { background: linear-gradient(180deg, #f0d8a0 0%, #e0b860 50%, #c89840 100%), radial-gradient(ellipse at 50% 100%, #c89840 0%, transparent 60%); }
.scn-greyhound-gossip .sky      { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0d8a0 0%, #e0b860 100%); animation: gg-sky 16s ease-in-out infinite alternate; }
.scn-greyhound-gossip .ground   { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b89850 0%, #8a7838 100%); border-radius:30% 50% 0 0/40% 60% 0 0; animation: gg-ground 14s ease-in-out infinite alternate; }
.scn-greyhound-gossip .figure-a { position:absolute; bottom:35%; left:35%; width:22px; height:40px; background: linear-gradient(180deg, #b08050 0%, #6a4830 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin: bottom center; animation: gg-fig-a 5s ease-in-out infinite; }
.scn-greyhound-gossip .figure-b { position:absolute; bottom:35%; left:55%; width:22px; height:40px; background: linear-gradient(180deg, #a07040 0%, #684830 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin: bottom center; animation: gg-fig-b 5s ease-in-out infinite reverse; }
.scn-greyhound-gossip .greyhound{ position:absolute; bottom:30%; left:45%; width:30px; height:18px; background: linear-gradient(135deg, #c8b090 0%, #a08868 100%); border-radius:50% 50% 60% 40%/70% 70% 30% 30%; transform-origin: bottom center; animation: gg-dog 6s ease-in-out infinite; }
.scn-greyhound-gossip .tree     { position:absolute; bottom:28%; left:5%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 0%, #6a8a4a 0%, #4a6a2a 70%); border-radius:50%; filter: blur(4px); animation: gg-tree 20s ease-in-out infinite alternate; }
.scn-greyhound-gossip .bench    { position:absolute; bottom:32%; left:30%; width:40px; height:12px; background: linear-gradient(90deg, #7a5a40 0%, #9a7a58 50%, #7a5a40 100%); border-radius:20%; box-shadow: 0 4px 6px rgba(0,0,0,.3); animation: gg-bench 8s ease-in-out infinite; }
@keyframes gg-sky    { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes gg-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes gg-fig-a  { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 25% { transform:translateX(6px) translateY(-1px) rotate(2deg) } 50% { transform:translateX(12px) translateY(0) rotate(-2deg) } 75% { transform:translateX(6px) translateY(-1px) rotate(1deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes gg-fig-b  { 0% { transform:translateX(0) translateY(0) rotate(2deg) } 25% { transform:translateX(-6px) translateY(-1px) rotate(-1deg) } 50% { transform:translateX(-12px) translateY(0) rotate(2deg) } 75% { transform:translateX(-6px) translateY(-1px) rotate(-1deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes gg-dog    { 0% { transform:translateX(0) translateY(0) rotate(-3deg) } 30% { transform:translateX(10px) translateY(-2px) rotate(2deg) } 60% { transform:translateX(20px) translateY(0) rotate(-1deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes gg-tree   { 0% { transform:scale(1) translateY(0); opacity:.7 } 50% { transform:scale(1.03) translateY(-4px); opacity:1 } 100% { transform:scale(1) translateY(0); opacity:.7 } }
@keyframes gg-bench  { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.04) } 100% { transform:scaleX(1) } }

/* umpires-chosen – warm, sunlit, three figures and a notebook */
.scn-umpires-chosen {
  background:
    linear-gradient(180deg, #ffd28a 0%, #e6b060 40%, #c88540 100%),
    radial-gradient(ellipse at 50% 30%, #ffeaad 0%, transparent 80%);
}
.scn-umpires-chosen .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffeac2 0%, #ffd28a 100%);
  animation: upc-sky 12s ease-in-out infinite alternate;
}
.scn-umpires-chosen .sun {
  position: absolute; top: 8%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff0b0 0%, #ffcc55 50%, transparent 70%);
  box-shadow: 0 0 40px 20px rgba(255,204,85,0.5);
  border-radius: 50%;
  animation: upc-sun 8s ease-in-out infinite;
}
.scn-umpires-chosen .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b88540 0%, #7a5a2a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-umpires-chosen .figure {
  position: absolute; bottom: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-umpires-chosen .figure-1 { left: 20%; animation: upc-fig1 6s ease-in-out infinite; }
.scn-umpires-chosen .figure-2 { left: 45%; animation: upc-fig2 7s ease-in-out infinite 0.5s; }
.scn-umpires-chosen .figure-3 { left: 70%; animation: upc-fig3 5s ease-in-out infinite 1s; }
.scn-umpires-chosen .notebook {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 22px;
  background: linear-gradient(135deg, #e8d8b0 0%, #c8b080 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: upc-book 10s ease-in-out infinite alternate;
}
.scn-umpires-chosen .quill {
  position: absolute; bottom: 40%; left: 52%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #f5e8d0 0%, #d0c0a0 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform: rotate(15deg);
  animation: upc-quill 3s ease-in-out infinite;
}
@keyframes upc-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes upc-sun { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(0.95); } }
@keyframes upc-fig1 { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(1px) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes upc-fig2 { 0% { transform: translateY(0) rotate(1deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(2px) rotate(1deg); } 75% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes upc-fig3 { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 75% { transform: translateY(1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes upc-book { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 2px 6px rgba(0,0,0,0.4); } 50% { transform: translateX(-50%) scale(1.02); box-shadow: 0 4px 12px rgba(0,0,0,0.5); } 100% { transform: translateX(-50%) scale(0.98); box-shadow: 0 1px 4px rgba(0,0,0,0.3); } }
@keyframes upc-quill { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }

/* purse-picking-denied – tense, sunlit, two figures confront */
.scn-purse-picking-denied {
  background:
    linear-gradient(180deg, #fce3b0 0%, #dba860 50%, #a07030 100%),
    radial-gradient(ellipse at 50% 100%, #dba860 0%, transparent 70%);
}
.scn-purse-picking-denied .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ffe8c0 0%, #fce3b0 100%);
  animation: ppd-sky 8s ease-in-out infinite alternate;
}
.scn-purse-picking-denied .sun {
  position: absolute; top: 5%; left: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff5cc 0%, #ffdd77 60%, transparent 80%);
  box-shadow: 0 0 30px 15px rgba(255,221,119,0.6);
  border-radius: 50%;
  animation: ppd-sun 6s ease-in-out infinite;
}
.scn-purse-picking-denied .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #a07030 0%, #6b4a1e 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
}
.scn-purse-picking-denied .figure-left {
  position: absolute; bottom: 20%; left: 25%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1a150e 0%, #0d0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ppd-left 1.5s ease-in-out infinite;
}
.scn-purse-picking-denied .figure-right {
  position: absolute; bottom: 20%; right: 25%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1a150e 0%, #0d0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ppd-right 1.8s ease-in-out infinite 0.3s;
}
.scn-purse-picking-denied .purse {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 16px; height: 14px;
  background: linear-gradient(180deg, #c08050 0%, #8a5a30 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 0 2px #6b3a1a;
  animation: ppd-purse 2s ease-in-out infinite alternate;
}
.scn-purse-picking-denied .sword {
  position: absolute; bottom: 35%; left: 60%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 2px;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: ppd-sword 1.6s ease-in-out infinite;
}
@keyframes ppd-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ppd-sun { 0% { transform: scale(1); } 50% { transform: scale(1.08); } 100% { transform: scale(0.95); } }
@keyframes ppd-left { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(0deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ppd-right { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-4px) rotate(0deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes ppd-purse { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.1) translateY(-2px); } 100% { transform: translateX(-50%) scale(0.95); } }
@keyframes ppd-sword { 0% { transform: rotate(-30deg) translateX(0); } 50% { transform: rotate(-40deg) translateX(-2px); } 100% { transform: rotate(-25deg) translateX(0); } }

/* drunk-and-cashiered – funny, sunlit, drunk with Scarlet and John */
.scn-drunk-and-cashiered {
  background:
    linear-gradient(180deg, #ffe6b0 0%, #f0c070 50%, #c89840 100%),
    radial-gradient(ellipse at 50% 80%, #f0c070 0%, transparent 60%);
}
.scn-drunk-and-cashiered .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fff0d0 0%, #ffe6b0 100%);
  animation: dac-sky 10s ease-in-out infinite alternate;
}
.scn-drunk-and-cashiered .sun {
  position: absolute; top: 10%; left: 40%; width: 55px; height: 55px;
  background: radial-gradient(circle, #fff7dd 0%, #ffeeaa 60%, transparent 80%);
  box-shadow: 0 0 35px 18px rgba(255,238,170,0.5);
  border-radius: 50%;
  animation: dac-sun 4s ease-in-out infinite;
}
.scn-drunk-and-cashiered .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #c89840 0%, #8a6a28 100%);
  border-radius: 40% 60% 0 0 / 30% 50% 0 0;
}
.scn-drunk-and-cashiered .drunk {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 24px; height: 46px;
  background: linear-gradient(180deg, #c8553d 0%, #8a3a2a 100%); /* terracotta red */
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dac-drunk 1.8s linear infinite;
}
.scn-drunk-and-cashiered .scarlet {
  position: absolute; bottom: 25%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #702243 0%, #4a152c 100%); /* mulberry, no bright red */
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dac-scarlet 2s ease-in-out infinite alternate;
}
.scn-drunk-and-cashiered .john {
  position: absolute; bottom: 25%; right: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); /* blue-gray */
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dac-john 2.4s ease-in-out infinite alternate 0.2s;
}
.scn-drunk-and-cashiered .tankard {
  position: absolute; bottom: 35%; left: 48%; transform: translateX(-50%);
  width: 14px; height: 18px;
  background: linear-gradient(180deg, #d0a870 0%, #b08050 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 -4px 0 #8a5a30;
  animation: dac-tankard 1.5s ease-in-out infinite alternate;
}
@keyframes dac-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes dac-sun { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(5deg); } 100% { transform: scale(0.95) rotate(-5deg); } }
@keyframes dac-drunk { 0% { transform: translateX(-50%) rotate(-5deg) translateY(0); } 25% { transform: translateX(-45%) rotate(0deg) translateY(-3px); } 50% { transform: translateX(-50%) rotate(8deg) translateY(2px); } 75% { transform: translateX(-55%) rotate(0deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(-5deg) translateY(0); } }
@keyframes dac-scarlet { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(-3deg); } 100% { transform: translateY(0) rotate(3deg); } }
@keyframes dac-john { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(4deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes dac-tankard { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(15deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(-10deg); } }

/* drunken-knaves – funny, sunlit, three knaves with a bottle */
.scn-drunken-knaves {
  background:
    linear-gradient(180deg, #fceac0 0%, #e8b060 40%, #b88030 100%),
    radial-gradient(ellipse at 70% 20%, #fceac0 0%, transparent 60%);
}
.scn-drunken-knaves .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fdf3da 0%, #fceac0 100%);
  animation: dkn-sky 9s ease-in-out infinite alternate;
}
.scn-drunken-knaves .sun {
  position: absolute; top: 6%; left: 65%; width: 45px; height: 45px;
  background: radial-gradient(circle, #fffbe0 0%, #ffdd99 60%, transparent 80%);
  box-shadow: 0 0 25px 12px rgba(255,221,153,0.5);
  border-radius: 50%;
  animation: dkn-sun 5s ease-in-out infinite;
}
.scn-drunken-knaves .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #b88030 0%, #7a5a20 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-drunken-knaves .knave {
  position: absolute; bottom: 22%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-drunken-knaves .knave-1 { left: 25%; animation: dkn-knave1 2.1s ease-in-out infinite; }
.scn-drunken-knaves .knave-2 { left: 45%; animation: dkn-knave2 1.8s ease-in-out infinite 0.2s; }
.scn-drunken-knaves .knave-3 { left: 65%; animation: dkn-knave3 1.6s ease-in-out infinite 0.4s; }
.scn-drunken-knaves .bottle {
  position: absolute; bottom: 32%; left: 38%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #c8b080 0%, #8a6a40 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(30deg);
  animation: dkn-bottle 2s ease-in-out infinite alternate;
}
@keyframes dkn-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes dkn-sun { 0% { transform: scale(1); } 50% { transform: scale(1.06) rotate(10deg); } 100% { transform: scale(0.94) rotate(-5deg); } }
@keyframes dkn-knave1 { 0% { transform: translateX(0) rotate(-4deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(-3px) rotate(-6deg); } 75% { transform: translateX(4px) rotate(4deg); } 100% { transform: translateX(0) rotate(-4deg); } }
@keyframes dkn-knave2 { 0% { transform: translateX(0) rotate(5deg); } 25% { transform: translateX(-4px) rotate(-2deg); } 50% { transform: translateX(6px) rotate(7deg); } 75% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(5deg); } }
@keyframes dkn-knave3 { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(5deg); } 50% { transform: translateX(-2px) rotate(-8deg); } 75% { transform: translateX(4px) rotate(3deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes dkn-bottle { 0% { transform: rotate(30deg) scale(1); } 50% { transform: rotate(45deg) scale(1.1) translateX(-2px); } 100% { transform: rotate(20deg) scale(0.95); } }

.scn-street-mistress-page {
  background: linear-gradient(180deg, #b8d4e8 0%, #f5e8c8 40%, #e0c898 100%), radial-gradient(ellipse at 30% 20%, #fff5e0 0%, transparent 60%);
}
.scn-street-mistress-page .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #c5dff0 0%, #ffe8c0 100%); animation: st1-sky 20s ease-in-out infinite alternate; }
.scn-street-mistress-page .street { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #b09070 0%, #806050 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); animation: st1-glow 8s ease-in-out infinite alternate; }
.scn-street-mistress-page .house-left { position:absolute; bottom:30%; left:5%; width:30%; height:50%; background: linear-gradient(135deg, #d4b89a 0%, #b39272 100%); border-radius: 4% 4% 0 0; box-shadow: 5px 0 15px rgba(0,0,0,0.2); }
.scn-street-mistress-page .house-right { position:absolute; bottom:30%; right:5%; width:30%; height:50%; background: linear-gradient(225deg, #ceb292 0%, #a88868 100%); border-radius: 4% 4% 0 0; box-shadow: -5px 0 15px rgba(0,0,0,0.2); }
.scn-street-mistress-page .window-glow { position:absolute; bottom:40%; left:15%; width:12%; height:18%; background: radial-gradient(circle, #ffdfa0 0%, #e0b060 70%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 30px 8px #e0b060, 0 0 60px 16px rgba(224,176,96,0.3); animation: st1-glow 4s ease-in-out infinite alternate; }
.scn-street-mistress-page .figure-mistress { position:absolute; bottom:25%; left:40%; width:8%; height:30%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: st1-walk 6s ease-in-out infinite; }
.scn-street-mistress-page .figure-robin { position:absolute; bottom:25%; left:50%; width:5%; height:18%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: st1-walk 6s ease-in-out infinite reverse; }
.scn-street-mistress-page .lamp { position:absolute; bottom:30%; left:45%; width:4%; height:8%; background: radial-gradient(circle, #ffe080 0%, #b08040 100%); border-radius: 50%; box-shadow: 0 0 20px 6px #ffd060; animation: st1-lamp 3s ease-in-out infinite alternate; }
@keyframes st1-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes st1-glow { 0% { box-shadow: 0 0 20px 4px #e0b060, 0 0 40px 8px rgba(224,176,96,0.2); opacity:0.8 } 50% { box-shadow: 0 0 40px 12px #ffdfa0, 0 0 80px 20px rgba(255,223,160,0.4); opacity:1 } 100% { box-shadow: 0 0 25px 5px #e0b060, 0 0 50px 10px rgba(224,176,96,0.25); opacity:0.85 } }
@keyframes st1-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes st1-lamp { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(0.95) } }

.scn-weather-cock-boy {
  background: linear-gradient(180deg, #b8c8d8 0%, #e8d8b0 50%, #d0b890 100%), radial-gradient(ellipse at 80% 30%, #fff0d0 0%, transparent 60%);
}
.scn-weather-cock-boy .sky-tense { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0c4d4 0%, #ffe0a0 100%); animation: wc1-flicker 3s ease-in-out infinite alternate; }
.scn-weather-cock-boy .street-hard { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #a08060 0%, #705040 100%); box-shadow: inset 0 5px 20px rgba(0,0,0,0.5); animation: wc1-shadow 2s ease-in-out infinite alternate; }
.scn-weather-cock-boy .rooftop { position:absolute; bottom:40%; left:15%; width:70%; height:15%; background: linear-gradient(135deg, #c0a080 0%, #a08060 100%); clip-path: polygon(0% 100%, 10% 0%, 90% 0%, 100% 100%); }
.scn-weather-cock-boy .weathercock { position:absolute; bottom:55%; left:50%; width:2%; height:12%; background: #604040; transform: translateX(-50%); animation: wc1-rotate 1.6s ease-in-out infinite alternate; }
.scn-weather-cock-boy .weathercock::after { content:''; position:absolute; top:-8px; left:50%; width:20px; height:20px; border-top: 4px solid #806050; border-right: 4px solid #806050; border-radius:0 8px 0 0; transform: translateX(-50%) rotate(45deg); }
.scn-weather-cock-boy .window-sharp { position:absolute; bottom:35%; left:35%; width:12%; height:20%; background: radial-gradient(circle, #ffe090 0%, #d0a050 100%); box-shadow: 0 0 15px 5px #ffd070, 0 0 30px 10px rgba(255,208,112,0.3); animation: wc1-glow 1.5s ease-in-out infinite alternate; }
.scn-weather-cock-boy .figure-ford { position:absolute; bottom:20%; left:30%; width:7%; height:28%; background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wc1-shift 1.5s ease-in-out infinite alternate; }
.scn-weather-cock-boy .figure-page { position:absolute; bottom:20%; left:55%; width:7%; height:28%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wc1-shift 1.5s ease-in-out infinite alternate-reverse; }
@keyframes wc1-flicker { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes wc1-shadow { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes wc1-rotate { 0% { transform: translateX(-50%) rotate(-8deg) } 50% { transform: translateX(-50%) rotate(5deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes wc1-glow { 0% { box-shadow: 0 0 10px 2px #ffd070, 0 0 20px 4px rgba(255,208,112,0.2); opacity:0.8 } 50% { box-shadow: 0 0 25px 8px #ffe090, 0 0 50px 16px rgba(255,224,144,0.5); opacity:1 } 100% { box-shadow: 0 0 15px 4px #ffd070, 0 0 30px 8px rgba(255,208,112,0.3); opacity:0.9 } }
@keyframes wc1-shift { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(4px) translateY(-3px) } 100% { transform: translateX(-2px) translateY(0) } }

.scn-falstaff-boy-with-her {
  background: linear-gradient(180deg, #8a7a6a 0%, #b09878 40%, #a08060 100%), radial-gradient(ellipse at 40% 60%, #d0b090 0%, transparent 70%);
}
.scn-falstaff-boy-with-her .sky-desat { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #b0a090 0%, #d0c0b0 100%); animation: fs1-slow 12s ease-in-out infinite alternate; }
.scn-falstaff-boy-with-her .ground-deep { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #706050 0%, #403020 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); }
.scn-falstaff-boy-with-her .wall-back { position:absolute; bottom:30%; left:20%; width:60%; height:50%; background: linear-gradient(135deg, #a09080 0%, #807060 100%); border-radius: 6% 6% 2% 2%; box-shadow: 0 0 30px rgba(0,0,0,0.3); }
.scn-falstaff-boy-with-her .figure-falstaff { position:absolute; bottom:15%; left:30%; width:14%; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fs1-lurch 7s ease-in-out infinite; }
.scn-falstaff-boy-with-her .figure-robin-small { position:absolute; bottom:20%; left:50%; width:5%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fs1-sneak 5s ease-in-out infinite; }
.scn-falstaff-boy-with-her .doorway { position:absolute; bottom:30%; left:55%; width:12%; height:30%; background: #403020; border-radius: 0 0 50% 50% / 0 0 20% 20%; box-shadow: inset 0 0 20px #1a0a00; }
.scn-falstaff-boy-with-her .window-curtain { position:absolute; bottom:35%; left:25%; width:10%; height:20%; background: radial-gradient(circle, #b09070 0%, #806050 100%); box-shadow: 0 0 15px 5px rgba(128,96,80,0.4); animation: fs1-drape 6s ease-in-out infinite alternate; }
@keyframes fs1-slow { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes fs1-lurch { 0% { transform: translateX(0) rotate(-2deg) } 33% { transform: translateX(-5px) rotate(3deg) } 66% { transform: translateX(3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes fs1-sneak { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(6px) translateY(-1px) } 50% { transform: translateX(12px) translateY(0) } 75% { transform: translateX(6px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes fs1-drape { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(0.95) } }

.scn-search-clock-cue {
  background: linear-gradient(180deg, #6a5a4a 0%, #8a7a6a 50%, #5a4a3a 100%), radial-gradient(ellipse at 30% 40%, #b09878 0%, transparent 60%);
}
.scn-search-clock-cue .bg-interior { position:absolute; inset:0; background: linear-gradient(135deg, #5a4a3a 0%, #806050 50%, #4a3a2a 100%); }
.scn-search-clock-cue .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #705040 0%, #403020 100%); box-shadow: inset 0 5px 20px rgba(0,0,0,0.5); }
.scn-search-clock-cue .window-beam { position:absolute; top:10%; right:10%; width:20%; height:60%; background: linear-gradient(135deg, rgba(255,200,100,0.4) 0%, transparent 70%); clip-path: polygon(0% 0%, 100% 10%, 100% 90%, 0% 100%); animation: cl1-sweep 12s ease-in-out infinite alternate; }
.scn-search-clock-cue .clock-case { position:absolute; top:15%; left:35%; width:30%; height:50%; background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 5px 20px rgba(0,0,0,0.6); }
.scn-search-clock-cue .pendulum { position:absolute; top:45%; left:50%; width:4%; height:20%; background: #8a7030; border-radius: 0 0 50% 50%; transform: translateX(-50%); transform-origin: top center; animation: cl1-swing 2s ease-in-out infinite alternate; }
.scn-search-clock-cue .figure-ford { position:absolute; bottom:30%; left:20%; width:8%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cl1-twitch 4s ease-in-out infinite; }
.scn-search-clock-cue .table { position:absolute; bottom:25%; left:60%; width:15%; height:8%; background: linear-gradient(180deg, #6a5030 0%, #4a3020 100%); border-radius: 4px; box-shadow: 0 2px 10px rgba(0,0,0,0.4); }
.scn-search-clock-cue .candle { position:absolute; bottom:30%; left:63%; width:3%; height:12%; background: linear-gradient(180deg, #ffe0a0 0%, #d0a040 80%); border-radius: 50% 50% 0 0; box-shadow: 0 0 20px 6px #ffd060, 0 0 40px 12px rgba(255,208,96,0.3); animation: cl1-flicker 1.5s ease-in-out infinite alternate; }
@keyframes cl1-sweep { 0% { opacity:0.3; transform: rotate(-5deg) } 50% { opacity:0.7; transform: rotate(3deg) } 100% { opacity:0.4; transform: rotate(-2deg) } }
@keyframes cl1-swing { 0% { transform: translateX(-50%) rotate(-10deg) } 50% { transform: translateX(-50%) rotate(10deg) } 100% { transform: translateX(-50%) rotate(-8deg) } }
@keyframes cl1-twitch { 0% { transform: translateX(0) rotate(0) } 20% { transform: translateX(3px) rotate(2deg) } 40% { transform: translateX(-2px) rotate(-1deg) } 60% { transform: translateX(4px) rotate(1deg) } 80% { transform: translateX(-1px) rotate(0) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cl1-flicker { 0% { box-shadow: 0 0 15px 4px #ffd060, 0 0 30px 8px rgba(255,208,96,0.2); opacity:0.8 } 50% { box-shadow: 0 0 25px 8px #ffe080, 0 0 50px 16px rgba(255,224,128,0.5); opacity:1 } 100% { box-shadow: 0 0 18px 5px #ffd060, 0 0 35px 10px rgba(255,208,96,0.3); opacity:0.85 } }

/* Scene: fenton-woos-anne (warm, bright-interior) */
.scn-fenton-woos-anne {
  background: linear-gradient(180deg, #e8d4b8 0%, #c8a882 50%, #a0815a 100%), radial-gradient(ellipse at 30% 60%, #f2d7a6 0%, transparent 60%);
}
.scn-fenton-woos-anne .room-wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #d4b890 0%, #b89a72 100%);
  border-radius: 10% 10% 0 0 / 5% 5% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.2);
  animation: fwa-wall 12s ease-in-out infinite alternate;
}
.scn-fenton-woos-anne .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a321a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.5);
  animation: fwa-floor 15s ease-in-out infinite;
}
.scn-fenton-woos-anne .window {
  position: absolute;
  top: 15%;
  left: 25%;
  width: 30%;
  height: 40%;
  background: linear-gradient(135deg, #b8d0e0 0%, #e0f0ff 40%, #f0f8ff 100%);
  border-radius: 4% 4% 8% 8% / 6% 6% 12% 12%;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.4), 0 0 20px rgba(255,230,180,0.6);
  animation: fwa-window 8s ease-in-out infinite alternate;
}
.scn-fenton-woos-anne .light-beam {
  position: absolute;
  top: 20%;
  left: 30%;
  width: 20%;
  height: 50%;
  background: linear-gradient(135deg, rgba(255,240,200,0.5) 0%, rgba(255,220,160,0.1) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(8px);
  animation: fwa-beam 6s ease-in-out infinite alternate;
}
.scn-fenton-woos-anne .table {
  position: absolute;
  bottom: 30%;
  left: 35%;
  width: 30%;
  height: 12%;
  background: linear-gradient(180deg, #8a6030 0%, #5a3a1a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: fwa-table 10s ease-in-out infinite;
}
.scn-fenton-woos-anne .figure-fenton {
  position: absolute;
  bottom: 32%;
  left: 30%;
  width: 10%;
  height: 35%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fwa-fenton 4s ease-in-out infinite;
}
.scn-fenton-woos-anne .figure-anne {
  position: absolute;
  bottom: 32%;
  right: 30%;
  width: 9%;
  height: 33%;
  background: linear-gradient(180deg, #6a5040 0%, #3a2820 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fwa-anne 5s ease-in-out infinite alternate;
}
.scn-fenton-woos-anne .hearth-glow {
  position: absolute;
  bottom: 20%;
  left: 10%;
  width: 15%;
  height: 30%;
  background: radial-gradient(ellipse at center, #ffaa40 0%, #ff8030 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: fwa-hearth 3s ease-in-out infinite alternate;
}
@keyframes fwa-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes fwa-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes fwa-window { 0% { box-shadow: inset 0 0 20px rgba(255,255,200,0.2), 0 0 15px rgba(255,230,180,0.3) } 50% { box-shadow: inset 0 0 40px rgba(255,255,200,0.6), 0 0 30px rgba(255,230,180,0.8) } 100% { box-shadow: inset 0 0 25px rgba(255,255,200,0.3), 0 0 20px rgba(255,230,180,0.5) } }
@keyframes fwa-beam { 0% { opacity:0.6; transform: rotate(0deg) } 50% { opacity:0.9; transform: rotate(3deg) } 100% { opacity:0.5; transform: rotate(-2deg) } }
@keyframes fwa-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fwa-fenton { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fwa-anne { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-4px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fwa-hearth { 0% { opacity:0.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.6; transform: scale(0.95) } }

/* Scene: fentons-true-love (warm, bright-interior) */
.scn-fentons-true-love {
  background: linear-gradient(90deg, #c8a882 0%, #d6b894 30%, #b8906a 70%, #a87a54 100%), radial-gradient(ellipse at 50% 80%, #f0d8b0 0%, transparent 60%);
}
.scn-fentons-true-love .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4b890 0%, #ba9878 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
  animation: ftl-wall 15s ease-in-out infinite alternate;
}
.scn-fentons-true-love .floor-tiles {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%);
  background-size: 30px 30px, 30px 30px;
  background-image: repeating-linear-gradient(90deg, transparent, transparent 30px, rgba(0,0,0,0.1) 31px), repeating-linear-gradient(0deg, transparent, transparent 30px, rgba(0,0,0,0.1) 31px);
  border-radius: 15% 15% 0 0 / 8% 8% 0 0;
  animation: ftl-floor 12s ease-in-out infinite;
}
.scn-fentons-true-love .arch-column {
  position: absolute;
  top: 10%;
  left: 45%;
  width: 10%;
  height: 70%;
  background: linear-gradient(90deg, #a88a62 0%, #c0a080 30%, #b09070 70%, #907050 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.3), inset 4px 0 8px rgba(255,255,200,0.2);
  animation: ftl-column 8s ease-in-out infinite alternate;
}
.scn-fentons-true-love .figure-fenton-left {
  position: absolute;
  bottom: 25%;
  left: 20%;
  width: 12%;
  height: 38%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ftl-fenton 5s ease-in-out infinite;
}
.scn-fentons-true-love .figure-anne-right {
  position: absolute;
  bottom: 25%;
  right: 20%;
  width: 10%;
  height: 36%;
  background: linear-gradient(180deg, #6a5040 0%, #3a2820 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ftl-anne 6s ease-in-out infinite alternate;
}
.scn-fentons-true-love .table-center {
  position: absolute;
  bottom: 25%;
  left: 35%;
  width: 30%;
  height: 12%;
  background: linear-gradient(180deg, #8a6030 0%, #5a3a1a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: ftl-table 10s ease-in-out infinite;
}
.scn-fentons-true-love .candle {
  position: absolute;
  bottom: 33%;
  left: 48.5%;
  width: 3%;
  height: 15%;
  background: linear-gradient(180deg, #f0e0c0 0%, #e8c080 70%, #b08040 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: ftl-candle 4s ease-in-out infinite alternate;
}
.scn-fentons-true-love .candle-halo {
  position: absolute;
  bottom: 32%;
  left: 48%;
  width: 6%;
  height: 10%;
  background: radial-gradient(circle, #ffd060 0%, #ffb040 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ftl-halo 2s ease-in-out infinite alternate;
}
@keyframes ftl-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ftl-floor { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.01) } 100% { transform: scaleX(1) } }
@keyframes ftl-column { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) scaleX(1.005) } 100% { transform: scaleY(1) } }
@keyframes ftl-fenton { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ftl-anne { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ftl-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ftl-candle { 0% { transform: scaleY(0.95) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes ftl-halo { 0% { opacity:0.6; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.7; transform: scale(1) } }

/* Scene: slender-comes (funny, bright-interior) */
.scn-slender-comes {
  background: linear-gradient(135deg, #d4b890 0%, #c0a07a 50%, #a88a6a 100%), radial-gradient(circle at 40% 50%, #f0d8b0 0%, transparent 60%);
}
.scn-slender-comes .tavern-wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8ac88 0%, #b0906a 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.2);
  border-radius: 10% 10% 0 0 / 5% 5% 0 0;
  animation: slc-wall 14s ease-in-out infinite alternate;
}
.scn-slender-comes .doorway {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 30%;
  height: 60%;
  background: linear-gradient(90deg, #a0805a 0%, #b09070 20%, #c0a080 50%, #a0805a 80%, #907050 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3), 0 4px 12px rgba(0,0,0,0.4);
  animation: slc-doorway 10s ease-in-out infinite;
}
.scn-slender-comes .floor-planks {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a321a 100%);
  background-image: repeating-linear-gradient(90deg, transparent, transparent 40px, rgba(0,0,0,0.1) 41px);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: slc-floor 12s ease-in-out infinite alternate;
}
.scn-slender-comes .figure-slender {
  position: absolute;
  bottom: 28%;
  left: 40%;
  width: 6%;
  height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: slc-slender 4s ease-in-out infinite;
}
.scn-slender-comes .figure-shallow {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 8%;
  height: 28%;
  background: linear-gradient(180deg, #5a3a20 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: slc-shallow 5s ease-in-out infinite alternate;
}
.scn-slender-comes .figure-quickly {
  position: absolute;
  bottom: 28%;
  left: 58%;
  width: 7%;
  height: 26%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a12 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: slc-quickly 6s ease-in-out infinite;
}
.scn-slender-comes .lamp-swing {
  position: absolute;
  top: 10%;
  left: 45%;
  width: 10%;
  height: 12%;
  background: radial-gradient(circle at 50% 30%, #f0d060 0%, #c08020 60%, transparent 100%);
  border-radius: 30% 30% 50% 50%;
  filter: blur(6px);
  transform-origin: top center;
  animation: slc-lamp 3s ease-in-out infinite alternate;
}
@keyframes slc-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes slc-doorway { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes slc-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes slc-slender { 0% { transform: translateY(0) rotate(-4deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(4deg) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes slc-shallow { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes slc-quickly { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes slc-lamp { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }

/* Scene: slender-woos-clumsily (funny, bright-interior) */
.scn-slender-woos-clumsily {
  background: linear-gradient(180deg, #d4b890 0%, #c0a07a 40%, #a88a6a 100%), radial-gradient(ellipse at 50% 80%, #f0d8b0 0%, transparent 70%);
}
.scn-slender-woos-clumsily .chamber-wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #c8ac88 0%, #b0906a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
  border-radius: 8% 8% 0 0 / 4% 4% 0 0;
  animation: swc-wall 16s ease-in-out infinite alternate;
}
.scn-slender-woos-clumsily .bench {
  position: absolute;
  bottom: 28%;
  left: 25%;
  width: 50%;
  height: 10%;
  background: linear-gradient(180deg, #8a6030 0%, #5a3a1a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: swc-bench 10s ease-in-out infinite;
}
.scn-slender-woos-clumsily .figure-slender-clumsy {
  position: absolute;
  bottom: 32%;
  left: 35%;
  width: 8%;
  height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: swc-slender-clumsy 4s ease-in-out infinite;
}
.scn-slender-woos-clumsily .figure-anne-listening {
  position: absolute;
  bottom: 32%;
  right: 30%;
  width: 9%;
  height: 34%;
  background: linear-gradient(180deg, #6a5040 0%, #3a2820 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: swc-anne 5s ease-in-out infinite alternate;
}
.scn-slender-woos-clumsily .table-small {
  position: absolute;
  bottom: 22%;
  left: 55%;
  width: 20%;
  height: 14%;
  background: linear-gradient(180deg, #7a5030 0%, #4a2a10 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: swc-table 12s ease-in-out infinite;
}
.scn-slender-woos-clumsily .tankard {
  position: absolute;
  bottom: 24%;
  left: 62%;
  width: 5%;
  height: 10%;
  background: linear-gradient(180deg, #c0a070 0%, #907050 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: swc-tankard 3s ease-in-out infinite alternate;
}
.scn-slender-woos-clumsily .shadow {
  position: absolute;
  bottom: 0;
  left: 30%;
  width: 40%;
  height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  filter: blur(10px);
  animation: swc-shadow 7s ease-in-out infinite alternate;
}
@keyframes swc-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes swc-bench { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes swc-slender-clumsy { 0% { transform: translateY(0) rotate(-5deg) scale(1) } 25% { transform: translateY(-3px) rotate(3deg) scale(1.02) } 50% { transform: translateY(0) rotate(5deg) scale(1) } 75% { transform: translateY(-2px) rotate(-3deg) scale(0.98) } 100% { transform: translateY(0) rotate(0deg) scale(1) } }
@keyframes swc-anne { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes swc-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes swc-tankard { 0% { transform: rotate(-5deg) scale(0.95) } 50% { transform: rotate(5deg) scale(1.05) } 100% { transform: rotate(-3deg) scale(1) } }
@keyframes swc-shadow { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.5; transform: scaleX(1.1) } 100% { opacity:0.4; transform: scaleX(1) } }

.scn-anne-page-enters {
  background: linear-gradient(135deg, #fef9e7 0%, #ffe0b2 50%, #ffcc80 100%),
              radial-gradient(ellipse at 20% 50%, #fff3e0, transparent 60%);
}
.scn-anne-page-enters .doorway { position:absolute; left:20%; top:0; width:60%; height:55%; background:#8d6e63; border-radius:40% 40% 0 0; animation:aep-door 15s ease infinite; }
.scn-anne-page-enters .sunbeam { position:absolute; left:35%; top:-10%; width:30%; height:60%; background: linear-gradient(180deg, rgba(255,243,224,0.3), transparent); transform:rotate(15deg); border-radius:40%; animation:aep-beam 12s ease-in-out infinite alternate; }
.scn-anne-page-enters .figure-anne { position:absolute; bottom:18%; left:45%; width:16px; height:36px; border-radius:50% 50% 40% 40%/60% 60% 40% 40%; background:#5d4037; animation:aep-walka 4s ease-in-out infinite; transform-origin:bottom; }
.scn-anne-page-enters .figure-ford { position:absolute; bottom:16%; left:55%; width:20px; height:32px; border-radius:50% 50% 40% 40%/60% 60% 40% 40%; background:#4e342e; animation:aep-walkb 5s ease-in-out infinite 1s; transform-origin:bottom; }
.scn-anne-page-enters .figure-page { position:absolute; bottom:18%; left:35%; width:18px; height:30px; border-radius:50% 50% 40% 40%/60% 60% 40% 40%; background:#6d4c41; animation:aep-walkc 4.5s ease-in-out infinite 0.5s; transform-origin:bottom; }
.scn-anne-page-enters .table { position:absolute; bottom:10%; left:30%; width:40%; height:12%; background:#3e2723; border-radius:5%; box-shadow:0 -4px 8px rgba(0,0,0,0.3); animation:aep-table 20s ease infinite; }
.scn-anne-page-enters .wine-cup { position:absolute; bottom:20%; left:60%; width:8px; height:12px; background:#d7ccc8; border-radius:0 0 4px 4px; box-shadow:0 0 6px #bcaaa4; animation:aep-wine 3s ease-in-out infinite; }
@keyframes aep-door { 0%,100% { filter:brightness(1); } 50% { filter:brightness(0.9); } }
@keyframes aep-beam { 0% { opacity:0.6; transform:rotate(13deg); } 50% { opacity:1; } 100% { opacity:0.7; transform:rotate(17deg); } }
@keyframes aep-walka { 0%,100% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(3px) rotate(2deg); } 50% { transform:translateX(6px) rotate(-1deg); } 75% { transform:translateX(3px) rotate(1deg); } }
@keyframes aep-walkb { 0%,100% { transform:translateX(0) rotate(0); } 33% { transform:translateX(-2px) rotate(-1deg); } 66% { transform:translateX(2px) rotate(1deg); } }
@keyframes aep-walkc { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes aep-table { 0%,100% { transform:scaleY(1); } 50% { transform:scaleY(0.98); } }
@keyframes aep-wine { 0%,100% { transform:rotate(-3deg); } 50% { transform:rotate(3deg); } }

.scn-book-of-songs {
  background: linear-gradient(180deg, #4e342e 0%, #3e2723 50%, #2c1a14 100%),
              radial-gradient(ellipse at 50% 80%, #5d4037 0%, transparent 70%);
}
.scn-book-of-songs .wall { position:absolute; inset:0 0 0 0; background:linear-gradient(180deg, #3e2723, #2c1a14); }
.scn-book-of-songs .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background:#3e2723; border-top:2px solid #4e342e; }
.scn-book-of-songs .shelf { position:absolute; top:20%; left:5%; width:30%; height:5%; background:#5d4037; box-shadow:0 4px 6px rgba(0,0,0,0.5); animation:bs-shelf 30s linear infinite; }
.scn-book-of-songs .figure-left { position:absolute; bottom:12%; left:20%; width:18px; height:38px; border-radius:50% 50% 40% 40%/60% 60% 40% 40%; background:#1b0e0a; animation:bs-bounce 2s ease-in-out infinite; transform-origin:bottom; }
.scn-book-of-songs .figure-right { position:absolute; bottom:12%; left:50%; width:20px; height:40px; border-radius:50% 50% 40% 40%/60% 60% 40% 40%; background:#2c1a14; animation:bs-bounce 2.5s ease-in-out infinite 0.3s; transform-origin:bottom; }
.scn-book-of-songs .book { position:absolute; bottom:16%; left:40%; width:12px; height:8px; background:#8d6e63; border-radius:2px; transform:rotate(15deg); animation:bs-book 4s ease-in-out infinite; }
.scn-book-of-songs .candle { position:absolute; bottom:30%; left:70%; width:4px; height:14px; background:#d7ccc8; border-radius:2px; animation:bs-candle 3s ease-in-out infinite; }
.scn-book-of-songs .glow { position:absolute; bottom:30%; left:70%; width:40px; height:40px; background:radial-gradient(circle, rgba(255,183,77,0.3), transparent); border-radius:50%; transform:translate(-50%, 50%); animation:bs-glow 3s ease-in-out infinite alternate; }
@keyframes bs-shelf { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-1px); } }
@keyframes bs-bounce { 0%,100% { transform:translateY(0) rotate(0deg); } 30% { transform:translateY(-3px) rotate(2deg); } 60% { transform:translateY(-1px) rotate(-2deg); } }
@keyframes bs-book { 0%,100% { transform:rotate(15deg) translateX(0); } 50% { transform:rotate(-15deg) translateX(4px); } }
@keyframes bs-candle { 0%,100% { transform:scaleY(1); opacity:0.9; } 50% { transform:scaleY(0.95); opacity:1; } }
@keyframes bs-glow { 0% { opacity:0.5; transform:translate(-50%, 50%) scale(1); } 100% { opacity:0.9; transform:translate(-50%, 50%) scale(1.3); } }

.scn-tender-for-anne {
  background: linear-gradient(180deg, #1a0f0a 0%, #3e1f0a 50%, #6b3a1f 100%),
              radial-gradient(ellipse at 50% 90%, #d84315 0%, transparent 60%);
}
.scn-tender-for-anne .hearth { position:absolute; bottom:15%; left:10%; width:30%; height:40%; background:#1a0f0a; border-radius:20% 20% 5% 5%; box-shadow:inset 0 0 20px #d84315; animation:tfa-hearth 6s ease-in-out infinite; }
.scn-tender-for-anne .mantel { position:absolute; bottom:55%; left:8%; width:34%; height:4%; background:#4e342e; box-shadow:0 4px 6px rgba(0,0,0,0.5); }
.scn-tender-for-anne .figure-slender { position:absolute; bottom:15%; left:50%; width:16px; height:40px; border-radius:50% 50% 40% 40%/60% 60% 40% 40%; background:#2c1a14; animation:tfa-nod 4s ease-in-out infinite; transform-origin:bottom; }
.scn-tender-for-anne .figure-mistress { position:absolute; bottom:14%; left:65%; width:20px; height:34px; border-radius:50% 50% 40% 40%/60% 60% 40% 40%; background:#4e342e; animation:tfa-nod 4.5s ease-in-out infinite 0.5s; transform-origin:bottom; }
.scn-tender-for-anne .chair { position:absolute; bottom:12%; left:48%; width:30px; height:35px; background:#3e2723; border-radius:5px; box-shadow:0 4px 8px rgba(0,0,0,0.6); animation:tfa-chair 20s ease infinite; }
.scn-tender-for-anne .fireglow { position:absolute; bottom:15%; left:10%; width:30%; height:40%; background:radial-gradient(ellipse, rgba(255,138,80,0.4), transparent); border-radius:20%; animation:tfa-fire 3s ease-in-out infinite alternate; }
.scn-tender-for-anne .rug { position:absolute; bottom:5%; left:30%; width:50%; height:10%; background: linear-gradient(90deg, #4e342e, #3e2723, #4e342e); border-radius:50% / 100% 100% 0 0; opacity:0.6; animation:tfa-rug 15s linear infinite; }
@keyframes tfa-hearth { 0%,100% { box-shadow:inset 0 0 20px #d84315; } 50% { box-shadow:inset 0 0 30px #ff8a50; } }
@keyframes tfa-nod { 0%,100% { transform:rotate(0deg); } 25% { transform:rotate(3deg); } 50% { transform:rotate(-2deg); } 75% { transform:rotate(1deg); } }
@keyframes tfa-chair { 0%,100% { transform:rotate(0); } 50% { transform:rotate(1deg); } }
@keyframes tfa-fire { 0% { opacity:0.6; } 100% { opacity:0.9; } }
@keyframes tfa-rug { 0% { background-position:0% 50%; } 100% { background-position:100% 50%; } }

.scn-marriage-question {
  background: linear-gradient(180deg, #2c1a14 0%, #3e2723 50%, #4e342e 100%),
              radial-gradient(ellipse at 30% 60%, #6d4c41, transparent 50%);
}
.scn-marriage-question .desk { position:absolute; bottom:10%; left:20%; width:60%; height:12%; background:#4e342e; border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,0.5); animation:mq-desk 30s ease infinite; }
.scn-marriage-question .candle { position:absolute; bottom:20%; left:25%; width:4px; height:20px; background:#d7ccc8; border-radius:2px; animation:mq-candle 3s ease-in-out infinite; }
.scn-marriage-question .figure-anne { position:absolute; bottom:16%; left:35%; width:14px; height:34px; border-radius:50% 50% 40% 40%/60% 60% 40% 40%; background:#5d4037; animation:mq-anne 5s ease-in-out infinite; transform-origin:bottom; }
.scn-marriage-question .figure-suitor { position:absolute; bottom:15%; left:55%; width:18px; height:38px; border-radius:50% 50% 40% 40%/60% 60% 40% 40%; background:#3e2723; animation:mq-suitor 4s ease-in-out infinite 0.3s; transform-origin:bottom; }
.scn-marriage-question .scroll { position:absolute; bottom:18%; left:45%; width:20px; height:6px; background:#d7ccc8; border-radius:2px; transform:rotate(-5deg); animation:mq-scroll 6s ease-in-out infinite; }
.scn-marriage-question .inkwell { position:absolute; bottom:20%; left:65%; width:10px; height:12px; background:#2c1a14; border-radius:50% 50% 10% 10%; box-shadow:inset 0 2px 4px #000; animation:mq-ink 8s linear infinite; }
.scn-marriage-question .stool { position:absolute; bottom:8%; left:50%; width:24px; height:18px; background:#3e2723; border-radius:4px; animation:mq-stool 20s ease infinite; }
.scn-marriage-question .floor { position:absolute; bottom:0; left:0; right:0; height:8%; background:#2c1a14; border-top:2px solid #4e342e; }
@keyframes mq-desk { 0%,100% { transform:scale(1); } 50% { transform:scale(1.02); } }
@keyframes mq-candle { 0%,100% { transform:scaleY(1) rotate(0); opacity:0.9; } 50% { transform:scaleY(1.05) rotate(2deg); opacity:1; } }
@keyframes mq-anne { 0%,100% { transform:rotate(0deg); } 25% { transform:rotate(2deg) translateX(2px); } 50% { transform:rotate(-1deg) translateX(-1px); } 75% { transform:rotate(1deg) translateX(1px); } }
@keyframes mq-suitor { 0%,100% { transform:rotate(0); } 33% { transform:rotate(3deg); } 66% { transform:rotate(-3deg); } }
@keyframes mq-scroll { 0%,100% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-3deg) translateY(-2px); } }
@keyframes mq-ink { 0% { background-position:0% 50%; } 100% { background-position:100% 50%; } }
@keyframes mq-stool { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-1px); } }

/* good-knot-dinner — sunlit calm interior */
.scn-good-knot-dinner {
  background:
    linear-gradient(180deg, #f9e7c2 0%, #e4c88a 40%, #c8a56a 100%),
    radial-gradient(ellipse at 30% 70%, #ffe0a0 0%, transparent 60%);
}
.scn-good-knot-dinner .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f5dba8 0%, #dbb87c 100%);
  box-shadow: inset 0 0 60px #b8955a;
  animation: gkd-wall 12s ease-in-out infinite alternate;
}
.scn-good-knot-dinner .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #8a6e4a 0%, #5a4428 100%);
  border-radius: 0 0 10% 10%;
}
.scn-good-knot-dinner .table {
  position: absolute; bottom: 28%; left: 20%; right: 20%; height: 14%;
  background: linear-gradient(180deg, #b8925a 0%, #8a6e3a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,.3);
  transform: perspective(400px) rotateX(3deg);
  animation: gkd-table 8s ease-in-out infinite;
}
.scn-good-knot-dinner .plate-1,
.scn-good-knot-dinner .plate-2 {
  position: absolute; bottom: 31%; width: 28px; height: 26px;
  background: radial-gradient(circle, #ece4d0 0%, #c8b890 70%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
}
.scn-good-knot-dinner .plate-1 { left: 30%; }
.scn-good-knot-dinner .plate-2 { left: 42%; }
.scn-good-knot-dinner .candle {
  position: absolute; bottom: 34%; left: 36%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 100%);
  border-radius: 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: gkd-candle 2s ease-in-out infinite alternate;
}
.scn-good-knot-dinner .glow {
  position: absolute; bottom: 35%; left: 35%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe080 0%, #f0c050 40%, transparent 70%);
  box-shadow: 0 0 40px 10px #e0a030;
  border-radius: 50%;
  animation: gkd-glow 3s ease-in-out infinite alternate;
}
.scn-good-knot-dinner .figure-left,
.scn-good-knot-dinner .figure-right {
  position: absolute; bottom: 20%; width: 24px; height: 54px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-good-knot-dinner .figure-left { left: 14%; transform-origin: bottom center; animation: gkd-sway 6s ease-in-out infinite; }
.scn-good-knot-dinner .figure-right { right: 14%; transform-origin: bottom center; animation: gkd-sway 6s ease-in-out infinite reverse; }
@keyframes gkd-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes gkd-table { 0%,100% { transform: perspective(400px) rotateX(3deg) translateY(0) } 50% { transform: perspective(400px) rotateX(2deg) translateY(-1px) } }
@keyframes gkd-candle { 0% { transform: rotate(-1deg) scaleY(1) } 50% { transform: rotate(1deg) scaleY(1.02) } 100% { transform: rotate(0deg) scaleY(.98) } }
@keyframes gkd-glow { 0% { opacity:.7; transform: scale(.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.8; transform: scale(1) } }
@keyframes gkd-sway { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }

/* page-and-caius-rival — sunlit calm garden */
.scn-page-and-caius-rival {
  background:
    linear-gradient(180deg, #9fc8e8 0%, #c0dff0 40%, #e0f0e0 100%),
    radial-gradient(ellipse at 50% 20%, #f8f8f0 0%, transparent 70%);
}
.scn-page-and-caius-rival .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #a0c8e8 0%, #c8e0f0 100%);
  animation: pcr-sky 14s ease-in-out infinite alternate;
}
.scn-page-and-caius-rival .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 42%;
  background: linear-gradient(180deg, #7a9a6a 0%, #4a6a3a 100%);
  border-radius: 30% 50% 0 0;
}
.scn-page-and-caius-rival .tree-left,
.scn-page-and-caius-rival .tree-right {
  position: absolute; bottom: 20%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #3a5a2a 0%, #2a3a1a 100%);
  border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%;
}
.scn-page-and-caius-rival .tree-left { left: 8%; animation: pcr-sway 10s ease-in-out infinite; }
.scn-page-and-caius-rival .tree-right { right: 10%; animation: pcr-sway 12s ease-in-out infinite reverse; }
.scn-page-and-caius-rival .figure {
  position: absolute; bottom: 16%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-page-and-caius-rival .page { left: 30%; animation: pcr-bob 5s ease-in-out infinite; }
.scn-page-and-caius-rival .caius { left: 42%; animation: pcr-bob 6s ease-in-out infinite 1s; }
.scn-page-and-caius-rival .slender { left: 54%; animation: pcr-bob 7s ease-in-out infinite 2s; }
.scn-page-and-caius-rival .shadow {
  position: absolute; bottom: 14%; left: 30%; right: 10%; height: 14%;
  background: radial-gradient(ellipse, rgba(0,0,0,.15) 0%, transparent 100%);
  animation: pcr-shadow 8s ease-in-out infinite alternate;
}
@keyframes pcr-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes pcr-sway { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes pcr-bob { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes pcr-shadow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.2 } }

/* monster-to-show — tense sunlit reveal */
.scn-monster-to-show {
  background:
    linear-gradient(180deg, #f8e8c8 0%, #d8b898 40%, #a87858 100%),
    radial-gradient(ellipse at 40% 60%, #ffe0a0 0%, transparent 60%);
}
.scn-monster-to-show .bg-light {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #fce8c0 0%, #e0c098 100%);
  animation: mts-light 8s ease-in-out infinite alternate;
}
.scn-monster-to-show .bg-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #6a4a3a 0%, #2a1a12 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.5);
}
.scn-monster-to-show .monster {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  clip-path: polygon(20% 0%, 80% 0%, 70% 30%, 90% 50%, 60% 70%, 70% 100%, 30% 100%, 40% 70%, 10% 50%, 30% 30%);
  box-shadow: 0 0 60px rgba(0,0,0,.4);
  animation: mts-loom 6s ease-in-out infinite;
}
.scn-monster-to-show .monster-shadow {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 20%;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%);
  animation: mts-shadow 6s ease-in-out infinite alternate;
}
.scn-monster-to-show .arm {
  position: absolute; bottom: 35%; left: 25%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 80% 0 20% 20% / 60% 20% 40% 40%;
  transform-origin: 20% 50%;
  animation: mts-arm 4s ease-in-out infinite;
}
.scn-monster-to-show .hand {
  position: absolute; bottom: 36%; left: 18%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-10deg);
  animation: mts-hand 4s ease-in-out infinite;
}
.scn-monster-to-show .dust {
  position: absolute; bottom: 50%; left: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,200,150,.3) 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(8px);
  animation: mts-dust 3s ease-in-out infinite alternate;
}
@keyframes mts-light { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes mts-loom { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) translateY(-4px) } }
@keyframes mts-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.2 } }
@keyframes mts-arm { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-8deg) } }
@keyframes mts-hand { 0%,100% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-15deg) translateX(4px) } }
@keyframes mts-dust { 0% { opacity:.2; transform: translate(0,0) scale(.8) } 100% { opacity:.6; transform: translate(10px,-6px) scale(1.2) } }

/* drink-pipe-wine — dark sunlit tavern */
.scn-drink-pipe-wine {
  background:
    linear-gradient(180deg, #2a1a10 0%, #3a2218 40%, #4a3020 100%),
    radial-gradient(ellipse at 30% 50%, #8a5a3a 0%, transparent 60%);
}
.scn-drink-pipe-wine .wall-dark {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2818 0%, #1a1008 100%);
  box-shadow: inset 0 0 40px #0a0500;
}
.scn-drink-pipe-wine .table-rough {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 18%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 12% 12% 6% 6%;
  box-shadow: 0 6px 16px rgba(0,0,0,.6);
  transform: perspective(300px) rotateX(5deg);
}
.scn-drink-pipe-wine .wine-bottle {
  position: absolute; bottom: 28%; left: 28%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #5a2a1a 0%, #2a1008 100%);
  border-radius: 30% 30% 15% 15% / 40% 40% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: dpw-bottle 3s ease-in-out infinite alternate;
}
.scn-drink-pipe-wine .pipe {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 8px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 20% 80% 80% 20% / 40% 80% 40% 20%;
  transform-origin: 20% 50%;
  animation: dpw-pipe 4s ease-in-out infinite;
}
.scn-drink-pipe-wine .hand-left,
.scn-drink-pipe-wine .hand-right {
  position: absolute; bottom: 26%; width: 16px; height: 22px;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
}
.scn-drink-pipe-wine .hand-left { left: 22%; transform-origin: bottom center; animation: dpw-hand-left 5s ease-in-out infinite; }
.scn-drink-pipe-wine .hand-right { right: 22%; transform-origin: bottom center; animation: dpw-hand-right 5s ease-in-out infinite 1s; }
.scn-drink-pipe-wine .wine-spill {
  position: absolute; bottom: 12%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #8a1a0a 0%, #5a1008 100%);
  border-radius: 40% 60% 20% 20% / 80% 80% 20% 20%;
  opacity: .6;
  animation: dpw-spill 6s ease-in-out infinite alternate;
}
.scn-drink-pipe-wine .shadow-figure {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 70%);
  animation: dpw-shadow 7s ease-in-out infinite alternate;
}
@keyframes dpw-bottle { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) translateY(-1px) } }
@keyframes dpw-pipe { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(8deg) } }
@keyframes dpw-hand-left { 0%,100% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.02) } }
@keyframes dpw-hand-right { 0%,100% { transform: rotate(5deg) scaleY(1) } 50% { transform: rotate(-5deg) scaleY(.98) } }
@keyframes dpw-spill { 0% { opacity:.4; transform: scaleX(1) } 50% { opacity:.7; transform: scaleX(1.1) } 100% { opacity:.5; transform: scaleX(.9) } }
@keyframes dpw-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-sword-skill { background: linear-gradient(180deg, #7ec8e3 0%, #b5d8e8 40%, #f9d976 100%), radial-gradient(ellipse at 50% 0%, #fff5c0 0%, transparent 70%); }
.scn-sword-skill .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #8fd0e8 0%, #cce3f0 50%, transparent 100%); animation: sds-sky 20s ease-in-out infinite alternate; }
.scn-sword-skill .sun { position:absolute; top:10%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #fff5c0 0%, #f9d976 40%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(249,217,118,.5); animation: sds-sun 8s ease-in-out infinite; }
.scn-sword-skill .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #7ca45a 0%, #5a7a3a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; animation: sds-ground 12s ease-in-out infinite alternate; }
.scn-sword-skill .figure { position:absolute; bottom:35%; left:40%; width:40px; height:80px; background: linear-gradient(180deg, #2a2a3a 0%, #12121a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sds-figure 4s ease-in-out infinite; }
.scn-sword-skill .sword { position:absolute; bottom:40%; left:47%; width:8px; height:90px; background: linear-gradient(180deg, #c0c0c0 0%, #808080 50%, #404040 100%); border-radius: 4px 4px 2px 2px; transform: rotate(30deg); transform-origin: bottom center; animation: sds-sword 1.5s ease-in-out infinite; box-shadow: 0 0 4px rgba(192,192,192,.6); }
.scn-sword-skill .shadow-a, .scn-sword-skill .shadow-b, .scn-sword-skill .shadow-c, .scn-sword-skill .shadow-d { position:absolute; bottom:30%; width:12px; height:20px; background: rgba(30,30,20,.4); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; animation: sds-shadow 6s ease-in-out infinite; }
.scn-sword-skill .shadow-a { left:55%; animation-delay: 0s; }
.scn-sword-skill .shadow-b { left:62%; animation-delay: 1.5s; }
.scn-sword-skill .shadow-c { left:69%; animation-delay: 3s; }
.scn-sword-skill .shadow-d { left:76%; animation-delay: 4.5s; }
@keyframes sds-sky { 0% { opacity:0.85; transform: translateY(0); } 50% { opacity:1; transform: translateY(-4px); } 100% { opacity:0.9; transform: translateY(2px); } }
@keyframes sds-sun { 0%,100% { transform: scale(1) translate(0,0); box-shadow: 0 0 40px 20px rgba(249,217,118,.5); } 50% { transform: scale(1.08) translate(2px,-1px); box-shadow: 0 0 60px 30px rgba(249,217,118,.7); } }
@keyframes sds-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes sds-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(3deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sds-sword { 0% { transform: rotate(30deg) scaleY(1); } 25% { transform: rotate(50deg) scaleY(1.02); } 50% { transform: rotate(20deg) scaleY(0.98); } 75% { transform: rotate(40deg) scaleY(1.01); } 100% { transform: rotate(30deg) scaleY(1); } }
@keyframes sds-shadow { 0% { transform: translateX(0) scale(1); opacity:0.4; } 25% { transform: translateX(8px) scale(0.9); opacity:0.2; } 50% { transform: translateX(0) scale(1.1); opacity:0.5; } 75% { transform: translateX(-6px) scale(0.95); opacity:0.3; } 100% { transform: translateX(0) scale(1); opacity:0.4; } }

.scn-ford-plans-disguise { background: linear-gradient(180deg, #2a1f1a 0%, #4a3528 30%, #6b4a3a 100%), radial-gradient(ellipse at 50% 100%, #4a3528 0%, transparent 60%); }
.scn-ford-plans-disguise .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a2a1e 0%, #4a3528 60%, transparent 100%); animation: fpd-wall 15s ease-in-out infinite alternate; }
.scn-ford-plans-disguise .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a1e 0%, #1a120a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; animation: fpd-floor 18s ease-in-out infinite alternate; }
.scn-ford-plans-disguise .table { position:absolute; bottom:18%; left:35%; width:90px; height:40px; background: linear-gradient(180deg, #5a3a28 0%, #3a2212 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: fpd-table 8s ease-in-out infinite; }
.scn-ford-plans-disguise .candle { position:absolute; bottom:25%; left:45%; width:8px; height:18px; background: linear-gradient(180deg, #c8a060 0%, #8a6030 100%); border-radius: 3px; box-shadow: 0 0 20px 6px #c8a060; animation: fpd-candle 3s ease-in-out infinite alternate; }
.scn-ford-plans-disguise .candle::after { content:''; position:absolute; top:-8px; left:2px; width:4px; height:8px; background: radial-gradient(circle, #ffd080 0%, #c08040 100%); border-radius: 50%; box-shadow: 0 0 12px 4px #ffd080; animation: fpd-flame 1.5s ease-in-out infinite alternate; }
.scn-ford-plans-disguise .falstaff { position:absolute; bottom:12%; left:30%; width:55px; height:90px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fpd-falstaff 6s ease-in-out infinite; }
.scn-ford-plans-disguise .pistol { position:absolute; bottom:10%; left:52%; width:35px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #12121a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fpd-pistol 6s ease-in-out infinite 0.5s; }
.scn-ford-plans-disguise .blade { position:absolute; bottom:15%; left:50%; width:6px; height:60px; background: linear-gradient(180deg, #a0a0a0 0%, #606060 50%, #303030 100%); border-radius: 3px; transform: rotate(15deg); transform-origin: bottom; box-shadow: 0 0 6px rgba(160,160,160,.4); animation: fpd-blade 7s ease-in-out infinite; }
@keyframes fpd-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes fpd-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fpd-table { 0%,100% { transform: translateX(0); } 50% { transform: translateX(2px); } }
@keyframes fpd-candle { 0% { box-shadow: 0 0 15px 4px #c8a060; } 50% { box-shadow: 0 0 25px 8px #c8a060; } 100% { box-shadow: 0 0 18px 5px #c8a060; } }
@keyframes fpd-flame { 0% { transform: translateY(0) scale(1); opacity:0.9; } 50% { transform: translateY(-2px) scale(1.1); opacity:1; } 100% { transform: translateY(0) scale(0.95); opacity:0.8; } }
@keyframes fpd-falstaff { 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 fpd-pistol { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-2px) rotate(-2deg); } 60% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fpd-blade { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }

.scn-falstaff-refuses-pistol { background: linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #3a2a22 100%), radial-gradient(ellipse at 50% 100%, #2a1e1a 0%, transparent 70%); }
.scn-falstaff-refuses-pistol .room-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1e18 0%, #3a2a20 60%, transparent 100%); animation: frp-wall 20s ease-in-out infinite alternate; }
.scn-falstaff-refuses-pistol .room-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a20 0%, #1a120a 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; animation: frp-floor 12s ease-in-out infinite alternate; }
.scn-falstaff-refuses-pistol .big-figure { position:absolute; bottom:15%; left:25%; width:60px; height:100px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 35% 35% / 60% 60% 30% 30%; transform-origin: bottom center; animation: frp-big 5s ease-in-out infinite; }
.scn-falstaff-refuses-pistol .small-figure { position:absolute; bottom:12%; left:55%; width:40px; height:80px; background: linear-gradient(180deg, #222236 0%, #0e0e1e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: frp-small 5s ease-in-out infinite 0.5s; }
.scn-falstaff-refuses-pistol .desk { position:absolute; bottom:10%; left:40%; width:50px; height:30px; background: linear-gradient(180deg, #5a3a28 0%, #3a2212 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.7); animation: frp-desk 8s ease-in-out infinite; }
.scn-falstaff-refuses-pistol .lantern { position:absolute; bottom:28%; left:50%; width:10px; height:16px; background: linear-gradient(180deg, #d08050 0%, #a06030 100%); border-radius: 3px; box-shadow: 0 0 20px 6px #d08050; animation: frp-lantern 3.5s ease-in-out infinite alternate; }
.scn-falstaff-refuses-pistol .lantern::after { content:''; position:absolute; top:-6px; left:3px; width:4px; height:6px; background: radial-gradient(circle, #ffb060 0%, #d08050 100%); border-radius: 50%; box-shadow: 0 0 8px 3px #ffb060; animation: frp-flame 1.8s ease-in-out infinite alternate; }
.scn-falstaff-refuses-pistol .stress-lines { position:absolute; top:20%; left:40%; width:30%; height:2px; background: repeating-linear-gradient(90deg, rgba(200,100,60,.6) 0px, rgba(200,100,60,.6) 4px, transparent 4px, transparent 8px); animation: frp-stress 2s ease-in-out infinite; }
@keyframes frp-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes frp-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes frp-big { 0% { transform: translateX(0) rotate(0); } 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 frp-small { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-3px) rotate(-1.5deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes frp-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(1px); } }
@keyframes frp-lantern { 0% { box-shadow: 0 0 15px 4px #d08050; } 50% { box-shadow: 0 0 28px 8px #d08050; } 100% { box-shadow: 0 0 18px 5px #d08050; } }
@keyframes frp-flame { 0% { transform: translateY(0) scale(1); opacity:0.9; } 50% { transform: translateY(-1.5px) scale(1.08); opacity:1; } 100% { transform: translateY(0) scale(0.95); opacity:0.8; } }
@keyframes frp-stress { 0% { opacity:0.3; } 50% { opacity:0.8; } 100% { opacity:0.3; } }

.scn-quickly-comes-to-falstaff { background: linear-gradient(180deg, #2a1e14 0%, #4a3420 40%, #6a4a30 100%), radial-gradient(ellipse at 50% 100%, #4a3420 0%, transparent 60%); }
.scn-quickly-comes-to-falstaff .back-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a18 0%, #4a3a24 60%, transparent 100%); animation: qcf-wall 16s ease-in-out infinite alternate; }
.scn-quickly-comes-to-falstaff .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a24 0%, #2a1a0e 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; animation: qcf-floor 14s ease-in-out infinite alternate; }
.scn-quickly-comes-to-falstaff .door-arc { position:absolute; bottom:5%; left:15%; width:60px; height:110px; background: linear-gradient(180deg, #1a1210 0%, #2a1a12 100%); border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%; box-shadow: inset -4px 0 10px rgba(0,0,0,.6); animation: qcf-door 10s ease-in-out infinite; }
.scn-quickly-comes-to-falstaff .door-arc::after { content:''; position:absolute; top:20%; left:8px; width:4px; height:60px; background: #a08050; border-radius: 2px; box-shadow: 2px 0 4px rgba(0,0,0,.4); }
.scn-quickly-comes-to-falstaff .seated-figure { position:absolute; bottom:12%; left:50%; width:50px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 35% 35% / 60% 60% 30% 30%; transform-origin: bottom center; animation: qcf-seated 7s ease-in-out infinite; }
.scn-quickly-comes-to-falstaff .entering-figure { position:absolute; bottom:12%; left:22%; width:40px; height:85px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: qcf-entering 8s ease-in-out infinite 1s; }
.scn-quickly-comes-to-falstaff .warm-glow { position:absolute; top:60%; left:40%; width:120px; height:120px; background: radial-gradient(circle, rgba(200,160,100,.4) 0%, transparent 70%); border-radius: 50%; animation: qcf-glow 5s ease-in-out infinite alternate; }
.scn-quickly-comes-to-falstaff .chair { position:absolute; bottom:0; left:55%; width:40px; height:45px; background: linear-gradient(180deg, #5a3a28 0%, #3a2212 100%); border-radius: 4px 4px 8px 8px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: qcf-chair 9s ease-in-out infinite; }
@keyframes qcf-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes qcf-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes qcf-door { 0% { transform: rotateY(0); } 50% { transform: rotateY(-15deg); } 100% { transform: rotateY(0); } }
@keyframes qcf-seated { 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 qcf-entering { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(0); } 75% { transform: translateX(4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes qcf-glow { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.05); } 100% { opacity:0.5; transform: scale(0.98); } }
@keyframes qcf-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }

/* Scene: eleven-o-clock */
.scn-eleven-o-clock {
  background: linear-gradient(180deg, #0c0a1a 0%, #1a1a3e 60%, #2a2248 100%), radial-gradient(ellipse at 70% 60%, rgba(200,160,80,.15) 0%, transparent 60%);
}
.scn-eleven-o-clock .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #1a1828 0%, #2a2238 50%, #1a1828 100%);
  animation: eoc-wall 12s ease-in-out infinite alternate;
}
.scn-eleven-o-clock .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,.6);
  animation: eoc-floor 8s ease-in-out infinite alternate;
}
.scn-eleven-o-clock .clock {
  position: absolute; top: 12%; left: 50%; width: 70px; height: 70px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c8a060 0%, #8a6a3a 60%, #4a3a1a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 20px rgba(0,0,0,.5), inset 0 0 10px rgba(0,0,0,.3);
  animation: eoc-clock 2s steps(60) infinite;
}
.scn-eleven-o-clock .figure {
  position: absolute; bottom: 30%; left: 38%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eoc-figure 5s ease-in-out infinite alternate;
}
.scn-eleven-o-clock .candle {
  position: absolute; bottom: 30%; left: 55%; width: 6px; height: 24px;
  background: linear-gradient(180deg, #e8d088 0%, #4a3a1a 100%);
  border-radius: 3px;
}
.scn-eleven-o-clock .candle::after {
  content: ''; position: absolute; top: -8px; left: -2px; width: 10px; height: 12px;
  background: radial-gradient(circle, #ffe080 0%, #f0a030 40%, transparent 70%);
  border-radius: 50%;
  animation: eoc-flame 1.6s ease-in-out infinite alternate;
}
.scn-eleven-o-clock .window {
  position: absolute; top: 15%; right: 12%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #4a5a8a 0%, #2a3a6a 100%);
  border: 3px solid #3a2a1a;
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(200,180,255,.3);
  animation: eoc-window 30s linear infinite alternate;
}
.scn-eleven-o-clock .shadow {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 6px;
  background: rgba(0,0,0,.4);
  filter: blur(4px);
  border-radius: 50%;
  animation: eoc-shadow 5s ease-in-out infinite alternate;
}
@keyframes eoc-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes eoc-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes eoc-clock { 0% { transform: translateX(-50%) rotate(0deg) } 100% { transform: translateX(-50%) rotate(360deg) } }
@keyframes eoc-figure { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes eoc-flame { 0% { transform: scaleY(1) translateY(0)} 50% { transform: scaleY(1.3) translateY(-2px)} 100% { transform: scaleY(1) translateY(0)} }
@keyframes eoc-window { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes eoc-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }

/* Scene: field-near-windsor */
.scn-field-near-windsor {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #98fb98 80%, #6b8e23 100%), radial-gradient(ellipse at 80% 20%, rgba(255,255,200,.4) 0%, transparent 50%);
}
.scn-field-near-windsor .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #a0d8ef 0%, #c0e4f0 100%);
  animation: fnw-sky 20s ease-in-out infinite alternate;
}
.scn-field-near-windsor .sun {
  position: absolute; top: 8%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8b0 0%, #ffd700 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(255,215,0,.5);
  animation: fnw-sun 8s ease-in-out infinite alternate;
}
.scn-field-near-windsor .tree {
  position: absolute; bottom: 30%; left: 15%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #2e5a1e 0%, #1a3a0e 100%);
  border-radius: 40% 40% 10% 10% / 80% 80% 20% 20%;
  box-shadow: inset -10px 0 15px rgba(0,0,0,.2);
  animation: fnw-tree 12s ease-in-out infinite alternate;
}
.scn-field-near-windsor .figure-caius {
  position: absolute; bottom: 28%; left: 40%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fnw-caius 4s ease-in-out infinite;
}
.scn-field-near-windsor .figure-rugby {
  position: absolute; bottom: 28%; left: 52%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: fnw-rugby 3.5s ease-in-out infinite 0.2s;
}
.scn-field-near-windsor .cloud1 {
  position: absolute; top: 12%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.7) 0%, rgba(255,255,255,.2) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: fnw-drift-a 40s linear infinite;
}
.scn-field-near-windsor .cloud2 {
  position: absolute; top: 20%; right: 30%; width: 60px; height: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.1) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: fnw-drift-b 50s linear infinite reverse;
}
.scn-field-near-windsor .bird {
  position: absolute; top: 15%; left: 60%; width: 12px; height: 6px;
  background: #2a2a1a;
  border-radius: 50%;
  clip-path: polygon(0 50%, 30% 0, 60% 50%, 100% 0, 100% 100%, 60% 50%, 30% 100%, 0 50%);
  animation: fnw-bird 12s ease-in-out infinite;
}
@keyframes fnw-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes fnw-sun { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(1) } }
@keyframes fnw-tree { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes fnw-caius { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(3px) rotate(0) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-3px) rotate(0) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes fnw-rugby { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-2px) rotate(0) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(2px) rotate(0) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes fnw-drift-a { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes fnw-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }
@keyframes fnw-bird { 0%,100% { transform: translate(0,0) } 50% { transform: translate(20px,-10px) } }

/* Scene: doctor-rages */
.scn-doctor-rages {
  background: linear-gradient(180deg, #f0e68c 0%, #deb887 40%, #8b7355 100%), radial-gradient(ellipse at 50% 80%, rgba(255,200,100,.3) 0%, transparent 60%);
}
.scn-doctor-rages .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c4a882 0%, #9b7e5c 100%);
  box-shadow: inset 0 15px 25px rgba(0,0,0,.2);
}
.scn-doctor-rages .caius {
  position: absolute; bottom: 35%; left: 30%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dr-caius 1.5s ease-in-out infinite alternate;
}
.scn-doctor-rages .rugby {
  position: absolute; bottom: 35%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: dr-rugby 1.5s ease-in-out infinite alternate 0.2s;
}
.scn-doctor-rages .rapier {
  position: absolute; bottom: 45%; left: 32%; width: 2px; height: 50px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  transform-origin: bottom center;
  animation: dr-rapier 1.8s ease-in-out infinite alternate;
  box-shadow: 0 0 6px 2px rgba(255,255,200,.6);
}
.scn-doctor-rages .dust-a {
  position: absolute; bottom: 30%; left: 40%; width: 10px; height: 10px;
  background: rgba(200,180,150,.4);
  border-radius: 50%;
  filter: blur(3px);
  animation: dr-dust 2.4s ease-out infinite;
}
.scn-doctor-rages .dust-b {
  position: absolute; bottom: 28%; left: 45%; width: 8px; height: 8px;
  background: rgba(200,180,150,.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: dr-dust 1.8s ease-out infinite 0.6s;
}
.scn-doctor-rages .cloud {
  position: absolute; top: 10%; right: 15%; width: 70px; height: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.15) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: fnw-drift-a 35s linear infinite;
}
@keyframes dr-caius { 0% { transform: translateX(0) rotate(5deg) } 50% { transform: translateX(8px) rotate(-3deg) } 100% { transform: translateX(0) rotate(5deg) } }
@keyframes dr-rugby { 0% { transform: translateX(0) rotate(-5deg) } 50% { transform: translateX(-6px) rotate(3deg) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes dr-rapier { 0% { transform: rotate(-15deg) } 100% { transform: rotate(20deg) } }
@keyframes dr-dust { 0% { transform: scale(1) translateY(0); opacity:1 } 100% { transform: scale(3) translateY(-20px); opacity:0 } }

/* Scene: bully-host-arrives */
.scn-bully-host-arrives {
  background: linear-gradient(180deg, #deb887 0%, #c4a882 40%, #8b7355 100%), radial-gradient(ellipse at 30% 70%, rgba(255,180,80,.15) 0%, transparent 60%);
}
.scn-bully-host-arrives .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #5a3a2a 0%, #7a5a3a 50%, #5a3a2a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
}
.scn-bully-host-arrives .door {
  position: absolute; bottom: 25%; left: 50%; width: 70px; height: 110px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #3a2212 0%, #5a3a2a 50%, #3a2212 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 15px rgba(0,0,0,.5), 2px 0 8px rgba(0,0,0,.3);
  animation: bha-door 6s ease-in-out infinite alternate;
}
.scn-bully-host-arrives .host {
  position: absolute; bottom: 25%; left: 30%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bha-walk-a 4s ease-in-out infinite;
}
.scn-bully-host-arrives .shallow {
  position: absolute; bottom: 25%; left: 38%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: bha-walk-b 4.5s ease-in-out infinite 0.3s;
}
.scn-bully-host-arrives .slender {
  position: absolute; bottom: 25%; left: 46%; width: 16px; height: 48px;
  background: linear-gradient(180deg, #3a4a6a 0%, #1a2a4a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: bha-walk-c 5s ease-in-out infinite 0.6s;
}
.scn-bully-host-arrives .page {
  position: absolute; bottom: 25%; left: 54%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bha-walk-d 3.8s ease-in-out infinite 0.8s;
}
.scn-bully-host-arrives .sign {
  position: absolute; top: 10%; right: 20%; width: 30px; height: 20px;
  background: #2a1a0a;
  border: 2px solid #c0a060;
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: bha-sway 6s ease-in-out infinite alternate;
}
.scn-bully-host-arrives .lantern {
  position: absolute; top: 18%; right: 22%; width: 8px; height: 14px;
  background: #3a2a1a;
  border-radius: 2px;
}
.scn-bully-host-arrives .lantern::after {
  content: ''; position: absolute; top: 2px; left: 2px; width: 4px; height: 6px;
  background: radial-gradient(circle, #ffe080 0%, #f0a030 60%);
  border-radius: 1px;
  animation: bha-glow 3s ease-in-out infinite alternate;
}
@keyframes bha-door { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.05) } 100% { transform: translateX(-50%) scaleX(1) } }
@keyframes bha-walk-a { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-4px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes bha-walk-b { 0% { transform: translateY(0) rotate(1deg) } 25% { transform: translateY(-5px) rotate(-1deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-5px) rotate(-2deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes bha-walk-c { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-6px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-6px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes bha-walk-d { 0% { transform: translateY(0) rotate(2deg) } 25% { transform: translateY(-3px) rotate(-1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-3px) rotate(0) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes bha-sway { 0% { transform: rotate(-5deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(-5deg) } }
@keyframes bha-glow { 0% { opacity:.6; box-shadow: 0 0 8px 2px rgba(255,208,96,.5) } 50% { opacity:1; box-shadow: 0 0 16px 6px rgba(255,208,96,.8) } 100% { opacity:.6; box-shadow: 0 0 8px 2px rgba(255,208,96,.5) } }

/* buck-buck-buck */
.scn-buck-buck-buck {
  background: 
    linear-gradient(180deg, #d8c8a0 0%, #c0a878 40%, #a08050 100%),
    radial-gradient(ellipse at 70% 20%, #f0e0c0 0%, transparent 60%);
}
.scn-buck-buck-buck .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #c8b890 0%, #a08050 100%);
  box-shadow: inset 0 -20px 40px rgba(60,40,20,0.3);
  animation: bbb-wallpulse 14s ease-in-out infinite alternate;
}
.scn-buck-buck-buck .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6b4c30 0%, #4a3020 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-buck-buck-buck .window-right {
  position: absolute; top: 15%; right: 12%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #ffe0a0 0%, #d0b070 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px #ffe8b0;
  animation: bbb-windowglow 6s ease-in-out infinite alternate;
}
.scn-buck-buck-buck .basket {
  position: absolute; bottom: 32%; left: 40%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: bbb-basket 4s ease-in-out infinite;
}
.scn-buck-buck-buck .keys {
  position: absolute; top: 30%; left: 55%; width: 20px; height: 30px;
  background: radial-gradient(ellipse, #c0a050 0%, #806020 100%);
  border-radius: 50% 50% 30% 30%;
  transform-origin: top center;
  animation: bbb-keyswing 3.5s ease-in-out infinite;
}
.scn-buck-buck-buck .figure-stand {
  position: absolute; bottom: 28%; left: 48%; width: 20px; height: 70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: bbb-figure 8s ease-in-out infinite;
}
.scn-buck-buck-buck .shadow-sharp {
  position: absolute; bottom: 24%; left: 46%; width: 50px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 80%);
  animation: bbb-shadow 8s ease-in-out infinite;
}
@keyframes bbb-wallpulse {
  0% { filter: brightness(1); }
  50% { filter: brightness(0.85); box-shadow: inset 0 -20px 40px rgba(60,40,20,0.5); }
  100% { filter: brightness(1.05); }
}
@keyframes bbb-windowglow {
  0%,100% { opacity: 0.7; box-shadow: inset 0 0 20px #ffe8b0; }
  50% { opacity: 1; box-shadow: inset 0 0 60px #fff0c0, 0 0 20px rgba(255,224,160,0.3); }
}
@keyframes bbb-basket {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-2px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(0deg) scaleY(1.02); }
  75% { transform: translateX(2px) rotate(1deg); }
}
@keyframes bbb-keyswing {
  0% { transform: rotate(-15deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(-15deg); }
}
@keyframes bbb-figure {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(2deg) translateY(-1px); }
  50% { transform: translateX(16px) rotate(0deg) translateY(0); }
  75% { transform: translateX(24px) rotate(-2deg) translateY(-1px); }
}
@keyframes bbb-shadow {
  0%,100% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.3); }
}

/* jealous-romp */
.scn-jealous-romp {
  background: 
    linear-gradient(180deg, #f0e0c0 0%, #d8c098 50%, #b89060 100%),
    radial-gradient(ellipse at 50% 80%, #ffe8c0 0%, transparent 60%);
}
.scn-jealous-romp .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8a878 100%);
  box-shadow: inset 0 0 40px rgba(100,80,40,0.15);
}
.scn-jealous-romp .carpet {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.2);
}
.scn-jealous-romp .settee-left {
  position: absolute; bottom: 28%; left: 10%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.4);
  animation: jr-settee 12s ease-in-out infinite alternate;
}
.scn-jealous-romp .settee-right {
  position: absolute; bottom: 28%; right: 10%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.4);
  animation: jr-settee 12s ease-in-out infinite alternate;
  animation-delay: -6s;
}
.scn-jealous-romp .figure-seated {
  position: absolute; bottom: 35%; left: 22%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: jr-breathe 6s ease-in-out infinite;
}
.scn-jealous-romp .figure-standing {
  position: absolute; bottom: 30%; left: 55%; width: 20px; height: 65px;
  background: linear-gradient(180deg, #7a5a3a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: jr-gesture 8s ease-in-out infinite;
}
.scn-jealous-romp .window-soft {
  position: absolute; top: 20%; left: 50%; transform: translateX(-50%);
  width: 90px; height: 110px;
  background: linear-gradient(180deg, #fff0c0 0%, #e0c880 100%);
  border-radius: 6px; box-shadow: inset 0 0 40px #fff0c0;
  animation: jr-window 10s ease-in-out infinite alternate;
}
.scn-jealous-romp .curtain-left {
  position: absolute; top: 18%; left: 45%; width: 30px; height: 120px;
  background: linear-gradient(90deg, #a08050 0%, #806030 100%);
  border-radius: 0 10% 10% 0;
  transform-origin: top center;
  animation: jr-curtain 20s ease-in-out infinite alternate;
}
.scn-jealous-romp .curtain-right {
  position: absolute; top: 18%; right: 45%; width: 30px; height: 120px;
  background: linear-gradient(90deg, #806030 0%, #a08050 100%);
  border-radius: 10% 0 0 10%;
  transform-origin: top center;
  animation: jr-curtain 20s ease-in-out infinite alternate-reverse;
}
@keyframes jr-settee {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes jr-breathe {
  0%,100% { transform: scaleY(1); }
  25% { transform: scaleY(1.02); }
  75% { transform: scaleY(0.98); }
}
@keyframes jr-gesture {
  0%,100% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(5px) rotate(5deg); }
  70% { transform: translateX(-3px) rotate(-3deg); }
}
@keyframes jr-window {
  0% { opacity: 0.8; box-shadow: inset 0 0 20px #fff0c0; }
  100% { opacity: 1; box-shadow: inset 0 0 60px #fff8d0; }
}
@keyframes jr-curtain {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(3deg) scaleX(1.05); }
  100% { transform: rotate(-2deg) scaleX(0.95); }
}

/* double-excellency */
.scn-double-excellency {
  background: 
    linear-gradient(180deg, #e8d8b0 0%, #c0a070 50%, #907050 100%),
    radial-gradient(ellipse at 30% 70%, #f0d8a0 0%, transparent 70%);
}
.scn-double-excellency .parlor-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d8c8a0 0%, #b89870 100%);
  box-shadow: inset 0 0 30px rgba(80,60,40,0.2);
}
.scn-double-excellency .basket-lg {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 90px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 25% 25%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: de-basket 3s ease-in-out infinite;
}
.scn-double-excellency .falstaff-body {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 50px;
  background: radial-gradient(ellipse, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
  animation: de-falstaff 4s ease-in-out infinite;
}
.scn-double-excellency .wife-fig {
  position: absolute; bottom: 26%; left: 30%; width: 18px; height: 60px;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%);
  border-radius: 45% 45% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: de-point 2.5s ease-in-out infinite;
}
.scn-double-excellency .husband-fig {
  position: absolute; bottom: 28%; right: 30%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #7a5a3a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: de-gasp 3.2s ease-in-out infinite;
}
.scn-double-excellency .door-arch {
  position: absolute; top: 10%; left: 10%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: de-door 10s ease-in-out infinite alternate;
}
.scn-double-excellency .splash-puddle {
  position: absolute; bottom: 18%; left: 35%; width: 100px; height: 20px;
  background: radial-gradient(ellipse, #809080 0%, transparent 90%);
  border-radius: 50%;
  opacity: 0.3;
  animation: de-splash 4s ease-in-out infinite;
}
@keyframes de-basket {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-2deg) translateY(-3px); }
  50% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  75% { transform: translateX(-50%) rotate(2deg) translateY(-3px); }
}
@keyframes de-falstaff {
  0%,100% { transform: translateX(-50%) scaleY(1); }
  30% { transform: translateX(-50%) scaleY(1.1) translateY(-4px); }
  70% { transform: translateX(-50%) scaleY(0.95) translateY(2px); }
}
@keyframes de-point {
  0%,100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(15deg); }
}
@keyframes de-gasp {
  0%,100% { transform: translateX(0) scaleX(1); }
  25% { transform: translateX(-5px) scaleX(1.05); }
  50% { transform: translateX(0) scaleX(0.95); }
  75% { transform: translateX(5px) scaleX(1.05); }
}
@keyframes de-door {
  0% { transform: scaleX(1); opacity: 0.9; }
  100% { transform: scaleX(1.05); opacity: 1; }
}
@keyframes de-splash {
  0%,100% { opacity: 0.2; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.3); }
}

/* another-plot */
.scn-another-plot {
  background: 
    linear-gradient(180deg, #d8c8a8 0%, #b89870 40%, #907050 100%),
    radial-gradient(ellipse at 60% 50%, #f0d8b0 0%, transparent 70%);
}
.scn-another-plot .room-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #c0a878 0%, #987050 100%);
  box-shadow: inset 0 0 50px rgba(50,30,10,0.3);
  animation: ap-shadow 16s ease-in-out infinite alternate;
}
.scn-another-plot .table-round {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 40px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 30% 30% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: ap-table 12s ease-in-out infinite alternate;
}
.scn-another-plot .candle {
  position: absolute; bottom: 34%; left: 50%; transform: translateX(-50%);
  width: 6px; height: 20px;
  background: linear-gradient(180deg, #e0c080 0%, #806020 100%);
  border-radius: 2px;
  animation: ap-candleflicker 2s ease-in-out infinite;
}
.scn-another-plot .candle::after {
  content: ''; position: absolute; top: -8px; left: -3px; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd060 0%, #ffa020 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px #ffc040;
  animation: ap-candleflicker 2s ease-in-out infinite alternate;
}
.scn-another-plot .letter {
  position: absolute; bottom: 34%; left: 42%; width: 25px; height: 20px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ap-letter 8s ease-in-out infinite;
}
.scn-another-plot .figure-left {
  position: absolute; bottom: 25%; left: 25%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #6a4a3a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ap-whisper 4s ease-in-out infinite;
}
.scn-another-plot .figure-right {
  position: absolute; bottom: 25%; right: 25%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ap-whisper 4.5s ease-in-out infinite;
}
.scn-another-plot .whisper-line {
  position: absolute; bottom: 40%; left: 48%; width: 30px; height: 4px;
  background: radial-gradient(ellipse, rgba(200,180,140,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: ap-whisperline 3s ease-in-out infinite;
}
@keyframes ap-shadow {
  0%,100% { box-shadow: inset 0 0 30px rgba(50,30,10,0.2); }
  50% { box-shadow: inset 0 0 70px rgba(50,30,10,0.4); }
}
@keyframes ap-table {
  0%,100% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(1.02); }
}
@keyframes ap-candleflicker {
  0%,100% { opacity: 0.9; box-shadow: 0 0 12px 4px #ffc040; }
  50% { opacity: 1; box-shadow: 0 0 20px 8px #ffc040; }
}
@keyframes ap-letter {
  0%,100% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(-5deg) translateX(2px); }
}
@keyframes ap-whisper {
  0%,100% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(4px) rotate(5deg); }
  60% { transform: translateX(-2px) rotate(-3deg); }
}
@keyframes ap-whisperline {
  0%,100% { opacity: 0.1; transform: scaleX(1); }
  50% { opacity: 0.4; transform: scaleX(1.5); }
}

/* fairy-dance (fd-) */
.scn-fairy-dance {
  background: linear-gradient(180deg, #0f172a 0%, #1e293b 40%, #334155 100%),
              radial-gradient(ellipse at 50% 20%, #475569 0%, transparent 60%);
}
.scn-fairy-dance .sky { position:absolute; inset:0; background: linear-gradient(180deg, rgba(30,41,59,.8) 0%, transparent 100%); animation: fd-sky 12s ease-in-out infinite alternate; }
.scn-fairy-dance .moon { position:absolute; top:8%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #cbd5e1 0%, #94a3b8 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(203,213,225,.5); animation: fd-moon 8s ease-in-out infinite; }
.scn-fairy-dance .tree-trunk { position:absolute; bottom:0; left:45%; width:30px; height:60%; background: linear-gradient(90deg, #3f2e1e 0%, #5c4033 50%, #3f2e1e 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; animation: fd-trunk 6s ease-in-out infinite alternate; }
.scn-fairy-dance .tree-canopy { position:absolute; bottom:40%; left:35%; width:30%; height:35%; background: radial-gradient(ellipse at 50% 40%, #2d6a4f 0%, #1b4332 70%, #0f2a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -20px 30px rgba(0,0,0,.4); animation: fd-canopy 15s ease-in-out infinite; }
.scn-fairy-dance .fairy-a { position:absolute; bottom:55%; left:42%; width:12px; height:24px; background: radial-gradient(circle, #fde68a 0%, #f59e0b 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; box-shadow: 0 0 10px 2px #fde68a; animation: fd-fairy-a 5s ease-in-out infinite; }
.scn-fairy-dance .fairy-b { position:absolute; bottom:60%; left:52%; width:10px; height:20px; background: radial-gradient(circle, #fde68a 0%, #f59e0b 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; box-shadow: 0 0 10px 2px #fde68a; animation: fd-fairy-b 6s ease-in-out infinite; }
.scn-fairy-dance .glow-a { position:absolute; top:30%; left:30%; width:6px; height:6px; background: #fbbf24; border-radius:50%; box-shadow: 0 0 20px 8px rgba(251,191,36,.7); animation: fd-glow 3s ease-in-out infinite alternate; }
.scn-fairy-dance .glow-b { position:absolute; top:40%; left:60%; width:5px; height:5px; background: #fbbf24; border-radius:50%; box-shadow: 0 0 16px 6px rgba(251,191,36,.7); animation: fd-glow 4s ease-in-out infinite alternate; }
.scn-fairy-dance .glow-c { position:absolute; top:25%; left:50%; width:4px; height:4px; background: #fbbf24; border-radius:50%; box-shadow: 0 0 12px 4px rgba(251,191,36,.7); animation: fd-glow 2s ease-in-out infinite alternate; }
@keyframes fd-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes fd-moon { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes fd-trunk { 0% { transform: skewX(0deg) } 100% { transform: skewX(2deg) } }
@keyframes fd-canopy { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fd-fairy-a { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(10px,-10px) rotate(10deg) } 50% { transform: translate(-5px,-15px) rotate(-5deg) } 75% { transform: translate(15px,-8px) rotate(5deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes fd-fairy-b { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(-8px,-12px) rotate(-8deg) } 50% { transform: translate(12px,-6px) rotate(6deg) } 75% { transform: translate(-10px,-10px) rotate(-3deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes fd-glow { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.7; transform: scale(.9) } }

/* item-falstaffs-cheese (ifc-) */
.scn-item-falstaffs-cheese {
  background: linear-gradient(180deg, #1c1917 0%, #292524 40%, #44403c 100%),
              radial-gradient(ellipse at 50% 80%, #78350f 0%, transparent 70%);
}
.scn-item-falstaffs-cheese .fire { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, #dc2626 0%, #9a3412 40%, transparent 70%); animation: ifc-fire 5s ease-in-out infinite alternate; }
.scn-item-falstaffs-cheese .cheese-wedge { position:absolute; bottom:20%; left:35%; width:30%; height:40%; background: linear-gradient(135deg, #fcd34d 0%, #f59e0b 50%, #b45309 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; clip-path: polygon(0% 100%, 100% 100%, 100% 20%, 0% 0%); animation: ifc-cheese 4s ease-in-out infinite; }
.scn-item-falstaffs-cheese .flame { position:absolute; bottom:55%; left:50%; width:8px; height:20px; background: linear-gradient(180deg, #fde68a 0%, #f59e0b 50%, #dc2626 100%); border-radius: 50% 50% 20% 20%; transform: translateX(-50%); animation: ifc-flame .8s ease-in-out infinite alternate; box-shadow: 0 0 20px 6px #f59e0b; }
.scn-item-falstaffs-cheese .hand { position:absolute; bottom:30%; right:25%; width:20px; height:30px; background: linear-gradient(180deg, #a8a29e 0%, #78716c 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform: rotate(20deg); animation: ifc-hand 3s ease-in-out infinite; }
.scn-item-falstaffs-cheese .hole-a { position:absolute; bottom:35%; left:42%; width:12px; height:12px; background: #78350f; border-radius:50%; box-shadow: inset 0 2px 4px rgba(0,0,0,.5); animation: ifc-hole 5s ease-in-out infinite alternate; }
.scn-item-falstaffs-cheese .hole-b { position:absolute; bottom:25%; left:55%; width:8px; height:8px; background: #78350f; border-radius:50%; box-shadow: inset 0 2px 4px rgba(0,0,0,.5); animation: ifc-hole 4s ease-in-out infinite alternate-reverse; }
@keyframes ifc-fire { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ifc-cheese { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(2deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ifc-flame { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.2) } 100% { transform: translateX(-50%) scaleY(.8) } }
@keyframes ifc-hand { 0% { transform: rotate(20deg) translate(0,0) } 50% { transform: rotate(15deg) translate(0,-5px) } 100% { transform: rotate(20deg) translate(0,0) } }
@keyframes ifc-hole { 0% { transform: scale(1) } 50% { transform: scale(1.2) } 100% { transform: scale(.9) } }

/* unmasking (um-) */
.scn-unmasking {
  background: linear-gradient(180deg, #0f172a 0%, #1e293b 40%, #334155 100%),
              radial-gradient(ellipse at 50% 15%, #64748b 0%, transparent 50%);
}
.scn-unmasking .sky { position:absolute; inset:0; background: linear-gradient(180deg, rgba(30,41,59,.8) 0%, transparent 100%); animation: um-sky 15s ease-in-out infinite alternate; }
.scn-unmasking .moon { position:absolute; top:8%; left:30%; width:35px; height:35px; background: radial-gradient(circle, #cbd5e1 0%, #94a3b8 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(203,213,225,.4); animation: um-moon 10s ease-in-out infinite; }
.scn-unmasking .figure-left { position:absolute; bottom:10%; left:20%; width:30px; height:60px; background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: um-figure-left 6s ease-in-out infinite; }
.scn-unmasking .figure-right { position:absolute; bottom:10%; right:20%; width:30px; height:60px; background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: um-figure-right 6s ease-in-out infinite; }
.scn-unmasking .mask { position:absolute; top:25%; left:38%; width:18px; height:12px; background: linear-gradient(135deg, #fde68a 0%, #f59e0b 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; transform: translate(-50%, -50%); animation: um-mask 7s ease-in-out infinite alternate; }
.scn-unmasking .cloak { position:absolute; bottom:15%; right:30%; width:20px; height:40px; background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; animation: um-cloak 8s ease-in-out infinite; }
.scn-unmasking .star { position:absolute; top:18%; left:60%; width:3px; height:3px; background: #e2e8f0; border-radius:50%; box-shadow: 0 0 4px 2px #e2e8f0; animation: um-star 3s ease-in-out infinite alternate; }
@keyframes um-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes um-moon { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes um-figure-left { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-5deg) } }
@keyframes um-figure-right { 0% { transform: rotate(5deg) } 50% { transform: rotate(8deg) translateY(-2px) } 100% { transform: rotate(5deg) } }
@keyframes um-mask { 0% { transform: translate(-50%,-50%) scale(1) rotate(0deg) } 50% { transform: translate(-50%,-50%) scale(1.1) rotate(10deg) } 100% { transform: translate(-50%,-50%) scale(1) rotate(0deg) } }
@keyframes um-cloak { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes um-star { 0% { opacity:.5; transform: scale(1) } 100% { opacity:1; transform: scale(1.3) } }

/* falstaffs-repentance (fr-) */
.scn-falstaffs-repentance {
  background: linear-gradient(180deg, #0f172a 0%, #1e293b 40%, #334155 100%),
              radial-gradient(ellipse at 50% 20%, #475569 0%, transparent 60%);
}
.scn-falstaffs-repentance .sky { position:absolute; inset:0; background: linear-gradient(180deg, rgba(30,41,59,.8) 0%, transparent 100%); animation: fr-sky 18s ease-in-out infinite alternate; }
.scn-falstaffs-repentance .moon { position:absolute; top:8%; right:25%; width:40px; height:40px; background: radial-gradient(circle, #cbd5e1 0%, #94a3b8 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(203,213,225,.4); animation: fr-moon 10s ease-in-out infinite; }
.scn-falstaffs-repentance .figure { position:absolute; bottom:15%; left:50%; width:40px; height:70px; background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: fr-figure 5s ease-in-out infinite; }
.scn-falstaffs-repentance .ear-a { position:absolute; bottom:65%; left:46%; width:8px; height:20px; background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%); border-radius: 20% 20% 50% 50% / 60% 60% 40% 40%; transform: rotate(-20deg); animation: fr-ear 4s ease-in-out infinite alternate; }
.scn-falstaffs-repentance .ear-b { position:absolute; bottom:65%; right:46%; width:8px; height:20px; background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%); border-radius: 20% 20% 50% 50% / 60% 60% 40% 40%; transform: rotate(20deg); animation: fr-ear 4s ease-in-out infinite alternate-reverse; }
.scn-falstaffs-repentance .horn-a { position:absolute; bottom:80%; left:48%; width:6px; height:14px; background: linear-gradient(180deg, #78716c 0%, #44403c 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-30deg); animation: fr-horn 6s ease-in-out infinite; }
.scn-falstaffs-repentance .horn-b { position:absolute; bottom:80%; right:48%; width:6px; height:14px; background: linear-gradient(180deg, #78716c 0%, #44403c 100%); border-radius: 30% 30% 10% 10%; transform: rotate(30deg); animation: fr-horn 6s ease-in-out infinite; }
.scn-falstaffs-repentance .star-a { position:absolute; top:12%; left:15%; width:3px; height:3px; background: #e2e8f0; border-radius:50%; box-shadow: 0 0 4px 2px #e2e8f0; animation: fr-star 3s ease-in-out infinite alternate; }
.scn-falstaffs-repentance .star-b { position:absolute; top:20%; right:10%; width:2px; height:2px; background: #e2e8f0; border-radius:50%; box-shadow: 0 0 3px 1px #e2e8f0; animation: fr-star 4s ease-in-out infinite alternate-reverse; }
@keyframes fr-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fr-moon { 0% { transform: scale(1) } 50% { transform: scale(1.04) } 100% { transform: scale(1) } }
@keyframes fr-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-50%) translateY(-1px) rotate(3deg) } 50% { transform: translateX(-50%) translateY(0) rotate(0deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(-3deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes fr-ear { 0% { transform: rotate(-20deg) scaleY(1) } 50% { transform: rotate(-25deg) scaleY(1.1) } 100% { transform: rotate(-20deg) scaleY(1) } }
@keyframes fr-horn { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-35deg) } 100% { transform: rotate(-30deg) } }
@keyframes fr-star { 0% { opacity:.6; transform: scale(1) } 100% { opacity:1; transform: scale(1.4) } }

/* shallow-accuses-falstaff – tense sunlit confrontation */
.scn-shallow-accuses-falstaff {
  background: linear-gradient(180deg, #6fa8dc 0%, #f9d423 60%, #f7b731 80%),
              radial-gradient(circle at 20% 30%, #fff4cc 0%, transparent 50%);
}
.scn-shallow-accuses-falstaff .sky { position:absolute; inset:0 0 60% 0; background:linear-gradient(180deg, rgba(255,235,200,0.3) 0%, transparent 100%); animation: sas-sky 6s ease-in-out infinite alternate; }
.scn-shallow-accuses-falstaff .sun { position:absolute; top:12%; left:25%; width:40px; height:40px; background:radial-gradient(circle, #fff7cc 0%, #f9d423 50%, transparent 70%); border-radius:50%; box-shadow:0 0 60px 20px rgba(249,212,35,0.5); animation: sas-sun 8s ease-in-out infinite alternate; }
.scn-shallow-accuses-falstaff .house { position:absolute; bottom:30%; left:30%; width:140px; height:120px; background:linear-gradient(135deg, #b5651d 0%, #8b4513 100%); border-radius:8% 8% 4% 4%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5), 0 8px 12px rgba(0,0,0,0.3); animation: sas-house 10s ease-in-out infinite; }
.scn-shallow-accuses-falstaff .door { position:absolute; bottom:30%; left:38%; width:22px; height:44px; background:linear-gradient(180deg, #4a2e1b 0%, #2e1a0d 100%); border-radius:10% 10% 0 0; animation: sas-door 5s ease-in-out infinite alternate; }
.scn-shallow-accuses-falstaff .window { position:absolute; bottom:42%; left:34%; width:18px; height:18px; background:radial-gradient(circle, #fffae6 0%, #ffd54f 70%); border-radius:4px; box-shadow:0 0 16px 4px #ffd54f; animation: sas-window 2s ease-in-out infinite; }
.scn-shallow-accuses-falstaff .fig-left { position:absolute; bottom:30%; left:20%; width:20px; height:50px; background:linear-gradient(180deg, #2c2c3a 0%, #1a1a24 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: sas-figleft 1.5s ease-in-out infinite; }
.scn-shallow-accuses-falstaff .fig-right { position:absolute; bottom:30%; right:25%; width:28px; height:56px; background:linear-gradient(180deg, #3d2e1e 0%, #1f150c 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: sas-figright 2s ease-in-out infinite alternate; }
.scn-shallow-accuses-falstaff .ground { position:absolute; bottom:0; left:0; right:0; height:32%; background:linear-gradient(180deg, #7a5230 0%, #5a3a1c 100%); border-top:2px solid #8b5e3c; animation: sas-ground 9s ease-in-out infinite alternate; }
@keyframes sas-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sas-sun { 0% { transform: translate(0,0); box-shadow:0 0 40px 10px rgba(249,212,35,0.4); } 50% { transform: translate(3px,-2px); box-shadow:0 0 80px 20px rgba(249,212,35,0.6); } 100% { transform: translate(-2px,1px); box-shadow:0 0 50px 12px rgba(249,212,35,0.5); } }
@keyframes sas-house { 0%,100% { transform: translateX(0); } 25% { transform: translateY(-1px); } 50% { transform: translateY(1px); } 75% { transform: translateY(-1px); } }
@keyframes sas-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.2); } 100% { transform: scaleX(1); } }
@keyframes sas-window { 0% { opacity:0.6; box-shadow:0 0 8px 2px #ffd54f; } 50% { opacity:1; box-shadow:0 0 24px 6px #ffd54f; } 100% { opacity:0.8; box-shadow:0 0 12px 4px #ffd54f; } }
@keyframes sas-figleft { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(-4deg); } 60% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sas-figright { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(3deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes sas-ground { 0% { background-position: 0 0; } 50% { background-position: 10px 0; } 100% { background-position: -5px 0; } }

/* coat-of-arms-banter – funny sunlit banter with coat of arms */
.scn-coat-of-arms-banter {
  background: linear-gradient(180deg, #ffe066 0%, #fff0b3 40%, #c2f0c2 100%),
              radial-gradient(ellipse at 60% 80%, #c2f0c2 0%, transparent 60%);
}
.scn-coat-of-arms-banter .sky { position:absolute; inset:0 0 60% 0; background:linear-gradient(180deg, #b3d9ff 0%, #ffe066 100%); animation: cab-sky 10s ease-in-out infinite alternate; }
.scn-coat-of-arms-banter .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg, #9acc9a 0%, #66b366 100%); border-radius:40% 40% 0 0; animation: cab-ground 7s ease-in-out infinite; }
.scn-coat-of-arms-banter .shield { position:absolute; bottom:35%; left:50%; transform:translateX(-50%); width:80px; height:90px; background:linear-gradient(135deg, #cd853f 0%, #8b5e3c 100%); border-radius:30% 30% 20% 20% / 40% 40% 20% 20%; border:3px solid #b8860b; box-shadow:0 8px 16px rgba(0,0,0,0.3); animation: cab-shield 4s ease-in-out infinite; }
.scn-coat-of-arms-banter .fish-1 { position:absolute; bottom:40%; left:42%; width:18px; height:10px; background:radial-gradient(circle at 30% 50%, #f0f0f0 0%, #bfbfbf 100%); border-radius:50% 50% 0 0; transform:rotate(-10deg); animation: cab-fish1 3s ease-in-out infinite alternate; }
.scn-coat-of-arms-banter .fish-2 { position:absolute; bottom:45%; left:48%; width:20px; height:11px; background:radial-gradient(circle at 30% 50%, #f5f5f5 0%, #cccccc 100%); border-radius:50% 50% 0 0; transform:rotate(5deg); animation: cab-fish2 3.5s ease-in-out infinite alternate-reverse; }
.scn-coat-of-arms-banter .fish-3 { position:absolute; bottom:38%; left:54%; width:16px; height:9px; background:radial-gradient(circle at 30% 50%, #fafafa 0%, #d9d9d9 100%); border-radius:50% 50% 0 0; transform:rotate(15deg); animation: cab-fish3 4s ease-in-out infinite alternate; }
.scn-coat-of-arms-banter .jester-hat { position:absolute; top:15%; left:45%; width:24px; height:28px; background: linear-gradient(180deg, #ff6347 0%, #ff4500 50%, #ffa500 100%); border-radius:50% 50% 0 0; clip-path: polygon(0% 100%, 50% 0%, 100% 100%); transform-origin:bottom center; animation: cab-hat 2.4s ease-in-out infinite; }
@keyframes cab-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes cab-ground { 0%,100% { transform: translateY(0); } 25% { transform: translateY(-2px); } 75% { transform: translateY(2px); } }
@keyframes cab-shield { 0%,100% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(3deg); } 60% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes cab-fish1 { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(6px); } 100% { transform: rotate(-15deg) translateX(-4px); } }
@keyframes cab-fish2 { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(10deg) translateX(-5px); } 100% { transform: rotate(0deg) translateX(4px); } }
@keyframes cab-fish3 { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(20deg) translateX(4px); } 100% { transform: rotate(10deg) translateX(-3px); } }
@keyframes cab-hat { 0%,100% { transform: scaleY(1) rotate(0deg); } 25% { transform: scaleY(0.8) rotate(-5deg); } 50% { transform: scaleY(1.1) rotate(5deg); } 75% { transform: scaleY(0.9) rotate(-3deg); } }

/* evans-offers-mediation – funny mediation scene */
.scn-evans-offers-mediation {
  background: linear-gradient(180deg, #d4f0ff 0%, #ffe0b2 60%, #ffe0b2 100%),
              radial-gradient(circle at 30% 70%, #ffe0b2 0%, transparent 50%);
}
.scn-evans-offers-mediation .sky { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #a3d4f7 0%, #ffcca3 100%); animation: eom-sky 12s ease-in-out infinite alternate; }
.scn-evans-offers-mediation .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background:linear-gradient(180deg, #b8d4a0 0%, #7ca85c 100%); border-radius:30% 30% 0 0; animation: eom-ground 6s ease-in-out infinite; }
.scn-evans-offers-mediation .fig-left { position:absolute; bottom:25%; left:18%; width:22px; height:52px; background:linear-gradient(180deg, #3a3a4a 0%, #1a1a28 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: eom-figleft 2s ease-in-out infinite; }
.scn-evans-offers-mediation .fig-center { position:absolute; bottom:25%; left:45%; width:24px; height:54px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: eom-figcenter 2.5s ease-in-out infinite alternate; }
.scn-evans-offers-mediation .fig-right { position:absolute; bottom:25%; right:20%; width:20px; height:50px; background:linear-gradient(180deg, #3a2a3a 0%, #1a101a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: eom-figright 1.8s ease-in-out infinite; }
.scn-evans-offers-mediation .scroll { position:absolute; bottom:45%; left:38%; width:30px; height:12px; background:linear-gradient(180deg, #f5e6d3 0%, #d4b896 100%); border-radius:4px; transform:rotate(-5deg); box-shadow:0 2px 4px rgba(0,0,0,0.2); animation: eom-scroll 3s ease-in-out infinite alternate; }
@keyframes eom-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes eom-ground { 0%,100% { transform: translateY(0); } 30% { transform: translateY(-3px); } 70% { transform: translateY(2px); } }
@keyframes eom-figleft { 0% { transform: translateX(0) rotate(-2deg); } 40% { transform: translateX(5px) rotate(2deg); } 80% { transform: translateX(-3px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes eom-figcenter { 0% { transform: translateX(0) rotate(0deg) scale(1); } 50% { transform: translateX(2px) rotate(3deg) scale(1.05); } 100% { transform: translateX(-2px) rotate(-2deg) scale(0.98); } }
@keyframes eom-figright { 0% { transform: translateX(0) rotate(1deg); } 30% { transform: translateX(-4px) rotate(-3deg); } 70% { transform: translateX(6px) rotate(4deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes eom-scroll { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(0deg) translateX(8px); } 100% { transform: rotate(5deg) translateX(-4px); } }

/* riot-threatened – funny riot threat */
.scn-riot-threatened {
  background: linear-gradient(180deg, #f9d423 0%, #ffb347 40%, #e67300 100%),
              radial-gradient(circle at 80% 20%, #ffdf80 0%, transparent 60%);
}
.scn-riot-threatened .sky { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #ffdb99 0%, #ffd699 100%); animation: rot-sky 10s ease-in-out infinite alternate; }
.scn-riot-threatened .ground { position:absolute; bottom:0; left:0; right:0; height:60%; background:linear-gradient(180deg, #a67c52 0%, #6b4c2a 100%); border-radius:20% 20% 0 0; animation: rot-ground 8s ease-in-out infinite; }
.scn-riot-threatened .mob-1 { position:absolute; bottom:20%; left:15%; width:18px; height:46px; background:linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rot-mob1 2s ease-in-out infinite alternate; }
.scn-riot-threatened .mob-2 { position:absolute; bottom:20%; left:25%; width:20px; height:48px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rot-mob2 2.3s ease-in-out infinite alternate-reverse; }
.scn-riot-threatened .mob-3 { position:absolute; bottom:20%; left:35%; width:19px; height:44px; background:linear-gradient(180deg, #2a3a3a 0%, #101a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rot-mob3 1.9s ease-in-out infinite; }
.scn-riot-threatened .leader { position:absolute; bottom:20%; left:55%; width:26px; height:60px; background:linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: rot-leader 1.5s ease-in-out infinite; }
.scn-riot-threatened .sword { position:absolute; bottom:40%; left:58%; width:4px; height:30px; background:linear-gradient(180deg, #c0c0c0 0%, #808080 100%); border-radius:2px; transform:rotate(20deg); transform-origin:bottom center; animation: rot-sword 1.6s ease-in-out infinite alternate; }
.scn-riot-threatened .shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.3) 100%); animation: rot-shadow 6s ease-in-out infinite; }
@keyframes rot-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes rot-ground { 0%,100% { transform: translateY(0); } 30% { transform: translateY(-4px); } 70% { transform: translateY(3px); } }
@keyframes rot-mob1 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(3deg); } 100% { transform: translateX(-4px) rotate(-2deg); } }
@keyframes rot-mob2 { 0% { transform: translateX(0) rotate(0deg) scale(1); } 50% { transform: translateX(-6px) rotate(-4deg) scale(1.02); } 100% { transform: translateX(4px) rotate(2deg) scale(0.98); } }
@keyframes rot-mob3 { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(5px) rotate(2deg); } 80% { transform: translateX(-3px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rot-leader { 0% { transform: translateX(0) rotate(-3deg); } 40% { transform: translateX(4px) rotate(5deg); } 80% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rot-sword { 0% { transform: rotate(20deg) scaleY(1); } 50% { transform: rotate(30deg) scaleY(1.1); } 100% { transform: rotate(15deg) scaleY(0.95); } }
@keyframes rot-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

.scn-wart-tale {
  background: linear-gradient(180deg, #2a1a0e 0%, #3a2214 40%, #1a0e06 100%), radial-gradient(ellipse at 50% 100%, #4a2a1a 0%, transparent 60%);
}
.scn-wart-tale .bg-wall {
  position: absolute; inset: 30% 0 0 0;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 20% 20% 0 0;
}
.scn-wart-tale .table {
  position: absolute; bottom: 20%; left: 50%; width: 60%; height: 8%; transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2214 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: wt-table 6s ease-in-out infinite;
}
.scn-wart-tale .candle-glow {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 20px; transform: translateX(-50%);
  background: radial-gradient(circle, #ffd060 0%, #c08040 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,0.4);
  animation: wt-candle 2s ease-in-out infinite alternate;
}
.scn-wart-tale .fig-maid {
  position: absolute; bottom: 20%; left: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a2214 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wt-figleft 4s ease-in-out infinite;
}
.scn-wart-tale .fig-speaker {
  position: absolute; bottom: 20%; right: 25%; width: 35px; height: 75px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wt-figright 3.5s ease-in-out infinite;
}
.scn-wart-tale .chair {
  position: absolute; bottom: 20%; left: 15%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 20% 20%; box-shadow: 0 6px 10px rgba(0,0,0,0.5);
}
@keyframes wt-table {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg) scale(1.01); }
}
@keyframes wt-candle {
  0% { box-shadow: 0 0 20px 6px #c08040, 0 0 40px 10px rgba(192,128,64,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 35px 12px #ffd060, 0 0 70px 20px rgba(255,208,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px #c08040, 0 0 50px 12px rgba(192,128,64,0.35); opacity: 0.85; }
}
@keyframes wt-figleft {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(2px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(0) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-2px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes wt-figright {
  0% { transform: translateX(0) translateY(0) rotate(0deg) scaleX(1); }
  30% { transform: translateX(-3px) translateY(-1px) rotate(-3deg) scaleX(0.95); }
  60% { transform: translateX(1px) translateY(0) rotate(2deg) scaleX(1.05); }
  100% { transform: translateX(0) translateY(0) rotate(0deg) scaleX(1); }
}

.scn-fenton-exits {
  background: linear-gradient(180deg, #2a1a0e 0%, #4a2a1a 50%, #1a0e06 100%), radial-gradient(ellipse at 50% 0%, #5a3a2a 0%, transparent 70%);
}
.scn-fenton-exits .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #3a2214 0%, #4a2a1a 50%, #3a2214 100%);
}
.scn-fenton-exits .door-frame {
  position: absolute; bottom: 0; left: 50%; width: 80px; height: 80%; transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0e 100%);
  border-radius: 8% 8% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-fenton-exits .door {
  position: absolute; bottom: 0; left: 50%; width: 70px; height: 70%; transform: translateX(-50%) rotateY(0deg);
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2214 100%);
  border-radius: 4% 4% 0 0;
  transform-origin: left center;
  animation: fe-door 5s ease-in-out infinite;
}
.scn-fenton-exits .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #3a2214 0%, #1a0e06 100%);
  box-shadow: 0 -4px 10px rgba(0,0,0,0.6);
}
.scn-fenton-exits .fig-fenton {
  position: absolute; bottom: 15%; left: 50%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fe-fenton 6s ease-in-out infinite;
}
.scn-fenton-exits .lantern-light {
  position: absolute; bottom: 25%; left: 45%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd060, #c08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 25px 8px #c08040;
  animation: fe-light 3s ease-in-out infinite alternate;
}
@keyframes fe-door {
  0% { transform: translateX(-50%) rotateY(0deg); }
  25% { transform: translateX(-50%) rotateY(-15deg); }
  50% { transform: translateX(-50%) rotateY(0deg); }
  75% { transform: translateX(-50%) rotateY(-10deg); }
  100% { transform: translateX(-50%) rotateY(0deg); }
}
@keyframes fe-fenton {
  0% { transform: translateX(-50%) translateY(0) scaleX(1); }
  20% { transform: translateX(-40%) translateY(-2px) scaleX(0.9); }
  40% { transform: translateX(-30%) translateY(0) scaleX(1); }
  60% { transform: translateX(-20%) translateY(-1px) scaleX(0.95); }
  80% { transform: translateX(-10%) translateY(0) scaleX(1); }
  100% { transform: translateX(0%) translateY(0) scaleX(1); }
}
@keyframes fe-light {
  0% { box-shadow: 0 0 15px 4px #c08040; opacity: 0.8; }
  50% { box-shadow: 0 0 30px 10px #ffd060; opacity: 1; }
  100% { box-shadow: 0 0 20px 6px #c08040; opacity: 0.9; }
}

.scn-page-letter-read {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 50%, #f0f8ff 100%), radial-gradient(ellipse at 50% 0%, #fff0c0 0%, transparent 60%);
}
.scn-page-letter-read .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, #e0f0ff 100%);
  animation: pl-sky 15s ease-in-out infinite alternate;
}
.scn-page-letter-read .sun {
  position: absolute; top: 10%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff0c0 0%, #ffe680 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #ffe680;
  animation: pl-sun 8s ease-in-out infinite;
}
.scn-page-letter-read .cloud {
  position: absolute; top: 15%; left: 10%; width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.2) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: pl-cloud 40s linear infinite;
}
.scn-page-letter-read .house {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 90px; transform: translateX(-50%);
  background: linear-gradient(180deg, #d4a86a 0%, #b08050 100%);
  border-radius: 6% 6% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: pl-house 4s ease-in-out infinite;
}
.scn-page-letter-read .garden-wall {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
}
.scn-page-letter-read .path {
  position: absolute; bottom: 12%; left: 30%; right: 30%; height: 16px;
  background: linear-gradient(90deg, #c8a870 0%, #b09060 50%, #c8a870 100%);
  border-radius: 50%; filter: blur(2px);
}
.scn-page-letter-read .fig-mistress {
  position: absolute; bottom: 20%; left: 50%; width: 36px; height: 80px; transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pl-fig 3s ease-in-out infinite;
}
.scn-page-letter-read .letter {
  position: absolute; bottom: 30%; left: 55%; width: 28px; height: 20px;
  background: #f0e6d0; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  transform-origin: center;
  animation: pl-letter 2.5s ease-in-out infinite;
}
@keyframes pl-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes pl-sun {
  0% { box-shadow: 0 0 30px 10px #ffe680; transform: scale(1); }
  50% { box-shadow: 0 0 60px 20px #fff0c0; transform: scale(1.05); }
  100% { box-shadow: 0 0 40px 15px #ffe680; transform: scale(1); }
}
@keyframes pl-cloud {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(calc(100vw + 40px)); }
}
@keyframes pl-house {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02) translateY(-2px); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes pl-fig {
  0% { transform: translateX(-50%) rotate(-1deg); }
  25% { transform: translateX(-48%) rotate(1deg) scaleY(1.02); }
  50% { transform: translateX(-50%) rotate(-1deg); }
  75% { transform: translateX(-52%) rotate(1deg) scaleY(0.98); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes pl-letter {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-4px) rotate(8deg); }
  60% { transform: translateY(0) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-item-falstaffs-letter-page-read {
  background: linear-gradient(180deg, #f0e6d0 0%, #d4c4a0 50%, #b8a880 100%), radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 50%);
}
.scn-item-falstaffs-letter-page-read .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #d4c4a0 0%, #c8b890 50%, #d4c4a0 100%);
}
.scn-item-falstaffs-letter-page-read .window {
  position: absolute; top: 10%; right: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #b0d0e8 0%, #d0e0f0 100%);
  border: 6px solid #8a6a4a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
  animation: if-window 6s ease-in-out infinite alternate;
}
.scn-item-falstaffs-letter-page-read .desk {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 12px; transform: translateX(-50%);
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-item-falstaffs-letter-page-read .chair {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
}
.scn-item-falstaffs-letter-page-read .fig-mistress {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 90px; transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: if-fig 3s ease-in-out infinite;
}
.scn-item-falstaffs-letter-page-read .letter {
  position: absolute; bottom: 26%; left: 52%; width: 40px; height: 26px;
  background: #f0e6d0; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform-origin: center;
  animation: if-letter 2s ease-in-out infinite;
}
.scn-item-falstaffs-letter-page-read .sunbeam {
  position: absolute; top: 10%; left: 55%; width: 40%; height: 60%;
  background: linear-gradient(135deg, rgba(255,255,230,0.15) 0%, rgba(255,255,230,0) 100%);
  transform: rotate(-15deg);
  animation: if-sunbeam 8s ease-in-out infinite alternate;
}
@keyframes if-window {
  0% { box-shadow: inset 0 0 20px rgba(255,255,200,0.3); background: #b0d0e8; }
  50% { box-shadow: inset 0 0 40px rgba(255,255,200,0.5); background: #d0e8f0; }
  100% { box-shadow: inset 0 0 20px rgba(255,255,200,0.3); background: #b0d0e8; }
}
@keyframes if-fig {
  0% { transform: translateX(-50%) rotate(0deg) scaleX(1); }
  20% { transform: translateX(-50%) rotate(-2deg) scaleX(0.98); }
  40% { transform: translateX(-50%) rotate(1deg) scaleX(1.02); }
  60% { transform: translateX(-50%) rotate(-1deg) scaleX(0.99); }
  80% { transform: translateX(-50%) rotate(2deg) scaleX(1.01); }
  100% { transform: translateX(-50%) rotate(0deg) scaleX(1); }
}
@keyframes if-letter {
  0% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-3px) rotate(5deg); }
  40% { transform: translateY(0) rotate(-3deg); }
  60% { transform: translateY(-2px) rotate(4deg); }
  80% { transform: translateY(0) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes if-sunbeam {
  0% { opacity: 0.6; transform: rotate(-15deg) scaleX(1); }
  50% { opacity: 1; transform: rotate(-10deg) scaleX(1.1); }
  100% { opacity: 0.7; transform: rotate(-20deg) scaleX(1); }
}

/* Ribbing Falstaff */
.scn-ribbing-falstaff {
  background: linear-gradient(180deg, #0d1b3e 0%, #1a2d5e 40%, #2c3f6e 70%, #1a2d5e 100%), radial-gradient(ellipse at 50% 20%, #4a6a9a 0%, transparent 60%);
}
.scn-ribbing-falstaff .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a2d5e 0%, transparent 100%);
  animation: rf-sky 12s ease-in-out infinite alternate;
}
.scn-ribbing-falstaff .moon {
  position: absolute; top: 8%; left: 55%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d4e0f0 0%, #a0b8d0 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(160,184,208,0.4);
  animation: rf-moon 8s ease-in-out infinite alternate;
}
.scn-ribbing-falstaff .trees-left {
  position: absolute; bottom: 20%; left: 5%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0;
  transform: rotate(-5deg);
  box-shadow: -5px 10px 15px rgba(0,0,0,0.6);
  animation: rf-trees 14s ease-in-out infinite alternate;
}
.scn-ribbing-falstaff .trees-right {
  position: absolute; bottom: 20%; right: 8%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 40% 0 0 / 70% 60% 0 0;
  transform: rotate(3deg);
  box-shadow: 5px 10px 15px rgba(0,0,0,0.6);
  animation: rf-trees 14s ease-in-out infinite alternate-reverse;
}
.scn-ribbing-falstaff .falstaff {
  position: absolute; bottom: 10%; left: 50%; width: 70px; height: 90px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, #2a3a4a 0%, #1a2232 70%, #0a0a1a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  box-shadow: 0 5px 20px rgba(0,0,0,0.7);
  animation: rf-falstaff 5s ease-in-out infinite;
}
.scn-ribbing-falstaff .fairy-1 {
  position: absolute; top: 25%; left: 30%; width: 12px; height: 12px;
  background: radial-gradient(circle, #f0e4c8 0%, #d4c098 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(212,192,152,0.6);
  animation: rf-fairy 6s ease-in-out infinite;
}
.scn-ribbing-falstaff .fairy-2 {
  position: absolute; top: 40%; left: 65%; width: 10px; height: 10px;
  background: radial-gradient(circle, #f0e4c8 0%, #d4c098 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 15px 4px rgba(212,192,152,0.5);
  animation: rf-fairy 8s ease-in-out infinite 2s;
}
.scn-ribbing-falstaff .fairy-3 {
  position: absolute; top: 35%; left: 20%; width: 8px; height: 8px;
  background: radial-gradient(circle, #f0e4c8 0%, #d4c098 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px rgba(212,192,152,0.4);
  animation: rf-fairy 7s ease-in-out infinite 4s;
}
.scn-ribbing-falstaff .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(160,184,208,0.15) 0%, transparent 70%);
  animation: rf-glow 10s ease-in-out infinite alternate;
}
@keyframes rf-sky {
  0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; }
}
@keyframes rf-moon {
  0% { transform: scale(0.95); box-shadow: 0 0 30px 10px rgba(160,184,208,0.3); }
  50% { transform: scale(1.05); box-shadow: 0 0 50px 20px rgba(160,184,208,0.5); }
  100% { transform: scale(1); box-shadow: 0 0 40px 15px rgba(160,184,208,0.4); }
}
@keyframes rf-trees {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(3px); }
  100% { transform: rotate(-6deg) translateX(-2px); }
}
@keyframes rf-falstaff {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  75% { transform: translateX(-50%) rotate(-1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes rf-fairy {
  0% { transform: translateY(0) scale(1); opacity: 0.7; }
  25% { transform: translateY(-15px) scale(1.1); opacity: 1; }
  50% { transform: translateY(5px) scale(0.9); opacity: 0.8; }
  75% { transform: translateY(-10px) scale(1.05); opacity: 0.9; }
  100% { transform: translateY(0) scale(1); opacity: 0.7; }
}
@keyframes rf-glow {
  0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; }
}

/* Falstaff's Dejection */
.scn-falstaffs-dejection {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1f 50%, #1a1a2e 100%), radial-gradient(ellipse at 30% 50%, #2a2a4a 0%, transparent 70%);
}
.scn-falstaffs-dejection .wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(90deg, #1a1a2e 0%, #252545 50%, #1a1a2e 100%);
}
.scn-falstaffs-dejection .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1f 100%);
}
.scn-falstaffs-dejection .window {
  position: absolute; top: 10%; left: 5%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #2a4060 0%, #1a2a4a 100%);
  border: 3px solid #2a2a4a;
  border-radius: 5px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 30px 10px rgba(60,100,160,0.2);
  animation: fd-window 4s ease-in-out infinite alternate;
}
.scn-falstaffs-dejection .moonbeam {
  position: absolute; top: 10%; left: 5%; width: 120px; height: 60%;
  background: linear-gradient(135deg, rgba(160,184,208,0.3) 0%, transparent 100%);
  transform: skewX(-15deg);
  transform-origin: top left;
  animation: fd-moonbeam 3s ease-in-out infinite alternate;
}
.scn-falstaffs-dejection .dejected-figure {
  position: absolute; bottom: 15%; left: 30%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(5deg);
  box-shadow: 0 5px 15px rgba(0,0,0,0.7);
  animation: fd-shake 1.5s ease-in-out infinite;
}
.scn-falstaffs-dejection .chair {
  position: absolute; bottom: 15%; left: 40%; width: 20px; height: 30px;
  background: #1a1a2a;
  border-radius: 3px;
  box-shadow: 2px 0 5px rgba(0,0,0,0.5);
  transform: rotate(-10deg);
}
.scn-falstaffs-dejection .bottle {
  position: absolute; bottom: 22%; left: 45%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(25deg);
  animation: fd-bottle 4s ease-in-out infinite;
}
@keyframes fd-window {
  0% { opacity: 0.5; box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 20px 5px rgba(60,100,160,0.1); }
  50% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 35px 15px rgba(60,100,160,0.3); }
  100% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 25px 8px rgba(60,100,160,0.15); }
}
@keyframes fd-moonbeam {
  0% { opacity: 0.2; transform: skewX(-15deg) translateX(0); }
  50% { opacity: 0.5; transform: skewX(-15deg) translateX(5px); }
  100% { opacity: 0.3; transform: skewX(-15deg) translateX(-3px); }
}
@keyframes fd-shake {
  0% { transform: rotate(5deg) translateY(0); }
  10% { transform: rotate(3deg) translateY(-2px); }
  20% { transform: rotate(6deg) translateY(1px); }
  30% { transform: rotate(4deg) translateY(-1px); }
  40% { transform: rotate(7deg) translateY(2px); }
  50% { transform: rotate(5deg) translateY(0); }
  60% { transform: rotate(2deg) translateY(-1px); }
  70% { transform: rotate(6deg) translateY(1px); }
  80% { transform: rotate(4deg) translateY(-2px); }
  90% { transform: rotate(5deg) translateY(0); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes fd-bottle {
  0% { transform: rotate(25deg) translateY(0); }
  50% { transform: rotate(30deg) translateY(-3px); }
  100% { transform: rotate(20deg) translateY(0); }
}

/* Anne's Marriage Plot */
.scn-annes-marriage-plot {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #4a3a2a 60%, #3a2a1a 100%), radial-gradient(ellipse at 50% 80%, #5a4a3a 0%, transparent 70%);
}
.scn-annes-marriage-plot .room-bg {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
}
.scn-annes-marriage-plot .hearth {
  position: absolute; bottom: 0; left: 20%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.8);
}
.scn-annes-marriage-plot .fire-glow {
  position: absolute; bottom: 10%; left: 30%; width: 60px; height: 50px;
  background: radial-gradient(ellipse at 50% 80%, #ff9940 0%, #cc6620 50%, #8a3a0a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: 0 0 60px 30px rgba(204,102,32,0.3);
  animation: ap-fireglow 3s ease-in-out infinite alternate;
}
.scn-annes-marriage-plot .mantel {
  position: absolute; bottom: 50%; left: 20%; width: 130px; height: 12px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-annes-marriage-plot .profile-woman {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-10deg);
  box-shadow: 0 5px 15px rgba(0,0,0,0.6);
  animation: ap-woman 5s ease-in-out infinite alternate;
}
.scn-annes-marriage-plot .table {
  position: absolute; bottom: 12%; left: 60%; width: 50px; height: 10px;
  background: #3a2a1a;
  border-radius: 3px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.5);
}
.scn-annes-marriage-plot .posset {
  position: absolute; bottom: 18%; left: 65%; width: 18px; height: 14px;
  background: linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ap-steam 6s ease-in-out infinite;
}
.scn-annes-marriage-plot .candle {
  position: absolute; bottom: 15%; left: 50%; width: 6px; height: 30px;
  background: #8a7a6a;
  border-radius: 2px 2px 1px 1px;
}
.scn-annes-marriage-plot .candle::after {
  content: '';
  position: absolute; top: -8px; left: -1px; width: 8px; height: 10px;
  background: radial-gradient(circle, #ffe0a0 0%, #ffaa40 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 15px 5px rgba(255,170,64,0.5);
  animation: ap-candle 2s ease-in-out infinite alternate;
}
@keyframes ap-fireglow {
  0% { transform: scale(1); opacity: 0.7; box-shadow: 0 0 40px 20px rgba(204,102,32,0.2); }
  50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 80px 40px rgba(204,102,32,0.4); }
  100% { transform: scale(1.05); opacity: 0.85; box-shadow: 0 0 60px 30px rgba(204,102,32,0.3); }
}
@keyframes ap-woman {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-3px); }
  100% { transform: rotate(-12deg) translateY(0); }
}
@keyframes ap-steam {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  25% { transform: translateY(-10px) scale(1.1); opacity: 0.8; }
  50% { transform: translateY(-5px) scale(0.95); opacity: 0.5; }
  75% { transform: translateY(-15px) scale(1.05); opacity: 0.7; }
  100% { transform: translateY(0) scale(1); opacity: 0.6; }
}
@keyframes ap-candle {
  0% { transform: scale(1) translateY(0); opacity: 0.8; }
  50% { transform: scale(1.2) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.9) translateY(1px); opacity: 0.7; }
}

/* Slender's Mistake */
.scn-slenders-mistake {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #1a1410 100%), radial-gradient(ellipse at 50% 50%, #3a3028 0%, transparent 70%);
}
.scn-slenders-mistake .church-wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%);
}
.scn-slenders-mistake .pillar {
  position: absolute; bottom: 15%; left: 20%; width: 20px; height: 80%;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: inset -3px 0 5px rgba(0,0,0,0.5), 2px 0 5px rgba(0,0,0,0.3);
}
.scn-slenders-mistake .window {
  position: absolute; top: 8%; left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a6040 0%, #2a3a20 100%);
  border: 3px solid #3a2a1a;
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 0 30px 10px rgba(100,140,80,0.15);
  animation: sm-window 5s ease-in-out infinite alternate;
}
.scn-slenders-mistake .slender {
  position: absolute; bottom: 15%; left: 30%; width: 12px; height: 100px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(2deg);
  box-shadow: 0 5px 10px rgba(0,0,0,0.6);
  animation: sm-slender 4s ease-in-out infinite;
}
.scn-slenders-mistake .boy {
  position: absolute; bottom: 12%; left: 50%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 40%, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.5);
  animation: sm-boy 6s ease-in-out infinite;
}
.scn-slenders-mistake .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
}
.scn-slenders-mistake .pew {
  position: absolute; bottom: 15%; left: 60%; width: 30px; height: 25px;
  background: #2a1a0a;
  border-radius: 5px 5px 2px 2px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.5);
}
@keyframes sm-window {
  0% { opacity: 0.4; box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 0 20px 5px rgba(100,140,80,0.1); }
  50% { opacity: 0.7; box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 0 40px 15px rgba(100,140,80,0.25); }
  100% { opacity: 0.5; box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 0 30px 10px rgba(100,140,80,0.15); }
}
@keyframes sm-slender {
  0% { transform: rotate(2deg) translateX(0); }
  20% { transform: rotate(-3deg) translateX(5px); }
  40% { transform: rotate(4deg) translateX(-3px); }
  60% { transform: rotate(-2deg) translateX(4px); }
  80% { transform: rotate(3deg) translateX(-2px); }
  100% { transform: rotate(2deg) translateX(0); }
}
@keyframes sm-boy {
  0% { transform: translateY(0) scale(1); }
  30% { transform: translateY(-8px) scale(1.1); }
  60% { transform: translateY(4px) scale(0.95); }
  100% { transform: translateY(0) scale(1); }
}

.scn-mistress-quickly-reports {
  position: relative;
  background: linear-gradient(180deg, #1e1814 0%, #2a1f16 50%, #1a1410 100%), radial-gradient(circle at 50% 70%, #3a2a1a 0%, transparent 70%);
}
.scn-mistress-quickly-reports .mq-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1814 0%, #2a1f16 100%);
  animation: mq-breath 12s ease-in-out infinite alternate;
}
.scn-mistress-quickly-reports .mq-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: repeating-linear-gradient(90deg, #1a1410 0%, #1a1410 8px, #231c16 8px, #231c16 16px);
  opacity: 0.7;
}
.scn-mistress-quickly-reports .mq-table {
  position: absolute; bottom: 30%; left: 30%; width: 60px; height: 14px;
  background: #3a2a1a; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-mistress-quickly-reports .mq-candle {
  position: absolute; bottom: calc(30% + 14px); left: 32%; width: 6px; height: 18px;
  background: #e8c080; border-radius: 2px;
  box-shadow: 0 0 12px 3px #f0d090, 0 0 24px 6px rgba(240,208,144,0.3);
  animation: mq-candle 2s ease-in-out infinite alternate;
}
.scn-mistress-quickly-reports .mq-figure {
  position: absolute; bottom: 26%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a221a 0%, #1a140e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: mq-tilt 3s ease-in-out infinite;
}
.scn-mistress-quickly-reports .mq-hat {
  position: absolute; bottom: 48%; left: 34%; width: 24px; height: 12px;
  background: #3a2a1a; border-radius: 30% 30% 0 0;
  animation: mq-hat 2.5s ease-in-out infinite;
}
.scn-mistress-quickly-reports .mq-hand {
  position: absolute; bottom: 32%; left: 42%; width: 10px; height: 6px;
  background: #2a221a; border-radius: 50%;
  animation: mq-point 2s ease-in-out infinite;
}
@keyframes mq-breath {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes mq-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.8; }
  50% { transform: scaleY(1.1) scaleX(0.95); opacity: 1; }
  100% { transform: scaleY(0.98) scaleX(1.02); opacity: 0.85; }
}
@keyframes mq-tilt {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes mq-hat {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-2px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-4deg); }
}
@keyframes mq-point {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.3) rotate(15deg); }
  100% { transform: scale(1) rotate(0deg); }
}

.scn-best-courtier-cannot {
  position: relative;
  background: linear-gradient(180deg, #1a162c 0%, #0f0d1a 50%, #1a162c 100%), radial-gradient(circle at 50% 40%, #2a2538 0%, transparent 70%);
}
.scn-best-courtier-cannot .bc-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a162c 0%, #0f0d1a 100%);
}
.scn-best-courtier-cannot .bc-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #1a1410 0%, #1a1410 10px, #231c16 10px, #231c16 20px);
  opacity: 0.5;
}
.scn-best-courtier-cannot .bc-figure {
  position: absolute; bottom: 20%; left: 42%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: bc-dance 1.5s ease-in-out infinite;
}
.scn-best-courtier-cannot .bc-cape {
  position: absolute; bottom: 20%; left: 38%; width: 40px; height: 50px;
  background: #2a2040; border-radius: 30%; transform-origin: top center;
  animation: bc-cape 1.5s ease-in-out infinite;
}
.scn-best-courtier-cannot .bc-hat {
  position: absolute; bottom: 45%; left: 38%; width: 36px; height: 16px;
  background: #1a1a2e; border-radius: 50%;
  animation: bc-hat 1.5s ease-in-out infinite;
}
.scn-best-courtier-cannot .bc-leg {
  position: absolute; bottom: 18%; left: 46%; width: 8px; height: 20px;
  background: #2a1a2a; border-radius: 4px;
  transform-origin: top center;
  animation: bc-kick 1.6s ease-in-out infinite alternate;
}
.scn-best-courtier-cannot .bc-arm {
  position: absolute; bottom: 28%; left: 32%; width: 6px; height: 22px;
  background: #2a1a2a; border-radius: 3px;
  transform-origin: top center;
  animation: bc-wave 2s ease-in-out infinite alternate;
}
@keyframes bc-dance {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(1.05); }
  100% { transform: rotate(-4deg) scaleY(1); }
}
@keyframes bc-cape {
  0% { transform: rotate(-15deg) scaleY(1); }
  50% { transform: rotate(15deg) scaleY(1.05); }
  100% { transform: rotate(-10deg) scaleY(1); }
}
@keyframes bc-hat {
  0% { transform: rotate(-10deg) scaleX(1); }
  50% { transform: rotate(10deg) scaleX(1.05); }
  100% { transform: rotate(-8deg) scaleX(1); }
}
@keyframes bc-kick {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-3px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes bc-wave {
  0% { transform: rotate(-30deg); }
  40% { transform: rotate(20deg); }
  80% { transform: rotate(-20deg); }
  100% { transform: rotate(-25deg); }
}

.scn-ten-and-eleven {
  position: relative;
  background: linear-gradient(180deg, #1e1e28 0%, #111116 50%, #1e1e28 100%), radial-gradient(circle at 50% 35%, #2a2a3a 0%, transparent 70%);
}
.scn-ten-and-eleven .te-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1e28 0%, #111116 100%);
}
.scn-ten-and-eleven .te-clock {
  position: absolute; top: 30%; left: 42%; width: 60px; height: 60px;
  background: #2a2a3a; border: 2px solid #4a4a5a; border-radius: 50%;
  box-shadow: 0 0 12px 2px #4a4a5a;
}
.scn-ten-and-eleven .te-hand1 {
  position: absolute; bottom: 50%; left: 50%; width: 4px; height: 18px;
  background: #c0c0c0; transform-origin: bottom center;
  border-radius: 2px; margin-left: -2px;
  animation: te-hand1 3s ease-in-out infinite alternate;
}
.scn-ten-and-eleven .te-hand2 {
  position: absolute; bottom: 50%; left: 50%; width: 3px; height: 24px;
  background: #d0d0d0; transform-origin: bottom center;
  border-radius: 2px; margin-left: -1.5px;
  animation: te-hand2 3s ease-in-out infinite alternate;
}
.scn-ten-and-eleven .te-pendulum {
  position: absolute; top: calc(30% + 60px); left: 50%; width: 4px; height: 30px;
  background: #4a4a5a; transform-origin: top center;
  border-radius: 2px; margin-left: -2px;
  animation: te-pendulum 2s ease-in-out infinite;
}
.scn-ten-and-eleven .te-door {
  position: absolute; bottom: 0; left: 20%; width: 50px; height: 100px;
  background: #2a2a3a; border: 1px solid #4a4a5a;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.5);
}
.scn-ten-and-eleven .te-rug {
  position: absolute; bottom: 5%; left: 25%; width: 80px; height: 20px;
  background: #3a2a2a; border-radius: 50%;
}
@keyframes te-hand1 {
  0% { transform: rotate(298deg); }
  50% { transform: rotate(302deg); }
  100% { transform: rotate(298deg); }
}
@keyframes te-hand2 {
  0% { transform: rotate(358deg); }
  50% { transform: rotate(362deg); }
  100% { transform: rotate(358deg); }
}
@keyframes te-pendulum {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(-20deg); }
}

.scn-husband-absence-set {
  position: relative;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a1e1a 50%, #1a1410 100%), radial-gradient(circle at 30% 70%, #3a2a1a 0%, transparent 70%);
}
.scn-husband-absence-set .ha-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a1e1a 100%);
}
.scn-husband-absence-set .ha-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #1a1410 0%, #1a1410 8px, #231c16 8px, #231c16 16px);
  opacity: 0.6;
}
.scn-husband-absence-set .ha-door {
  position: absolute; bottom: 0; left: 40%; width: 50px; height: 100px;
  background: #2a201a; border: 2px solid #3a302a;
  transform: skewY(3deg); transform-origin: bottom left;
  animation: ha-door 5s ease-in-out infinite alternate;
}
.scn-husband-absence-set .ha-figure {
  position: absolute; bottom: 30%; left: 43%; width: 20px; height: 50px;
  background: #2a1a1a;
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  animation: ha-peek 4s ease-in-out infinite;
}
.scn-husband-absence-set .ha-candle {
  position: absolute; bottom: 15%; left: 30%; width: 6px; height: 18px;
  background: #e8c080; border-radius: 2px;
  box-shadow: 0 0 10px 2px #f0d090, 0 0 20px 5px rgba(240,208,144,0.3);
  animation: ha-candle 2.5s ease-in-out infinite alternate;
}
.scn-husband-absence-set .ha-table {
  position: absolute; bottom: 18%; left: 28%; width: 20px; height: 8px;
  background: #3a2a1a; border-radius: 2px;
}
.scn-husband-absence-set .ha-curtain {
  position: absolute; top: 20%; right: 15%; width: 30px; height: 70px;
  background: #2a1a1a; border-radius: 10% 10% 0 0;
  opacity: 0.5;
  animation: ha-curtain 8s ease-in-out infinite alternate;
}
@keyframes ha-door {
  0% { transform: skewY(3deg) translateX(0); }
  50% { transform: skewY(6deg) translateX(-3px); }
  100% { transform: skewY(2deg) translateX(0); }
}
@keyframes ha-peek {
  0% { transform: translateX(0) scaleX(1); }
  40% { transform: translateX(8px) scaleX(1.05); }
  60% { transform: translateX(8px) scaleX(1.05); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes ha-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.8; }
  50% { transform: scaleY(1.1) scaleX(0.95); opacity: 1; }
  100% { transform: scaleY(0.98) scaleX(1.02); opacity: 0.85; }
}
@keyframes ha-curtain {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-4px) scaleY(1.03); }
  100% { transform: translateY(0) scaleY(1); }
}

/* Scene: diamond-eye (warm, bright-interior, close-up portrait) */
.scn-diamond-eye { background: radial-gradient(ellipse at 50% 30%, #f5d6b8 0%, #d6ae8a 40%, #b88a6a 100%), linear-gradient(180deg, #e8d8c8 0%, #c8b8a8 100%); }
.scn-diamond-eye .frame { position:absolute; inset:8%; border:6px solid rgba(200,180,160,.6); border-radius:50%; background:transparent; animation: de-frame 12s ease-in-out infinite alternate; }
.scn-diamond-eye .skin { position:absolute; bottom:8%; left:20%; width:60%; height:75%; background: radial-gradient(ellipse, #f5d6b8 0%, #e8b88a 70%, #c89870 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-diamond-eye .brow { position:absolute; top:35%; left:35%; width:30%; height:6%; background: #5a3e2b; border-radius: 40% 60% 0 0 / 100% 100% 0 0; transform: rotate(-4deg); animation: de-brow 6s ease-in-out infinite alternate; }
.scn-diamond-eye .eye { position:absolute; top:40%; left:38%; width:24%; height:10%; background: radial-gradient(circle, #f0d060 0%, #b08040 50%, #2a1a0a 100%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(240,208,96,.4); animation: de-eye 4s ease-in-out infinite; }
.scn-diamond-eye .kerchief { position:absolute; bottom:12%; left:10%; width:80%; height:35%; background: linear-gradient(135deg, #e8d8c8 0%, #c8b8a8 50%, #d8c8b8 100%); border-radius: 0 0 50% 50% / 0 0 60% 60%; transform: rotate(3deg); animation: de-kerchief 8s ease-in-out infinite alternate; }
.scn-diamond-eye .shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, rgba(60,40,30,.3) 0%, transparent 50%); }
.scn-diamond-eye .glow { position:absolute; inset:0; background: radial-gradient(circle at 40% 30%, rgba(255,230,180,.2) 0%, transparent 40%); animation: de-glow 4s ease-in-out infinite alternate; }
@keyframes de-frame { 0% { box-shadow: inset 0 0 20px rgba(200,180,160,.3); } 50% { box-shadow: inset 0 0 40px rgba(200,180,160,.6); } 100% { box-shadow: inset 0 0 20px rgba(200,180,160,.3); } }
@keyframes de-brow { 0% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-4deg) translateY(0); } }
@keyframes de-eye { 0% { transform: scaleX(1) rotate(0deg); box-shadow: 0 0 30px 8px rgba(240,208,96,.4); } 25% { transform: scaleX(.9) rotate(2deg); } 50% { transform: scaleX(1) rotate(0deg); box-shadow: 0 0 50px 12px rgba(240,208,96,.7); } 75% { transform: scaleX(.95) rotate(-1deg); } 100% { transform: scaleX(1) rotate(0deg); box-shadow: 0 0 30px 8px rgba(240,208,96,.4); } }
@keyframes de-kerchief { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-4px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes de-glow { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }

/* Scene: love-thee-none-but-thee (warm, bright-interior, intimate garden) */
.scn-love-thee-none-but-thee { background: linear-gradient(180deg, #b0d0e0 0%, #e8e0c8 30%, #d0c8a8 70%, #a0b080 100%), radial-gradient(ellipse at 50% 100%, #c8d8a8 0%, transparent 60%); }
.scn-love-thee-none-but-thee .window { position:absolute; top:5%; left:25%; width:50%; height:60%; border: 10px solid #6a5a4a; border-radius: 50% 50% 0 0 / 60% 60% 0 0; background: linear-gradient(180deg, #d0e0f0 0%, #b0c8d8 100%); box-shadow: inset 0 0 20px rgba(0,0,0,.1); }
.scn-love-thee-none-but-thee .sunbeam { position:absolute; top:5%; left:30%; width:40%; height:90%; background: linear-gradient(180deg, rgba(255,255,220,.6) 0%, transparent 100%); transform: rotate(8deg); animation: lt-beam 10s ease-in-out infinite alternate; }
.scn-love-thee-none-but-thee .bloom-a { position:absolute; bottom:25%; left:15%; width:18%; height:18%; background: radial-gradient(circle, #f2d0d6 0%, #d08a92 60%, #a06068 100%); border-radius: 50%; animation: lt-bloom 7s ease-in-out infinite; }
.scn-love-thee-none-but-thee .bloom-b { position:absolute; bottom:35%; right:15%; width:22%; height:22%; background: radial-gradient(circle, #f2d0d6 0%, #d08a92 60%, #a06068 100%); border-radius: 50%; animation: lt-bloom 9s ease-in-out infinite reverse; }
.scn-love-thee-none-but-thee .figure { position:absolute; bottom:10%; left:45%; width:12%; height:45%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lt-bow 14s ease-in-out infinite; }
.scn-love-thee-none-but-thee .shadow { position:absolute; bottom:10%; left:40%; width:22%; height:6%; background: rgba(40,50,20,.2); border-radius: 50%; filter: blur(6px); animation: lt-shadow 14s ease-in-out infinite; }
@keyframes lt-beam { 0% { transform: rotate(6deg) scaleX(1); opacity: .7; } 50% { transform: rotate(12deg) scaleX(1.1); opacity: 1; } 100% { transform: rotate(6deg) scaleX(1); opacity: .8; } }
@keyframes lt-bloom { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(10deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes lt-bow { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(10px) rotate(5deg); } 60% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lt-shadow { 0% { transform: translateX(0) scaleX(1); opacity: .5; } 30% { transform: translateX(10px) scaleX(1.2); opacity: .7; } 60% { transform: translateX(-5px) scaleX(.8); opacity: .4; } 100% { transform: translateX(0) scaleX(1); opacity: .5; } }

/* Scene: counter-gate (warm, bright-interior, vertical architectural shaft) */
.scn-counter-gate { background: linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 30%, #8a7a6a 60%, #5a4a3a 100%), radial-gradient(ellipse at 50% 100%, #8a7a6a 0%, transparent 60%); }
.scn-counter-gate .archway { position:absolute; bottom:10%; left:15%; width:70%; height:85%; background: linear-gradient(180deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%); border-radius: 50% 50% 0 0 / 40% 40% 0 0; border: 12px solid #4a3a2a; box-shadow: inset 0 0 30px rgba(0,0,0,.4); animation: cg-arch 20s ease-in-out infinite alternate; }
.scn-counter-gate .gate { position:absolute; bottom:10%; left:25%; width:50%; height:55%; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 40%, #8a7a6a 50%, #6a5a4a 60%, #4a3a2a 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: cg-gate 15s ease-in-out infinite; }
.scn-counter-gate .wall-left { position:absolute; bottom:10%; left:0; width:15%; height:85%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); box-shadow: inset -10px 0 15px rgba(0,0,0,.3); }
.scn-counter-gate .wall-right { position:absolute; bottom:10%; right:0; width:15%; height:85%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); box-shadow: inset 10px 0 15px rgba(0,0,0,.3); }
.scn-counter-gate .kiln-smoke { position:absolute; bottom:65%; left:45%; width:40%; height:35%; background: radial-gradient(ellipse, rgba(200,180,160,.4) 0%, transparent 70%); filter: blur(12px); animation: cg-smoke 18s ease-in-out infinite; }
.scn-counter-gate .light { position:absolute; bottom:15%; left:48%; width:8%; height:15%; background: radial-gradient(circle, #ffd080 0%, #b08040 60%, transparent 100%); border-radius: 50%; animation: cg-light 4s ease-in-out infinite alternate; }
.scn-counter-gate .cobbles { position:absolute; bottom:0; left:0; width:100%; height:10%; background: linear-gradient(90deg, #4a4a4a 0%, #6a6a6a 50%, #4a4a4a 100%); border-radius: 30% 30% 0 0 / 60% 60% 0 0; animation: cg-cobble 25s linear infinite; }
@keyframes cg-arch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(.98); } }
@keyframes cg-gate { 0% { transform: translateY(0) scaleX(1); } 30% { transform: translateY(-2px) scaleX(1.01); } 60% { transform: translateY(1px) scaleX(.99); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes cg-smoke { 0% { transform: translateY(0) scale(1) rotate(0deg); opacity: .6; } 33% { transform: translateY(-20px) scale(1.2) rotate(5deg); opacity: .8; } 66% { transform: translateY(-10px) scale(.9) rotate(-3deg); opacity: .5; } 100% { transform: translateY(0) scale(1) rotate(0deg); opacity: .6; } }
@keyframes cg-light { 0% { opacity: .7; box-shadow: 0 0 20px 5px #b08040; } 50% { opacity: 1; box-shadow: 0 0 40px 10px #ffd080; } 100% { opacity: .8; box-shadow: 0 0 25px 5px #b08040; } }
@keyframes cg-cobble { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }

/* Scene: arras-hide (tense, bright-interior, interior cutaway) */
.scn-arras-hide { background: linear-gradient(135deg, #c8b8a8 0%, #e8d8c8 50%, #c8b8a8 100%), radial-gradient(ellipse at 50% 0%, #f0e0d0 0%, transparent 70%); }
.scn-arras-hide .wall { position:absolute; inset:0; background: linear-gradient(180deg, #d8c8b8 0%, #b8a898 100%); }
.scn-arras-hide .arras { position:absolute; top:5%; left:20%; width:60%; height:80%; background: linear-gradient(180deg, #5e1a1d 0%, #702243 30%, #4a1215 70%, #5e1a1d 100%); border-radius: 8px; box-shadow: inset 0 0 30px rgba(0,0,0,.5), 0 8px 16px rgba(0,0,0,.3); animation: ah-arras 10s ease-in-out infinite alternate; }
.scn-arras-hide .arras-fold { position:absolute; top:5%; left:35%; width:6%; height:80%; background: linear-gradient(180deg, rgba(255,255,255,.15) 0%, rgba(0,0,0,.4) 50%, rgba(255,255,255,.1) 100%); border-radius: 2px; animation: ah-fold 8s ease-in-out infinite alternate; }
.scn-arras-hide .figure { position:absolute; bottom:12%; left:45%; width:14%; height:45%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 20% 20% 30% 30% / 40% 40% 50% 50%; transform: scaleX(-1); animation: ah-figure 6s ease-in-out infinite; }
.scn-arras-hide .floor { position:absolute; bottom:0; left:0; width:100%; height:12%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.2); }
.scn-arras-hide .shadow { position:absolute; bottom:12%; left:42%; width:20%; height:6%; background: rgba(30,20,20,.5); border-radius: 50%; filter: blur(8px); animation: ah-shadow 6s ease-in-out infinite; }
@keyframes ah-arras { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(.99); } }
@keyframes ah-fold { 0% { opacity: .6; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.1); } 100% { opacity: .7; transform: scaleX(.95); } }
@keyframes ah-figure { 0% { transform: scaleX(-1) translateX(0); } 30% { transform: scaleX(-1) translateX(-5px); } 60% { transform: scaleX(-1) translateX(3px); } 100% { transform: scaleX(-1) translateX(0); } }
@keyframes ah-shadow { 0% { transform: translateX(0) scaleX(1); opacity: .5; } 30% { transform: translateX(-5px) scaleX(1.2); opacity: .7; } 60% { transform: translateX(3px) scaleX(.9); opacity: .4; } 100% { transform: translateX(0) scaleX(1); opacity: .5; } }

.scn-send-your-page {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%),
    radial-gradient(ellipse 50% 50% at 20% 60%, #ff8833 0%, transparent 60%);
}
.scn-send-your-page .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(58,42,26,0.4) 0%, transparent 100%);
}
.scn-send-your-page .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 20% 20% 0 0;
}
.scn-send-your-page .fireplace {
  position: absolute; bottom: 20%; left: 8%; width: 34%; height: 40%;
  background: linear-gradient(180deg, #6a3a2a 0%, #4a2820 50%, #3a1e14 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6), 0 0 40px rgba(200,100,30,0.3);
}
.scn-send-your-page .fire {
  position: absolute; bottom: 22%; left: 14%; width: 12%; height: 16%;
  background: radial-gradient(ellipse at 50% 80%, #ffaa44 0%, #cc5500 40%, transparent 70%);
  border-radius: 50%;
  animation: syp-fire 2s ease-in-out infinite alternate;
}
.scn-send-your-page .chair {
  position: absolute; bottom: 20%; right: 12%; width: 28%; height: 38%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2215 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-send-your-page .figure {
  position: absolute; bottom: 22%; right: 18%; width: 14%; height: 36%;
  background: linear-gradient(135deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: syp-figure 6s ease-in-out infinite alternate;
}
.scn-send-your-page .page {
  position: absolute; top: 30%; left: 50%; width: 10%; height: 12%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 4%;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.3);
  animation: syp-page 4s ease-in-out infinite;
}
.scn-send-your-page .candle {
  position: absolute; bottom: 36%; left: 16%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 8px 4px rgba(255,180,60,0.4);
  animation: syp-candle 1.5s ease-in-out infinite alternate;
}

@keyframes syp-fire {
  0%   { transform: scaleY(1) translateY(0); opacity: 0.9; }
  50%  { transform: scaleY(1.2) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.95) translateY(1px); opacity: 0.8; }
}
@keyframes syp-figure {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes syp-page {
  0%   { transform: translateY(0) rotate(0deg) scale(1); }
  25%  { transform: translateY(-4px) rotate(3deg) scale(1.02); }
  50%  { transform: translateY(-2px) rotate(-2deg) scale(0.98); }
  100% { transform: translateY(2px) rotate(1deg) scale(1); }
}
@keyframes syp-candle {
  0%   { transform: scaleY(1); opacity: 0.85; }
  50%  { transform: scaleY(1.15); opacity: 1; }
  100% { transform: scaleY(0.9); opacity: 0.75; }
}

.scn-send-your-page {
  background:
    linear-gradient(180deg, #2a1e18 0%, #1a1210 50%, #0f0a08 100%),
    radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 70%);
  background-size: 100% 100%;
}
.scn-send-your-page .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 80%);
}
.scn-send-your-page .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a1008 100%);
  border-radius: 0 0 10% 10%;
}
.scn-send-your-page .table {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 10px;
  background: linear-gradient(180deg, #4a3020 0%, #3a2018 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: syp-table 6s ease-in-out infinite alternate;
}
.scn-send-your-page .chair {
  position: absolute; bottom: 15%; left: 40%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #4a3020 0%, #3a2018 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
}
.scn-send-your-page .figure {
  position: absolute; bottom: 20%; left: 42%; width: 30px; 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: syp-figure 4s ease-in-out infinite;
}
.scn-send-your-page .candle {
  position: absolute; bottom: 30%; left: 38%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #c8a080 0%, #a08060 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px #ffd060;
  animation: syp-candle 2s ease-in-out infinite alternate;
}
.scn-send-your-page .cat {
  position: absolute; bottom: 28%; left: 32%; width: 20px; height: 16px;
  background: radial-gradient(circle at 30% 30%, #4a3a2a, #2a1a10);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: syp-cat 3s ease-in-out infinite;
}
.scn-send-your-page .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 38% 35%, rgba(255,200,100,0.2) 0%, transparent 60%);
  pointer-events: none;
  animation: syp-glow 4s ease-in-out infinite alternate;
}
@keyframes syp-table {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes syp-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes syp-candle {
  0% { opacity: 0.8; transform: scaleY(1) rotate(0deg); }
  50% { opacity: 1; transform: scaleY(1.05) rotate(2deg); }
  100% { opacity: 0.9; transform: scaleY(0.95) rotate(-2deg); }
}
@keyframes syp-cat {
  0% { transform: translateX(0) scale(1); }
  25% { transform: translateX(3px) scale(1.02); }
  50% { transform: translateX(0) scale(0.98); }
  75% { transform: translateX(-3px) scale(1.02); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes syp-glow {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.rain { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-caius-mistake {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a1008 100%),
    radial-gradient(ellipse at 30% 60%, #5a3a2a 0%, transparent 60%);
}
.scn-caius-mistake .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #3a2a1a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.4);
}
.scn-caius-mistake .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a1008 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-caius-mistake .door {
  position: absolute; bottom: 40%; left: 50%; width: 60px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -2px 0 6px rgba(0,0,0,.3), 2px 0 6px rgba(0,0,0,.3);
  animation: cms-door 6s ease-in-out infinite alternate;
}
.scn-caius-mistake .figure {
  position: absolute; bottom: 38%; left: 42%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a1a10 0%, #0a0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cms-figure 4s ease-in-out infinite;
}
.scn-caius-mistake .hat {
  position: absolute; bottom: 73%; left: 40%; width: 30px; height: 12px;
  background: #2a1a0a;
  border-radius: 50% 50% 10% 10%;
  transform: rotate(-15deg);
  animation: cms-hat 2.5s ease-in-out infinite alternate;
}
.scn-caius-mistake .candle {
  position: absolute; bottom: 40%; left: 60%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #b08850 0%, #704a20 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 8px rgba(200,150,60,.5);
  animation: cms-candle-glow 3s ease-in-out infinite alternate;
}
.scn-caius-mistake .shadow {
  position: absolute; bottom: 38%; left: 38%; width: 40px; height: 10px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: cms-shadow 4s ease-in-out infinite;
}
@keyframes cms-door {
  0% { transform: translateX(-50%) rotateY(0deg); }
  50% { transform: translateX(-50%) rotateY(15deg); }
  100% { transform: translateX(-50%) rotateY(0deg); }
}
@keyframes cms-figure {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(3deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(8px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes cms-hat {
  0% { transform: rotate(-15deg) translateY(0); }
  100% { transform: rotate(20deg) translateY(-6px); }
}
@keyframes cms-candle-glow {
  0% { box-shadow: 0 0 15px 5px rgba(200,150,60,.4); opacity: .8; }
  50% { box-shadow: 0 0 30px 12px rgba(220,170,70,.7); opacity: 1; }
  100% { box-shadow: 0 0 18px 6px rgba(200,150,60,.45); opacity: .85; }
}
@keyframes cms-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity: .3; }
  50% { transform: scaleX(1.2) scaleY(0.8); opacity: .5; }
  100% { transform: scaleX(1) scaleY(1); opacity: .3; }
}

.scn-fentons-revelation {
  background:
    linear-gradient(180deg, #3a2010 0%, #2a1a0a 50%, #1a1008 100%),
    radial-gradient(ellipse at 70% 50%, #704020 0%, transparent 70%);
}
.scn-fentons-revelation .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #4a2a1a 0%, #5a3a2a 40%, #3a2010 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.5);
}
.scn-fentons-revelation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f08 100%);
  box-shadow: inset 0 6px 15px rgba(0,0,0,.7);
}
.scn-fentons-revelation .window {
  position: absolute; bottom: 45%; right: 15%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #4a6a8a 0%, #2a4a6a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(150,180,220,.3);
  animation: fre-window 7s ease-in-out infinite alternate;
}
.scn-fentons-revelation .fenton {
  position: absolute; bottom: 30%; left: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a20 0%, #0a0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fre-kneel 5s ease-in-out infinite;
}
.scn-fentons-revelation .anne {
  position: absolute; bottom: 30%; left: 36%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #2a2030 0%, #1a1020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fre-kneel 5s ease-in-out infinite reverse;
}
.scn-fentons-revelation .parent1 {
  position: absolute; bottom: 35%; left: 50%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fre-parent 8s ease-in-out infinite;
}
.scn-fentons-revelation .parent2 {
  position: absolute; bottom: 35%; left: 58%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fre-parent 8s ease-in-out infinite 2s;
}
.scn-fentons-revelation .hearth {
  position: absolute; bottom: 30%; left: 10%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #c08040 0%, #8a5a2a 60%, #3a2010 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 15px rgba(200,130,60,.6);
  animation: fre-hearth 4s ease-in-out infinite alternate;
}
@keyframes fre-window {
  0% { opacity: .6; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes fre-kneel {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-8px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes fre-parent {
  0% { transform: translateY(0) scaleX(1); }
  25% { transform: translateY(-3px) scaleX(1.05); }
  50% { transform: translateY(0) scaleX(1); }
  75% { transform: translateY(-3px) scaleX(0.95); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes fre-hearth {
  0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 20px 10px rgba(200,130,60,.5); }
  50% { transform: scale(1.1) rotate(3deg); box-shadow: 0 0 40px 20px rgba(220,150,70,.7); }
  100% { transform: scale(1) rotate(0deg); box-shadow: 0 0 25px 12px rgba(200,130,60,.5); }
}

.scn-final-reconciliation {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #1a1008 40%, #0f0a05 100%),
    radial-gradient(ellipse at 50% 40%, #3a2010 0%, transparent 60%);
}
.scn-final-reconciliation .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #2a1a0a 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,.5);
}
.scn-final-reconciliation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a0f08 0%, #0a0604 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-final-reconciliation .curtain {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 70%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 0 20px rgba(0,0,0,.4);
  animation: frc-curtain 10s ease-in-out infinite alternate;
}
.scn-final-reconciliation .sir-john {
  position: absolute; bottom: 30%; left: 30%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: frc-bow 6s ease-in-out infinite;
}
.scn-final-reconciliation .brook {
  position: absolute; bottom: 30%; left: 50%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: frc-bow 6s ease-in-out infinite 3s;
}
.scn-final-reconciliation .mug {
  position: absolute; bottom: 28%; left: 42%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 4px 4px 6px 6px;
  box-shadow: 0 0 10px rgba(200,150,80,.3);
  animation: frc-mug 4s ease-in-out infinite alternate;
}
.scn-final-reconciliation .shadow {
  position: absolute; bottom: 28%; left: 28%; width: 50px; height: 12px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(5px);
  animation: frc-shadow 6s ease-in-out infinite;
}
@keyframes frc-curtain {
  0% { transform: scaleY(1); opacity: .9; }
  50% { transform: scaleY(1.02); opacity: 1; }
  100% { transform: scaleY(1); opacity: .9; }
}
@keyframes frc-bow {
  0% { transform: translateY(0) rotate(0deg) scaleY(1); }
  25% { transform: translateY(-4px) rotate(-5deg) scaleY(1.05); }
  50% { transform: translateY(0) rotate(0deg) scaleY(1); }
  75% { transform: translateY(-4px) rotate(5deg) scaleY(1.05); }
  100% { transform: translateY(0) rotate(0deg) scaleY(1); }
}
@keyframes frc-mug {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-2px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes frc-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity: .3; }
  50% { transform: scaleX(1.3) scaleY(0.7); opacity: .5; }
  100% { transform: scaleX(1) scaleY(1); opacity: .3; }
}

/* fords-wife-named - tense dim interior */
.scn-fords-wife-named {
  background: 
    linear-gradient(180deg, #2b1a14 0%, #1f1010 50%, #120808 100%),
    radial-gradient(ellipse at 60% 40%, #3a2018 0%, transparent 80%);
}
.scn-fords-wife-named .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a22 0%, #1f1410 100%);
  animation: fwn-wall 14s ease-in-out infinite alternate;
}
.scn-fords-wife-named .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1010 0%, #0e0808 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,.5);
}
.scn-fords-wife-named .window {
  position: absolute; top: 12%; left: 20%; width: 30%; height: 45%;
  background: radial-gradient(ellipse at 50% 30%, #4a3a30 0%, #1a0e0a 80%);
  border-radius: 4px;
  box-shadow: inset 0 0 60px rgba(0,0,0,.6);
  animation: fwn-window 7s ease-in-out infinite alternate;
}
.scn-fords-wife-named .candle-glow {
  position: absolute; top: 48%; left: 55%; width: 20px; height: 30px;
  background: radial-gradient(circle, #f0c088 0%, #c08040 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(192,128,64,.3), 0 0 120px 40px rgba(192,128,64,.15);
  animation: fwn-candle 3s ease-in-out infinite alternate;
}
.scn-fords-wife-named .figure-silhouette {
  position: absolute; bottom: 30%; left: 45%; width: 30px; height: 60px;
  background: #0e0808;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 20px rgba(0,0,0,.5);
  animation: fwn-figure 5s ease-in-out infinite;
}
.scn-fords-wife-named .shadow-arm {
  position: absolute; bottom: 42%; left: 52%; width: 20px; height: 40px;
  background: #0e0808;
  border-radius: 40% 20% 10% 30%;
  transform-origin: top left;
  animation: fwn-arm 5s ease-in-out infinite;
}
@keyframes fwn-wall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes fwn-window { 0% { box-shadow: inset 0 0 60px rgba(0,0,0,.6) } 50% { box-shadow: inset 0 0 80px rgba(0,0,0,.4) } 100% { box-shadow: inset 0 0 60px rgba(0,0,0,.6) } }
@keyframes fwn-candle { 0% { transform: scale(1) rotate(-2deg); opacity:.8 } 50% { transform: scale(1.1) rotate(1deg); opacity:1 } 100% { transform: scale(.95) rotate(-1deg); opacity:.7 } }
@keyframes fwn-figure { 0% { transform: translateX(0) rotate(1deg) } 30% { transform: translateX(4px) rotate(-1deg) } 60% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes fwn-arm { 0% { transform: rotate(20deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(15deg) } }

/* shadow-love - tense dim interior, peeping figure */
.scn-shadow-love {
  background: 
    linear-gradient(180deg, #1e1412 0%, #140c0a 50%, #0a0604 100%),
    radial-gradient(ellipse at 30% 70%, #2a1c18 0%, transparent 70%);
}
.scn-shadow-love .room-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2c1e1a 0%, #1a100e 100%);
  animation: shl-wall 10s ease-in-out infinite alternate;
}
.scn-shadow-love .door-frame {
  position: absolute; bottom: 25%; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(90deg, #2a1a16 0%, #3a2620 50%, #2a1a16 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
}
.scn-shadow-love .door-aperture {
  position: absolute; bottom: 27%; left: 42%; width: 16%; height: 55%;
  background: #0a0604;
  border-radius: 2px;
  box-shadow: inset 0 0 40px rgba(0,0,0,.7);
}
.scn-shadow-love .lamp-light {
  position: absolute; top: 10%; right: 15%; width: 15px; height: 20px;
  background: radial-gradient(circle, #c09050 0%, #a06030 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(160,96,48,.25);
  animation: shl-lamp 4s ease-in-out infinite alternate;
}
.scn-shadow-love .peeping-figure {
  position: absolute; bottom: 27%; left: 5%; width: 40px; height: 80px;
  background: #0a0604;
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: -10px 0 30px rgba(0,0,0,.4);
  animation: shl-peep 6s ease-in-out infinite;
}
.scn-shadow-love .shadow-legs {
  position: absolute; bottom: 5%; left: 8%; width: 15px; height: 30px;
  background: #060302;
  border-radius: 30%;
  transform-origin: top center;
  animation: shl-legs 6s ease-in-out infinite;
}
@keyframes shl-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes shl-lamp { 0% { transform: scale(1) rotate(-3deg); opacity:.7 } 50% { transform: scale(1.15) rotate(2deg); opacity:1 } 100% { transform: scale(.9) rotate(-1deg); opacity:.6 } }
@keyframes shl-peep { 0% { transform: translateX(0) rotate(2deg) } 30% { transform: translateX(-8px) rotate(-1deg) } 60% { transform: translateX(-4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes shl-legs { 0% { transform: translateY(0) rotate(5deg) } 50% { transform: translateY(-6px) rotate(-5deg) } 100% { transform: translateY(0) rotate(3deg) } }

/* no-promise - calm dim interior, architectural elements */
.scn-no-promise {
  background: 
    linear-gradient(180deg, #2e2520 0%, #1f1814 50%, #12100e 100%),
    radial-gradient(ellipse at 50% 20%, #3a2e28 0%, transparent 80%);
}
.scn-no-promise .deep-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a302a 0%, #1e1814 100%);
  animation: npr-bg 20s ease-in-out infinite alternate;
}
.scn-no-promise .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(90deg, #1a1412 0px, #1a1412 12px, #241c18 12px, #241c18 24px);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.4);
  animation: npr-tiles 30s linear infinite;
}
.scn-no-promise .column-base {
  position: absolute; bottom: 20%; left: 45%; width: 10%; height: 8%;
  background: linear-gradient(180deg, #3a2e28 0%, #1e1814 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,.5);
}
.scn-no-promise .column-shaft {
  position: absolute; bottom: 28%; left: 46%; width: 8%; height: 55%;
  background: linear-gradient(90deg, #2a201c 0%, #3a302a 30%, #2a201c 70%, #1c1612 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3);
  animation: npr-shaft 12s ease-in-out infinite alternate;
}
.scn-no-promise .column-capital {
  position: absolute; bottom: 83%; left: 44%; width: 12%; height: 6%;
  background: linear-gradient(180deg, #3a302a 0%, #1e1814 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 -4px 15px rgba(0,0,0,.3);
}
.scn-no-promise .shadow-strip {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 8%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.3) 30%, rgba(0,0,0,.5) 50%, rgba(0,0,0,.3) 70%, transparent 100%);
  animation: npr-strip 15s ease-in-out infinite alternate;
}
@keyframes npr-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes npr-tiles { 0% { background-position: 0 0 } 100% { background-position: -24px 0 } }
@keyframes npr-shaft { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes npr-strip { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.3 } }

/* amiable-siege - tense dim interior, hand gesture and candle */
.scn-amiable-siege {
  background: 
    linear-gradient(180deg, #2a1c14 0%, #1a100a 50%, #0e0804 100%),
    radial-gradient(ellipse at 40% 60%, #3a2418 0%, transparent 80%);
}
.scn-amiable-siege .backdrop {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #382a20 0%, #1a100a 100%);
  animation: ams-bg 16s ease-in-out infinite alternate;
}
.scn-amiable-siege .table {
  position: absolute; bottom: 22%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #4a3426 0%, #2a1a10 100%);
  border-radius: 8px;
  box-shadow: 0 6px 20px rgba(0,0,0,.5);
}
.scn-amiable-siege .chair {
  position: absolute; bottom: 22%; right: 25%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #3a2418 0%, #1a0e06 100%);
  border-radius: 10% 10% 4% 4% / 20% 20% 4% 4%;
  box-shadow: 0 4px 15px rgba(0,0,0,.4);
  animation: ams-chair 8s ease-in-out infinite alternate;
}
.scn-amiable-siege .silhouette-hand {
  position: absolute; bottom: 38%; left: 38%; width: 20px; height: 30px;
  background: #0e0602;
  border-radius: 40% 20% 10% 30%;
  transform-origin: bottom center;
  box-shadow: 0 2px 10px rgba(0,0,0,.4);
  animation: ams-hand 5s ease-in-out infinite;
}
.scn-amiable-siege .silhouette-face {
  position: absolute; bottom: 44%; left: 35%; width: 22px; height: 30px;
  background: #0e0602;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ams-face 6s ease-in-out infinite;
}
.scn-amiable-siege .candle-flame {
  position: absolute; bottom: 30%; left: 55%; width: 8px; height: 12px;
  background: radial-gradient(circle, #f0c080 0%, #c08040 50%, transparent 100%);
  border-radius: 60% 60% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(192,128,64,.4), 0 0 40px 12px rgba(192,128,64,.2);
  animation: ams-flame 2s ease-in-out infinite alternate;
}
.scn-amiable-siege .candle-wax {
  position: absolute; bottom: 28%; left: 54.5%; width: 10px; height: 8px;
  background: linear-gradient(180deg, #d0b080 0%, #a08050 100%);
  border-radius: 4px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,.3);
  animation: ams-wax 4s ease-in-out infinite alternate;
}
@keyframes ams-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes ams-chair { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes ams-hand { 0% { transform: translate(0,0) rotate(-15deg) } 30% { transform: translate(4px,-2px) rotate(-5deg) } 60% { transform: translate(-2px,0) rotate(10deg) } 100% { transform: translate(0,0) rotate(-10deg) } }
@keyframes ams-face { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-4px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ams-flame { 0% { transform: scaleY(1) rotate(-2deg); opacity:.8 } 50% { transform: scaleY(1.3) rotate(3deg); opacity:1 } 100% { transform: scaleY(.9) rotate(-1deg); opacity:.7 } }
@keyframes ams-wax { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(1.1) } 100% { transform: translateY(1px) scaleY(.9) } }

.scn-quickly-watches-for-caius {
  background: linear-gradient(135deg, #1a1a2e 0%, #2c1e2e 50%, #0f0f1a 100%),
              radial-gradient(ellipse at 80% 40%, #3a2a2a 0%, transparent 60%);
}
.scn-quickly-watches-for-caius .wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, #1e1e28 0px, #1e1e28 20px, #14141a 20px, #14141a 40px);
  opacity: 0.3;
}
.scn-quickly-watches-for-caius .casement-frame {
  position: absolute; top: 20%; left: 10%; width: 50%; height: 55%;
  background: linear-gradient(135deg, #3a2a1a 0%, #241810 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}
.scn-quickly-watches-for-caius .window-pane {
  position: absolute; top: 22%; left: 13%; width: 44%; height: 50%;
  background: linear-gradient(135deg, #2a2a3e 0%, #1e1e2e 70%);
  border-radius: 2px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.08);
  animation: qwc-pane 10s ease-in-out infinite alternate;
}
.scn-quickly-watches-for-caius .figure-quickly {
  position: absolute; bottom: 20%; left: 8%; width: 24%; height: 55%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 60%, #0a0804 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: qwc-figure 3s ease-in-out infinite;
}
.scn-quickly-watches-for-caius .candle {
  position: absolute; bottom: 35%; left: 40%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #d6a060 0%, #8a6020 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-quickly-watches-for-caius .candle-glow {
  position: absolute; bottom: 50%; left: 38%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%);
  opacity: 0.5;
  animation: qwc-glow 2s ease-in-out infinite alternate;
}
.scn-quickly-watches-for-caius .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #0a0608 100%);
}
@keyframes qwc-pane { 0%,100% { opacity:0.7 } 50% { opacity:0.5 } }
@keyframes qwc-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(4%) translateY(-2%) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes qwc-glow { 0% { opacity:0.4; transform: scale(0.9) } 50% { opacity:0.6; transform: scale(1.1) } 100% { opacity:0.5; transform: scale(1) } }

.scn-quickly-praises-rugby {
  background: linear-gradient(180deg, #2e1e1a 0%, #3a2820 40%, #1e1410 100%),
              radial-gradient(ellipse at 50% 30%, #4a3020 0%, transparent 60%);
}
.scn-quickly-praises-rugby .hearth-bg {
  position: absolute; bottom: 0; left: 5%; width: 90%; height: 40%;
  background: linear-gradient(135deg, #2a1a14 0%, #1a0e0a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-quickly-praises-rugby .hearth-fire {
  position: absolute; bottom: 20%; left: 38%; width: 24%; height: 30%;
  background: radial-gradient(ellipse at 50% 80%, #ffb060 0%, #d06020 40%, #802010 70%);
  border-radius: 50% 50% 30% 30%;
  animation: qpr-fire 2s ease-in-out infinite alternate;
  box-shadow: 0 0 40px 20px rgba(255,176,96,0.3);
}
.scn-quickly-praises-rugby .figure-quickly-warm {
  position: absolute; bottom: 10%; left: 25%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 60%, #1a0e08 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 30% 30%;
  transform-origin: bottom center;
  animation: qpr-fig1 6s ease-in-out infinite;
}
.scn-quickly-praises-rugby .figure-rugby {
  position: absolute; bottom: 10%; left: 50%; width: 22%; height: 55%;
  background: linear-gradient(180deg, #3a2818 0%, #1a1008 60%, #0a0604 100%);
  border-radius: 30% 50% 30% 30% / 40% 60% 30% 30%;
  transform-origin: bottom center;
  animation: qpr-fig2 4s ease-in-out infinite;
}
.scn-quickly-praises-rugby .simple-silhouette {
  position: absolute; bottom: 10%; left: 65%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  opacity: 0.4;
  animation: qpr-simple 8s ease-in-out infinite;
}
.scn-quickly-praises-rugby .table {
  position: absolute; bottom: 8%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-quickly-praises-rugby .tankard {
  position: absolute; bottom: 16%; left: 47%; width: 6%; height: 10%;
  background: linear-gradient(135deg, #b08050 0%, #704020 100%);
  border-radius: 10% 10% 20% 20%;
  animation: qpr-tankard 3s ease-in-out infinite;
}
@keyframes qpr-fire { 0%,100% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.1) scaleX(0.95) } }
@keyframes qpr-fig1 { 0%,100% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(2%) rotate(-3deg) } }
@keyframes qpr-fig2 { 0%,100% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(-3%) rotate(1deg) } }
@keyframes qpr-simple { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2%) } }
@keyframes qpr-tankard { 0%,100% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-4%) rotate(5deg) } }

.scn-slender-description {
  background: linear-gradient(180deg, #1e2a1e 0%, #2a302a 40%, #141e14 100%),
              radial-gradient(ellipse at 50% 60%, #4a4a2a 0%, transparent 80%);
}
.scn-slender-description .tavern-wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, #1a1a12 0px, #1a1a12 20px, #12120a 20px, #12120a 40px);
  opacity: 0.3;
}
.scn-slender-description .figure-slender {
  position: absolute; bottom: 10%; left: 40%; width: 20%; height: 65%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 60%, #0a0604 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: sld-figure 2s ease-in-out infinite;
}
.scn-slender-description .feather-hat {
  position: absolute; top: 8%; left: 43%; width: 16%; height: 8%;
  background: linear-gradient(135deg, #c89860 0%, #a07040 100%);
  border-radius: 50% 50% 30% 30%;
  transform: rotate(-10deg);
  animation: sld-hat 3s ease-in-out infinite;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-slender-description .strutting-leg {
  position: absolute; bottom: 0; left: 43%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: top center;
  animation: sld-leg 1.6s ease-in-out infinite alternate;
}
.scn-slender-description .shadow-comic {
  position: absolute; bottom: 0; left: 35%; width: 30%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 80%);
  animation: sld-shadow 2s ease-in-out infinite;
}
.scn-slender-description .lamp {
  position: absolute; top: 15%; left: 70%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #b08040 0%, #705020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 4px #a06020;
}
.scn-slender-description .lamp-glow {
  position: absolute; top: 10%; left: 66%; width: 16%; height: 20%;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 30%, transparent 70%);
  opacity: 0.4;
  animation: sld-glow 4s ease-in-out infinite alternate;
}
@keyframes sld-figure { 0%,100% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(8%) rotate(-3deg) } }
@keyframes sld-hat { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-5%) } }
@keyframes sld-leg { 0% { transform: rotate(-15deg) translateX(0) } 100% { transform: rotate(15deg) translateX(10%) } }
@keyframes sld-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } }
@keyframes sld-glow { 0% { opacity:0.3; transform: scale(0.9) } 50% { opacity:0.5; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(1) } }

.scn-caius-returns {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a141e 50%, #0a0a10 100%),
              radial-gradient(ellipse at 80% 70%, #2a1a2a 0%, transparent 60%);
}
.scn-caius-returns .dark-wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, #12121a 0px, #12121a 30px, #0a0a10 30px, #0a0a10 60px);
  opacity: 0.4;
}
.scn-caius-returns .door {
  position: absolute; right: 10%; top: 15%; width: 25%; height: 70%;
  background: linear-gradient(135deg, #2a1a14 0%, #1a0e0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7);
  animation: car-door 6s ease-in-out infinite;
}
.scn-caius-returns .figure-caius {
  position: absolute; bottom: 10%; right: 15%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #1a0e0a 0%, #0a0604 60%, #050302 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: car-caius 2s ease-in-out infinite;
}
.scn-caius-returns .figure-quickly-scared {
  position: absolute; bottom: 10%; left: 20%; width: 20%; height: 55%;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 60%, #0a0604 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: car-quickly 3s ease-in-out infinite;
}
.scn-caius-returns .closet {
  position: absolute; left: 5%; bottom: 5%; width: 20%; height: 60%;
  background: linear-gradient(135deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
}
.scn-caius-returns .closet-door {
  position: absolute; left: 5%; bottom: 5%; width: 10%; height: 60%;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  border-left: 2px solid #3a2a1a;
  animation: car-closet 4s ease-in-out infinite;
}
.scn-caius-returns .candle-flicker {
  position: absolute; top: 20%; left: 48%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #b08040 0%, #705020 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-caius-returns .key {
  position: absolute; right: 12%; bottom: 35%; width: 3%; height: 8%;
  background: linear-gradient(180deg, #c09860 0%, #906840 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(10deg);
  animation: car-key 1.5s ease-in-out infinite;
}
@keyframes car-door { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-5%) } }
@keyframes car-caius { 0%,100% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-4%) rotate(-3deg) } }
@keyframes car-quickly { 0%,100% { transform: translateX(0) translateY(0) } 50% { transform: translateX(3%) translateY(-2%) } }
@keyframes car-closet { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-5deg) } }
@keyframes car-key { 0%,100% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(20deg) translateY(-5%) } }

.scn-quick-scheme { background: linear-gradient(135deg, #f5e6c8 0%, #e8d5a8 30%, #d4b88c 60%, #c4a070 100%), radial-gradient(ellipse at 70% 40%, #ffe8b8 0%, transparent 60%); }
.scn-quick-scheme .w-left    { position:absolute; top:0; left:0; width:25%; height:100%; background: linear-gradient(180deg, #d4b88c 0%, #b89860 100%); border-right:4px solid #8a6a3a; box-shadow: inset -8px 0 12px rgba(0,0,0,.15); }
.scn-quick-scheme .w-right   { position:absolute; top:0; right:0; width:25%; height:100%; background: linear-gradient(180deg, #d4b88c 0%, #b89860 100%); border-left:4px solid #8a6a3a; box-shadow: inset 8px 0 12px rgba(0,0,0,.15); }
.scn-quick-scheme .floor     { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-top:6px solid #4a2a0a; }
.scn-quick-scheme .table     { position:absolute; bottom:28%; left:50%; width:120px; height:16px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%); border-radius:8px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-quick-scheme .mug-a     { position:absolute; bottom:34%; left:43%; width:18px; height:24px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius:4px 4px 6px 6px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: qs-mug 3s ease-in-out infinite; }
.scn-quick-scheme .mug-b     { position:absolute; bottom:34%; right:43%; width:18px; height:24px; background: linear-gradient(180deg, #b87878 0%, #8a5a5a 100%); border-radius:4px 4px 6px 6px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: qs-mug 3s ease-in-out infinite 1.5s; }
.scn-quick-scheme .hand-a    { position:absolute; bottom:30%; left:38%; width:22px; height:18px; background: linear-gradient(180deg, #e8c8a0 0%, #d4a880 100%); border-radius:50% 50% 40% 40%; transform-origin: 50% 100%; animation: qs-hand 2s ease-in-out infinite alternate; }
.scn-quick-scheme .hand-b    { position:absolute; bottom:30%; right:38%; width:22px; height:18px; background: linear-gradient(180deg, #e8c8a0 0%, #d4a880 100%); border-radius:50% 50% 40% 40%; transform-origin: 50% 100%; animation: qs-hand 2s ease-in-out infinite alternate-reverse; }
.scn-quick-scheme .coin      { position:absolute; bottom:32%; left:50%; width:10px; height:10px; background: radial-gradient(circle, #f0d060 0%, #c8a830 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: qs-coin 1.5s ease-in-out infinite; }
@keyframes qs-mug   { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(5deg) } }
@keyframes qs-hand  { 0% { transform: translateX(0) rotate(-5deg) } 100% { transform: translateX(8px) rotate(5deg) } }
@keyframes qs-coin  { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0) } 50% { transform: translateX(-50%) translateY(-6px) rotate(180deg) } }

.scn-garter-inn-falstaff { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 20%, #1e1e30 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 30%, #2a2a3e 0%, transparent 70%); }
.scn-garter-inn-falstaff .bg-shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 40%, rgba(40,20,10,.6) 0%, transparent 60%); animation: gi-shadow 12s ease-in-out infinite alternate; }
.scn-garter-inn-falstaff .bed       { position:absolute; bottom:10%; left:15%; width:60%; height:40%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:12px 12px 8px 8px; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5); }
.scn-garter-inn-falstaff .candle    { position:absolute; bottom:30%; right:25%; width:8px; height:24px; background: linear-gradient(180deg, #e8d8a0 0%, #b8a070 100%); border-radius:2px; box-shadow: 0 0 6px rgba(200,160,80,.3); }
.scn-garter-inn-falstaff .flame     { position:absolute; bottom:52%; right:25.5%; width:10px; height:16px; background: radial-gradient(circle, #ffe8a0 0%, #ff8040 50%, #c04020 100%); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 24px 8px #ff8040, 0 0 48px 16px rgba(255,128,64,.4); animation: gi-flame 1.5s ease-in-out infinite alternate; }
.scn-garter-inn-falstaff .bottle    { position:absolute; bottom:15%; left:20%; width:14px; height:28px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius:4px 4px 6px 6px; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-garter-inn-falstaff .figure-fal{ position:absolute; bottom:30%; left:30%; width:50px; height:60px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: gi-fal 4s ease-in-out infinite; }
.scn-garter-inn-falstaff .figure-bar{ position:absolute; bottom:30%; left:55%; width:22px; height:44px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gi-bar 3s ease-in-out infinite; }
.scn-garter-inn-falstaff .smoke-a   { position:absolute; top:20%; right:30%; width:30px; height:20px; background: radial-gradient(ellipse, rgba(200,180,160,.3) 0%, transparent 70%); filter: blur(4px); animation: gi-smoke 12s linear infinite; }
.scn-garter-inn-falstaff .smoke-b   { position:absolute; top:24%; right:26%; width:24px; height:16px; background: radial-gradient(ellipse, rgba(200,180,160,.2) 0%, transparent 70%); filter: blur(4px); animation: gi-smoke 15s linear infinite 5s; }
@keyframes gi-shadow { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes gi-flame  { 0% { transform: scaleY(1) rotate(0); opacity:.9 } 50% { transform: scaleY(1.1) rotate(2deg); opacity:1 } 100% { transform: scaleY(.95) rotate(-2deg); opacity:.85 } }
@keyframes gi-fal    { 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) } }
@keyframes gi-bar    { 0%,100% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-2px) translateY(-2px) } }
@keyframes gi-smoke  { 0% { transform: translateY(0) scale(1); opacity:.5 } 50% { transform: translateY(-20px) scale(1.5); opacity:.3 } 100% { transform: translateY(-40px) scale(2); opacity:0 } }

.scn-quickly-falstaff-plot { background: linear-gradient(180deg, #1e1e2e 0%, #2a2030 30%, #1a1a2a 60%, #0e0e1e 100%), radial-gradient(ellipse at 30% 50%, #2a2030 0%, transparent 60%); }
.scn-quickly-falstaff-plot .wall-dark    { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 30%, #2a1a2a 0%, transparent 70%); }
.scn-quickly-falstaff-plot .arch         { position:absolute; top:0; left:25%; width:50%; height:100%; background: linear-gradient(180deg, #3a2a3a 0%, transparent 80%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.5); }
.scn-quickly-falstaff-plot .chair-a      { position:absolute; bottom:20%; left:25%; width:30px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:8px 8px 4px 4px; box-shadow: 0 4px 6px rgba(0,0,0,.4); }
.scn-quickly-falstaff-plot .chair-b      { position:absolute; bottom:20%; right:25%; width:30px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:8px 8px 4px 4px; box-shadow: 0 4px 6px rgba(0,0,0,.4); }
.scn-quickly-falstaff-plot .jug          { position:absolute; bottom:25%; left:50%; width:16px; height:22px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius:4px 4px 8px 8px; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.scn-quickly-falstaff-plot .figure-q     { position:absolute; bottom:24%; left:30%; width:20px; height:48px; background: linear-gradient(180deg, #c8786a 0%, #a0584a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qfp-figq 4s ease-in-out infinite; }
.scn-quickly-falstaff-plot .figure-f2    { position:absolute; bottom:20%; right:28%; width:50px; height:55px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qfp-figf 5s ease-in-out infinite; }
.scn-quickly-falstaff-plot .whisper-lines{ position:absolute; top:40%; left:42%; width:30px; height:4px; background: radial-gradient(ellipse, rgba(200,180,160,.4) 0%, transparent 70%); border-radius:50%; filter: blur(2px); animation: qfp-whisper 2s ease-in-out infinite alternate; }
@keyframes qfp-figq  { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(3deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-2px) rotate(2deg) } }
@keyframes qfp-figf  { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(-3px) translateY(-2px) rotate(1deg) } }
@keyframes qfp-whisper { 0% { transform: scaleX(.5); opacity:.3 } 50% { transform: scaleX(1.2); opacity:.6 } 100% { transform: scaleX(.7); opacity:.4 } }

.scn-ford-brook-conference { background: linear-gradient(180deg, #1a1a2e 0%, #242038 30%, #1a1a30 60%, #0e0e1e 100%), radial-gradient(ellipse at 40% 30%, #242038 0%, transparent 70%); }
.scn-ford-brook-conference .bg-panel    { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 20%, rgba(40,30,50,.5) 0%, transparent 70%); }
.scn-ford-brook-conference .desk        { position:absolute; bottom:15%; left:10%; width:40%; height:8px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-ford-brook-conference .lamp        { position:absolute; bottom:40%; left:25%; width:8px; height:20px; background: linear-gradient(180deg, #d4b060 0%, #a08840 100%); border-radius:2px; box-shadow: 0 0 8px rgba(180,140,60,.3); }
.scn-ford-brook-conference .lamp-glow   { position:absolute; bottom:38%; left:24.5%; width:30px; height:30px; background: radial-gradient(circle, rgba(200,160,60,.3) 0%, transparent 70%); border-radius:50%; filter: blur(6px); animation: fb-glow 4s ease-in-out infinite alternate; }
.scn-ford-brook-conference .figure-f3   { position:absolute; bottom:20%; left:20%; width:45px; height:55px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: fb-figf 5s ease-in-out infinite; }
.scn-ford-brook-conference .figure-brook{ position:absolute; bottom:22%; left:40%; width:22px; height:46px; background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fb-figb 4s ease-in-out infinite 0.5s; }
.scn-ford-brook-conference .letter      { position:absolute; bottom:28%; left:32%; width:16px; height:20px; background: linear-gradient(180deg, #e8d8a0 0%, #c8b880 100%); border-radius:2px; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: fb-letter 8s ease-in-out infinite; }
@keyframes fb-glow  { 0% { opacity:.5; transform: scale(.95) } 50% { opacity:.8; transform: scale(1.05) } 100% { opacity:.6; transform: scale(1) } }
@keyframes fb-figf  { 0%,100% { transform: translateX(0) rotate(0) } 30% { transform: translateX(2px) rotate(1deg) } 60% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes fb-figb  { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(2deg) } }
@keyframes fb-letter { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-3px) } }

.scn-anne-page-farm {
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #FFF5EE 70%, #F0E68C 100%),
              radial-gradient(ellipse at 70% 20%, #FFD700 0%, transparent 50%);
}
.scn-anne-page-farm .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 70%, transparent 100%);
  animation: apf-sky 10s ease-in-out infinite alternate;
}
.scn-anne-page-farm .sun {
  position: absolute; top: 12%; left: 70%; width: 80px; height: 80px;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,215,0,0.5);
  animation: apf-sun 6s ease-in-out infinite alternate;
}
.scn-anne-page-farm .fields {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #90EE90 0%, #228B22 60%, #006400 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  animation: apf-fields 18s ease-in-out infinite alternate;
}
.scn-anne-page-farm .barn {
  position: absolute; bottom: 28%; left: 30%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #CD853F 0%, #8B4513 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 6px 6px 12px rgba(0,0,0,0.3);
}
.scn-anne-page-farm .barn::before {
  content: ''; position: absolute; top: -20px; left: 50%; transform: translateX(-50%);
  width: 0; height: 0; border-left: 60px solid transparent; border-right: 60px solid transparent;
  border-bottom: 40px solid #A0522D;
}
.scn-anne-page-farm .fence {
  position: absolute; bottom: 30%; left: 50%; width: 80%; height: 8px;
  background: #deb887; border-radius: 4px;
  box-shadow: 0 -20px 0 #deb887, 0 -40px 0 #deb887;
}
.scn-anne-page-farm .figure {
  position: absolute; bottom: 28%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #FFB6C1 0%, #C71585 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: apf-figure 4s ease-in-out infinite;
}
.scn-anne-page-farm .cloud-a {
  position: absolute; top: 8%; left: 10%; width: 100px; height: 30px;
  background: rgba(255,255,255,0.8); border-radius: 50%;
  filter: blur(8px); animation: apf-cloud-a 40s linear infinite;
}
.scn-anne-page-farm .cloud-b {
  position: absolute; top: 16%; right: 5%; width: 70px; height: 25px;
  background: rgba(255,255,255,0.6); border-radius: 50%;
  filter: blur(6px); animation: apf-cloud-b 50s linear infinite reverse;
}
@keyframes apf-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes apf-sun { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.02); } 100% { transform: translateY(2px) scale(0.98); } }
@keyframes apf-fields { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(0.98); } 100% { transform: translateY(0) scaleX(1.02); } }
@keyframes apf-figure { 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 apf-cloud-a { 0% { transform: translateX(-80px); } 100% { transform: translateX(110vw); } }
@keyframes apf-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-90vw); } }

.scn-frogmore-field {
  background: linear-gradient(180deg, #B0C4DE 0%, #D3D3D3 40%, #9ACD32 70%, #556B2F 100%),
              radial-gradient(ellipse at 50% 80%, #9ACD32 0%, transparent 60%);
}
.scn-frogmore-field .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #B0C4DE 0%, #C0C0C0 60%, transparent 100%);
  animation: fmf-sky 15s ease-in-out infinite alternate;
}
.scn-frogmore-field .ground {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #9ACD32 0%, #556B2F 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-frogmore-field .stile {
  position: absolute; bottom: 30%; left: 40%; width: 30px; height: 50px;
  background: #8B4513; border-radius: 10%; box-shadow: 0 10px 0 #8B4513, 0 20px 0 #8B4513;
}
.scn-frogmore-field .figure-shallow {
  position: absolute; bottom: 28%; left: 20%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #2F4F4F 0%, #696969 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: fmf-walk 6s ease-in-out infinite alternate;
}
.scn-frogmore-field .figure-sir-hugh {
  position: absolute; bottom: 28%; left: 55%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #4B0082 0%, #800080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: fmf-walk 6s ease-in-out infinite alternate-reverse;
}
.scn-frogmore-field .cloud-c {
  position: absolute; top: 12%; left: 25%; width: 90px; height: 24px;
  background: rgba(255,255,255,0.5); border-radius: 50%; filter: blur(5px);
  animation: fmf-cloud-c 35s linear infinite;
}
.scn-frogmore-field .cloud-d {
  position: absolute; top: 20%; right: 15%; width: 70px; height: 18px;
  background: rgba(255,255,255,0.4); border-radius: 50%; filter: blur(4px);
  animation: fmf-cloud-d 45s linear infinite reverse;
}
.scn-frogmore-field .grass-blade {
  position: absolute; bottom: 26%; left: 60%; width: 4px; height: 30px;
  background: #228B22; border-radius: 50% 50% 0 0;
  transform-origin: bottom; animation: fmf-grass 3s ease-in-out infinite;
  box-shadow: -10px 0 0 #228B22, 10px 0 0 #228B22;
}
@keyframes fmf-sky { 0% { opacity: 0.9; } 50% { opacity: 0.7; } 100% { opacity: 1; } }
@keyframes fmf-walk { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(15px) rotate(3deg); } 100% { transform: translateX(30px) rotate(-2deg); } }
@keyframes fmf-cloud-c { 0% { transform: translateX(-60px); } 100% { transform: translateX(120vw); } }
@keyframes fmf-cloud-d { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes fmf-grass { 0% { transform: rotate(0); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-4deg); } }

.scn-evans-sings {
  background: linear-gradient(180deg, #708090 0%, #808080 30%, #A9A9A9 60%, #696969 100%),
              radial-gradient(ellipse at 50% 90%, #696969 0%, transparent 70%);
}
.scn-evans-sings .sky-overcast {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #A0A0A0 0%, #C0C0C0 50%, transparent 100%);
  animation: es-sky 12s ease-in-out infinite alternate;
}
.scn-evans-sings .ground {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #6B8E23 0%, #2F4F4F 100%);
  border-radius: 20% 80% 0 0 / 30% 50% 0 0;
}
.scn-evans-sings .evans-figure {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 24px; height: 46px;
  background: linear-gradient(180deg, #483D8B 0%, #191970 100%);
  border-radius: 45% 55% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: es-sway 4s ease-in-out infinite;
}
.scn-evans-sings .hat {
  position: absolute; bottom: 62%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 10px; background: #2F4F4F; border-radius: 50%;
  box-shadow: 0 8px 0 #2F4F4F;
  animation: es-hat 4s ease-in-out infinite;
}
.scn-evans-sings .notes {
  position: absolute; width: 12px; height: 12px;
  background: radial-gradient(circle, #FFD700 0%, transparent 70%);
  border-radius: 50%; animation: es-notes 6s ease-in-out infinite;
}
.scn-evans-sings .note-1 { top: 10%; left: 20%; animation-delay: 0s; }
.scn-evans-sings .note-2 { top: 6%; left: 35%; animation-delay: 1.5s; width: 10px; height: 10px; }
.scn-evans-sings .note-3 { top: 14%; left: 50%; animation-delay: 3s; width: 14px; height: 14px; }
.scn-evans-sings .cloud-e {
  position: absolute; top: 10%; right: 10%; width: 80px; height: 20px;
  background: rgba(255,255,255,0.3); border-radius: 50%; filter: blur(6px);
  animation: es-cloud-e 40s linear infinite;
}
@keyframes es-sky { 0% { opacity: 0.8; } 50% { opacity: 0.5; } 100% { opacity: 0.9; } }
@keyframes es-sway { 0% { transform: translateX(-50%) rotate(-4deg); } 50% { transform: translateX(-50%) rotate(4deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes es-hat { 0% { transform: translateX(-50%) rotate(-6deg); } 50% { transform: translateX(-50%) rotate(6deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes es-notes { 0% { transform: translateY(0) scale(0.8); opacity: 0; } 20% { opacity: 1; } 80% { opacity: 1; } 100% { transform: translateY(-40px) scale(1.2); opacity: 0; } }
@keyframes es-cloud-e { 0% { transform: translateX(0); } 100% { transform: translateX(-90vw); } }

.scn-evans-welcomes-caius {
  background: linear-gradient(180deg, #778899 0%, #B0C4DE 30%, #A9A9A9 60%, #696969 100%),
              radial-gradient(ellipse at 50% 80%, #A9A9A9 0%, transparent 60%);
}
.scn-evans-welcomes-caius .sky-overcast {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #B0C4DE 0%, #C0C0C0 60%, transparent 100%);
  animation: ewc-sky 14s ease-in-out infinite alternate;
}
.scn-evans-welcomes-caius .ground {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #6B8E23 0%, #2F4F4F 100%);
  border-radius: 30% 70% 0 0 / 40% 50% 0 0;
}
.scn-evans-welcomes-caius .stile {
  position: absolute; bottom: 30%; left: 40%; width: 30px; height: 45px;
  background: #8B4513; border-radius: 10%;
  box-shadow: 0 8px 0 #8B4513, 0 16px 0 #8B4513;
}
.scn-evans-welcomes-caius .figure-caius {
  position: absolute; bottom: 28%; left: 25%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #800000 0%, #5B0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: ewc-caius 6s ease-in-out infinite alternate;
}
.scn-evans-welcomes-caius .figure-evans-welcome {
  position: absolute; bottom: 28%; left: 55%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #483D8B 0%, #191970 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: ewc-evans 6s ease-in-out infinite alternate-reverse;
}
.scn-evans-welcomes-caius .arm-waving {
  position: absolute; bottom: 60%; left: 58%; width: 16px; height: 30px;
  background: #483D8B; border-radius: 50% 50% 0 0;
  transform-origin: bottom left;
  animation: ewc-wave 2s ease-in-out infinite;
}
.scn-evans-welcomes-caius .cloud-f {
  position: absolute; top: 10%; left: 15%; width: 90px; height: 22px;
  background: rgba(255,255,255,0.4); border-radius: 50%; filter: blur(5px);
  animation: ewc-cloud-f 38s linear infinite;
}
.scn-evans-welcomes-caius .cloud-g {
  position: absolute; top: 18%; right: 20%; width: 70px; height: 18px;
  background: rgba(255,255,255,0.3); border-radius: 50%; filter: blur(4px);
  animation: ewc-cloud-g 42s linear infinite reverse;
}
@keyframes ewc-sky { 0% { opacity: 0.9; } 50% { opacity: 0.7; } 100% { opacity: 0.8; } }
@keyframes ewc-caius { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(18px) rotate(2deg); } 100% { transform: translateX(36px) rotate(-1deg); } }
@keyframes ewc-evans { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-15px) rotate(-2deg); } 100% { transform: translateX(-30px) rotate(0); } }
@keyframes ewc-wave { 0% { transform: rotate(-20deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(-20deg); } }
@keyframes ewc-cloud-f { 0% { transform: translateX(-70px); } 100% { transform: translateX(110vw); } }
@keyframes ewc-cloud-g { 0% { transform: translateX(0); } 100% { transform: translateX(-80vw); } }

/* garter-inn-comedy */
.scn-garter-inn-comedy {
  background: 
    linear-gradient(180deg, #2a1e14 0%, #3a2a1a 30%, #2a1e14 60%, #1a120a 100%),
    radial-gradient(ellipse at 30% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-garter-inn-comedy .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); }
.scn-garter-inn-comedy .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,.6); }
.scn-garter-inn-comedy .table { position:absolute; bottom:30%; left:20%; width:40%; height:8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 6px; box-shadow: 0 8px 16px rgba(0,0,0,.5); }
.scn-garter-inn-comedy .tankard { position:absolute; bottom:35%; left:35%; width:10%; height:12%; background: radial-gradient(ellipse at 50% 30%, #8a7a5a 0%, #5a4a3a 100%); border-radius: 40% 40% 10% 10%; }
.scn-garter-inn-comedy .figure-fat { position:absolute; bottom:32%; left:50%; width:30%; height:50%; background: radial-gradient(ellipse at 50% 60%, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gac-wobble 1.5s ease-in-out infinite; }
.scn-garter-inn-comedy .arm-comedy { position:absolute; bottom:50%; left:60%; width:12%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 10% 10%; transform-origin: top left; animation: gac-jest 2s ease-in-out infinite; }
.scn-garter-inn-comedy .candle-glow { position:absolute; bottom:50%; left:25%; width:8%; height:8%; background: radial-gradient(circle, #f0c060 0%, #c08030 50%, transparent 100%); border-radius: 50%; animation: gac-flicker 1.6s ease-in-out infinite alternate; box-shadow: 0 0 50px 20px rgba(240,192,96,0.3); }
.scn-garter-inn-comedy .shadow-move { position:absolute; bottom:30%; left:45%; width:25%; height:4%; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(6px); animation: gac-shadow 1.5s ease-in-out infinite; }

@keyframes gac-wobble { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02) translateY(-2px); } 100% { transform: rotate(-2deg) scale(1); } }
@keyframes gac-jest { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(30deg) translateX(5px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes gac-flicker { 0% { opacity: 0.7; transform: scale(0.9); } 100% { opacity: 1; transform: scale(1.1); } }
@keyframes gac-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5px) scaleX(1.2); } 100% { transform: translateX(0) scaleX(1); } }

/* fenton-host-arrangement */
.scn-fenton-host-arrangement {
  background: 
    linear-gradient(180deg, #1e1e2e 0%, #2a2a3a 40%, #1e1e2e 100%),
    radial-gradient(ellipse at 70% 90%, #3a3a4a 0%, transparent 60%);
}
.scn-fenton-host-arrangement .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-fenton-host-arrangement .window-light { position:absolute; top:20%; right:10%; width:25%; height:30%; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,120,0.3) 0%, transparent 100%); border: 2px solid #4a4a5a; border-radius: 4px; animation: fha-window 8s ease-in-out infinite alternate; }
.scn-fenton-host-arrangement .table-small { position:absolute; bottom:25%; left:40%; width:20%; height:6%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-fenton-host-arrangement .figure-left { position:absolute; bottom:27%; left:25%; width:15%; height:45%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: fha-bow 6s ease-in-out infinite; }
.scn-fenton-host-arrangement .figure-right { position:absolute; bottom:27%; right:25%; width:15%; height:45%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: fha-listen 6s ease-in-out infinite 3s; }
.scn-fenton-host-arrangement .coin-pile { position:absolute; bottom:28%; left:48%; width:8%; height:4%; background: radial-gradient(ellipse at 50% 50%, #c8a050 0%, #8a7a3a 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.scn-fenton-host-arrangement .candle-dim { position:absolute; bottom:45%; left:45%; width:4%; height:10%; background: linear-gradient(180deg, #c8a050 0%, #6a4a1a 100%); border-radius: 2px; box-shadow: 0 0 20px 8px rgba(200,160,80,0.2); animation: fha-candle 3s ease-in-out infinite alternate; }

@keyframes fha-window { 0% { opacity:0.3; } 100% { opacity:0.6; } }
@keyframes fha-bow { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes fha-listen { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes fha-candle { 0% { transform: scaleY(1); opacity:0.8; } 100% { transform: scaleY(1.1); opacity:1; } }

/* garter-inn-falstaff-prepares */
.scn-garter-inn-falstaff-prepares {
  background: 
    linear-gradient(180deg, #2a1e14 0%, #3a2a1a 30%, #2a1e14 60%, #1a120a 100%),
    radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 80%);
}
.scn-garter-inn-falstaff-prepares .room-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); }
.scn-garter-inn-falstaff-prepares .wardrobe { position:absolute; bottom:25%; left:10%; width:20%; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; }
.scn-garter-inn-falstaff-prepares .mirror { position:absolute; bottom:35%; left:55%; width:18%; height:35%; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,0.15) 0%, rgba(200,180,160,0.05) 100%); border: 2px solid #6a5a4a; border-radius: 50%; }
.scn-garter-inn-falstaff-prepares .falstaff-body { position:absolute; bottom:25%; left:40%; width:25%; height:50%; background: radial-gradient(ellipse at 50% 60%, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: gfp-belly 2s ease-in-out infinite; }
.scn-garter-inn-falstaff-prepares .falstaff-head { position:absolute; bottom:65%; left:45%; width:14%; height:16%; background: radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50%; }
.scn-garter-inn-falstaff-prepares .helmet { position:absolute; bottom:78%; left:46%; width:12%; height:10%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 40% 40% 10% 10%; transform: rotate(10deg); animation: gfp-helmet 1.5s ease-in-out infinite alternate; }
.scn-garter-inn-falstaff-prepares .sword { position:absolute; bottom:30%; right:25%; width:5%; height:40%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 2px; transform-origin: bottom center; animation: gfp-sword 2s ease-in-out infinite; }
.scn-garter-inn-falstaff-prepares .cape-swish { position:absolute; bottom:30%; left:35%; width:30%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 0 50% 50% 0 / 0 60% 40% 0; transform-origin: top left; animation: gfp-cape 2s ease-in-out infinite; }
.scn-garter-inn-falstaff-prepares .candle-flicker { position:absolute; bottom:50%; left:30%; width:6%; height:8%; background: radial-gradient(circle, #f0c060 0%, #c08030 50%, transparent 100%); border-radius: 50%; animation: gac-flicker 1.8s ease-in-out infinite alternate; box-shadow: 0 0 40px 15px rgba(240,192,96,0.3); }

@keyframes gfp-belly { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.05) translateY(-2px); } }
@keyframes gfp-helmet { 0% { transform: rotate(5deg) translateX(0); } 100% { transform: rotate(15deg) translateX(2px); } }
@keyframes gfp-sword { 0% { transform: rotate(-5deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }
@keyframes gfp-cape { 0% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(5deg) scaleX(1.02); } 100% { transform: rotate(-5deg) scaleX(1); } }

/* windsor-park-couch */
.scn-windsor-park-couch {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 30%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 20%, #2a2a3e 0%, transparent 60%);
}
.scn-windsor-park-couch .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%); }
.scn-windsor-park-couch .stars { position:absolute; top:5%; left:0; right:0; bottom:50%; background: radial-gradient(2px 2px at 20% 10%, #ffffff 0%, transparent 100%), radial-gradient(2px 2px at 50% 30%, #ffffff 0%, transparent 100%), radial-gradient(1px 1px at 70% 15%, #ffffff 0%, transparent 100%), radial-gradient(1px 1px at 30% 40%, #ffffff 0%, transparent 100%), radial-gradient(2px 2px at 80% 50%, #ffffff 0%, transparent 100%); animation: wpc-twinkle 4s ease-in-out infinite alternate; }
.scn-windsor-park-couch .moon-glow { position:absolute; top:10%; left:70%; width:20%; height:20%; background: radial-gradient(circle, rgba(200,200,220,0.1) 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 80px 40px rgba(200,200,220,0.05); }
.scn-windsor-park-couch .grass { position:absolute; bottom:35%; left:0; right:0; height:10%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 20% 20% 0 0 / 60% 60% 0 0; }
.scn-windsor-park-couch .couch-back { position:absolute; bottom:30%; left:30%; width:40%; height:20%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,0.6); }
.scn-windsor-park-couch .couch-seat { position:absolute; bottom:18%; left:28%; width:44%; height:12%; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 6% 6% 4% 4%; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); }
.scn-windsor-park-couch .figure-reclining { position:absolute; bottom:20%; left:35%; width:30%; height:25%; background: radial-gradient(ellipse at 50% 50%, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 50% 40% 40%; animation: wpc-breathe 6s ease-in-out infinite; }
.scn-windsor-park-couch .shadow-long { position:absolute; bottom:18%; left:25%; width:50%; height:6%; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(8px); animation: wpc-shadow 8s ease-in-out infinite alternate; }

@keyframes wpc-twinkle { 0% { opacity:0.5; } 100% { opacity:1; } }
@keyframes wpc-breathe { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1); } }
@keyframes wpc-shadow { 0% { transform: scaleX(1) translateX(0); } 100% { transform: scaleX(1.2) translateX(10px); } }

/* spend-money-woo – tense dim interior */
.scn-spend-money-woo {
  background:
    linear-gradient(180deg, #2a1f1a 0%, #1a1410 50%, #0f0b08 100%),
    radial-gradient(ellipse at 50% 60%, #1e1612 0%, transparent 70%);
}
.scn-spend-money-woo .wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(90deg, #2a1f1a 0%, #3a2a22 50%, #2a1f1a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
}
.scn-spend-money-woo .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.7);
}
.scn-spend-money-woo .table {
  position:absolute; bottom:22%; left:30%; width:40%; height:8%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e14 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-spend-money-woo .money-bag {
  position:absolute; bottom:28%; left:45%; width:8%; height:10%;
  background: radial-gradient(ellipse at 50% 30%, #8a6a4a 0%, #5a3e2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: smw-jiggle 4s ease-in-out infinite;
}
.scn-spend-money-woo .coins {
  position:absolute; bottom:27%; left:52%; width:20%; height:5%;
  background: radial-gradient(circle, #b89850 0%, #8a6e30 70%);
  border-radius: 50%;
  filter: blur(1px);
  animation: smw-sparkle 2s ease-in-out infinite;
}
.scn-spend-money-woo .candle {
  position:absolute; bottom:30%; left:35%; width:3%; height:18%;
  background: linear-gradient(180deg, #d4a050 0%, #8a6e3a 50%, #4a3a1a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 20px 6px rgba(200,160,80,.4);
  animation: smw-flicker 1.5s ease-in-out infinite;
}
.scn-spend-money-woo .figure-seated {
  position:absolute; bottom:25%; left:55%; width:18%; height:40%;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a100e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: smw-breathe 6s ease-in-out infinite;
}
.scn-spend-money-woo .hand-counting {
  position:absolute; bottom:30%; left:52%; width:8%; height:6%;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1a14 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 4px rgba(0,0,0,.6);
  animation: smw-count 2.4s ease-in-out infinite;
}
@keyframes smw-jiggle { 0% { transform: translate(0,0) rotate(0); } 50% { transform: translate(2px,-2px) rotate(3deg); } 100% { transform: translate(0,0) rotate(0); } }
@keyframes smw-sparkle { 0% { opacity:.6; filter: blur(0.5px); } 50% { opacity:1; filter: blur(0); } 100% { opacity:.6; filter: blur(0.5px); } }
@keyframes smw-flicker { 0% { opacity:.8; transform: scaleY(1); } 25% { opacity:1; transform: scaleY(1.02); } 75% { opacity:.9; transform: scaleY(0.98); } 100% { opacity:.8; transform: scaleY(1); } }
@keyframes smw-breathe { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes smw-count { 0% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-4px) rotate(-5deg); } 66% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }

/* drive-her-purity – tense dim interior */
.scn-drive-her-purity {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #12101e 50%, #0a0a12 100%),
    radial-gradient(ellipse at 50% 40%, #18162a 0%, transparent 60%);
}
.scn-drive-her-purity .wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(90deg, #1a1828 0%, #2a2640 30%, #1a1828 70%, #2a2640 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
}
.scn-drive-her-purity .window {
  position:absolute; top:15%; left:35%; width:30%; height:25%;
  background: radial-gradient(ellipse, #4a4a6a 0%, #2a2a4a 100%);
  border: 4px solid #1a1a2a;
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8);
  animation: dhp-window 8s ease-in-out infinite;
}
.scn-drive-her-purity .figure-ford {
  position:absolute; bottom:20%; left:30%; width:20%; height:35%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dhp-pace 5s ease-in-out infinite;
}
.scn-drive-her-purity .figure-lady {
  position:absolute; bottom:20%; left:55%; width:16%; height:40%;
  background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px rgba(0,0,0,.5);
  animation: dhp-stand 6s ease-in-out infinite;
}
.scn-drive-her-purity .candle-desk {
  position:absolute; bottom:27%; left:45%; width:2%; height:12%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px rgba(150,130,90,.6);
  animation: dhp-candle 2s ease-in-out infinite;
}
.scn-drive-her-purity .letter {
  position:absolute; bottom:25%; left:48%; width:10%; height:6%;
  background: #d0b090;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: dhp-letter 4s ease-in-out infinite;
}
.scn-drive-her-purity .shadow-door {
  position:absolute; bottom:0; right:10%; width:12%; height:50%;
  background: linear-gradient(180deg, #0a0a12 0%, #1a162a 100%);
  border-radius: 4px 4px 0 0;
  filter: blur(2px);
}
@keyframes dhp-window { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.6; } }
@keyframes dhp-pace { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(8px) rotate(2deg); } 75% { transform: translateX(-8px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes dhp-stand { 0% { transform: translateY(0); opacity:.9; } 50% { transform: translateY(-4px); opacity:1; } 100% { transform: translateY(0); opacity:.9; } }
@keyframes dhp-candle { 0% { transform: scaleY(1); opacity:.8; } 25% { transform: scaleY(1.05); opacity:1; } 75% { transform: scaleY(0.95); opacity:.9; } 100% { transform: scaleY(1); opacity:.8; } }
@keyframes dhp-letter { 0% { transform: rotate(0); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0); } }

/* falstaff-promises-ford – warm dim interior */
.scn-falstaff-promises-ford {
  background:
    linear-gradient(180deg, #3a2820 0%, #2a1a12 50%, #1a0e08 100%),
    radial-gradient(ellipse at 60% 40%, #4a3020 0%, transparent 60%);
}
.scn-falstaff-promises-ford .hearth {
  position:absolute; bottom:5%; left:10%; width:40%; height:30%;
  background: linear-gradient(90deg, #2a1a10 0%, #3a2218 50%, #2a1a10 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
}
.scn-falstaff-promises-ford .fire-glow {
  position:absolute; bottom:10%; left:18%; width:20%; height:25%;
  background: radial-gradient(ellipse, #ff7030 0%, #c04820 40%, #8a2810 70%, transparent 100%);
  box-shadow: 0 0 40px 20px rgba(255, 80, 20, .4);
  animation: fpf-fire 2.4s ease-in-out infinite;
}
.scn-falstaff-promises-ford .mantel {
  position:absolute; bottom:32%; left:12%; width:36%; height:4%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-falstaff-promises-ford .figure-falstaff {
  position:absolute; bottom:15%; left:50%; width:24%; height:45%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fpf-gesture 3s ease-in-out infinite;
}
.scn-falstaff-promises-ford .figure-ford {
  position:absolute; bottom:15%; left:75%; width:18%; height:38%;
  background: linear-gradient(180deg, #3a2818 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fpf-nod 4s ease-in-out infinite;
}
.scn-falstaff-promises-ford .table-mug {
  position:absolute; bottom:22%; left:55%; width:12%; height:8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
}
.scn-falstaff-promises-ford .wine {
  position:absolute; bottom:24%; left:58%; width:4%; height:4%;
  background: radial-gradient(circle, #8a3020 0%, #5a1a10 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(120, 30, 10, .4);
  animation: fpf-wine 5s ease-in-out infinite;
}
@keyframes fpf-fire { 0% { transform: scale(1); opacity:.7; } 50% { transform: scale(1.03); opacity:1; } 100% { transform: scale(1); opacity:.7; } }
@keyframes fpf-gesture { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(12px) rotate(5deg); } 70% { transform: translateX(-8px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fpf-nod { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fpf-wine { 0% { transform: translate(0,0); } 50% { transform: translate(3px,-5px); } 100% { transform: translate(0,0); } }

/* falstaff-between – warm dim interior */
.scn-falstaff-between {
  background:
    linear-gradient(180deg, #2a1e18 0%, #1a120e 50%, #0f0a06 100%),
    radial-gradient(ellipse at 50% 50%, #3a281e 0%, transparent 60%);
}
.scn-falstaff-between .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(90deg, #2a1e18 0%, #3a2a1e 50%, #2a1e18 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-falstaff-between .door {
  position:absolute; bottom:0; left:40%; width:20%; height:55%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border: 3px solid #1a100a;
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,.4);
}
.scn-falstaff-between .figure-left {
  position:absolute; bottom:15%; left:15%; width:20%; height:40%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fbt-turn 5s ease-in-out infinite;
}
.scn-falstaff-between .figure-right {
  position:absolute; bottom:15%; right:10%; width:20%; height:42%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fbt-lean 4s ease-in-out infinite;
}
.scn-falstaff-between .figure-middle {
  position:absolute; bottom:18%; left:42%; width:16%; height:38%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a2018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fbt-peek 3s ease-in-out infinite;
}
.scn-falstaff-between .lamp {
  position:absolute; top:5%; left:30%; width:8%; height:15%;
  background: radial-gradient(ellipse at 50% 20%, #d0b070 0%, #8a7030 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(180,140,60,.3);
  animation: fbt-lamp 4s ease-in-out infinite;
}
.scn-falstaff-between .scroll {
  position:absolute; bottom:28%; left:45%; width:12%; height:4%;
  background: #c0a080;
  border-radius: 2px;
  box-shadow: 0 1px 3px rgba(0,0,0,.3);
  animation: fbt-scroll 8s ease-in-out infinite;
}
@keyframes fbt-turn { 0% { transform: scaleX(1); } 50% { transform: scaleX(-1); } 100% { transform: scaleX(1); } }
@keyframes fbt-lean { 0% { transform: rotate(0); } 50% { transform: rotate(4deg); } 100% { transform: rotate(0); } }
@keyframes fbt-peek { 0% { transform: translateX(0); } 50% { transform: translateX(10px); } 100% { transform: translateX(0); } }
@keyframes fbt-lamp { 0% { transform: scaleY(1); opacity:.8; } 50% { transform: scaleY(1.03); opacity:1; } 100% { transform: scaleY(1); opacity:.8; } }
@keyframes fbt-scroll { 0% { transform: rotate(0); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0); } }

/* Scene 1: urinals-cockscomb */
.scn-urinals-cockscomb {
  background: linear-gradient(180deg, #6b6b6b 0%, #4a4a4a 40%, #2e2e2e 100%), radial-gradient(ellipse at 50% 100%, #4a4a4a 0%, transparent 70%);
}
.scn-urinals-cockscomb .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(90deg, #5a5a4a 0%, #707060 20%, #5a5a4a 40%, #707060 60%, #5a5a4a 80%, #707060 100%);
  animation: uc-wall 12s ease-in-out infinite alternate;
}
.scn-urinals-cockscomb .puddle {
  position:absolute; bottom:10%; left:10%; width:70%; height:15%;
  background: radial-gradient(ellipse at 30% 50%, rgba(120,120,130,0.6) 0%, transparent 70%);
  border-radius:50%;
  filter: blur(4px);
  animation: uc-puddle 8s ease-in-out infinite;
}
.scn-urinals-cockscomb .figure {
  position:absolute; bottom:18%; left:35%; width:30%; height:60%;
  background: linear-gradient(180deg, #3a3a3a 0%, #222222 50%, #111111 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: uc-figure 6s ease-in-out infinite;
}
.scn-urinals-cockscomb .hat {
  position:absolute; bottom:72%; left:37%; width:22%; height:8%;
  background: linear-gradient(180deg, #4a4a30 0%, #2a2a1a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: uc-hat 7s ease-in-out infinite;
}
.scn-urinals-cockscomb .feather {
  position:absolute; bottom:80%; left:52%; width:4%; height:12%;
  background: linear-gradient(180deg, #7a7a50 0%, #5a5a30 100%);
  border-radius: 50% 50% 10% 10% / 90% 90% 10% 10%;
  transform-origin: bottom center;
  animation: uc-feather 9s ease-in-out infinite alternate;
}
.scn-urinals-cockscomb .sign {
  position:absolute; top:10%; right:10%; width:12%; height:18%;
  background: linear-gradient(180deg, #8a8a70 0%, #6a6a50 100%);
  border: 2px solid #4a4a30;
  border-radius: 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: uc-sign 20s ease-in-out infinite;
}
@keyframes uc-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes uc-puddle { 0% { transform:scaleY(1) translateY(0); opacity:0.5 } 50% { transform:scaleY(1.1) translateY(-2px); opacity:0.7 } 100% { transform:scaleY(1) translateY(0); opacity:0.5 } }
@keyframes uc-figure { 0% { transform:scaleY(1) } 25% { transform:scaleY(1.02) } 50% { transform:scaleY(0.98) } 75% { transform:scaleY(1.01) } 100% { transform:scaleY(1) } }
@keyframes uc-hat { 0% { transform:rotate(-2deg) } 50% { transform:rotate(3deg) } 100% { transform:rotate(-1deg) } }
@keyframes uc-feather { 0% { transform:rotate(-5deg) translateX(0) } 50% { transform:rotate(8deg) translateX(4%) } 100% { transform:rotate(-3deg) translateX(2%) } }
@keyframes uc-sign { 0% { transform:rotate(0deg) } 25% { transform:rotate(2deg) } 50% { transform:rotate(-1deg) } 75% { transform:rotate(1deg) } 100% { transform:rotate(0deg) } }

/* Scene 2: host-machiavel */
.scn-host-machiavel {
  background: linear-gradient(180deg, #3d3830 0%, #2b2720 40%, #1a1713 100%), radial-gradient(ellipse at 50% 70%, #2b2720 0%, transparent 60%);
}
.scn-host-machiavel .bg-dark {
  position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 0%, rgba(20,18,15,0.7) 100%);
  animation: hm-bg 14s ease-in-out infinite alternate;
}
.scn-host-machiavel .bar {
  position:absolute; bottom:20%; left:5%; width:90%; height:8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: hm-bar 20s ease-in-out infinite;
}
.scn-host-machiavel .host {
  position:absolute; bottom:28%; left:40%; width:18%; height:40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: hm-host 6s ease-in-out infinite;
}
.scn-host-machiavel .apron {
  position:absolute; bottom:28%; left:42%; width:14%; height:25%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 20% 20% 10% 10%;
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
  animation: hm-apron 8s ease-in-out infinite alternate;
}
.scn-host-machiavel .bottle {
  position:absolute; bottom:28%; left:60%; width:5%; height:20%;
  background: linear-gradient(180deg, #5a5a3a 0%, #3a3a1a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: hm-bottle 4s ease-in-out infinite;
}
.scn-host-machiavel .window {
  position:absolute; top:10%; right:5%; width:18%; height:30%;
  background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%);
  border-radius: 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: hm-window 30s ease-in-out infinite;
}
.scn-host-machiavel .light {
  position:absolute; top:25%; right:8%; width:8%; height:8%;
  background: radial-gradient(circle, #c0a860 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(192,168,96,0.3);
  animation: hm-light 3s ease-in-out infinite alternate;
}
@keyframes hm-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes hm-bar { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.02) } 100% { transform:scaleX(1) } }
@keyframes hm-host { 0% { transform:translateY(0) rotate(-1deg) } 25% { transform:translateY(-2px) rotate(1deg) } 50% { transform:translateY(0) rotate(0deg) } 75% { transform:translateY(-1px) rotate(2deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes hm-apron { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.05) } 100% { transform:scaleY(0.95) } }
@keyframes hm-bottle { 0% { transform:rotate(-5deg) translateX(0) } 50% { transform:rotate(8deg) translateX(3%) } 100% { transform:rotate(-3deg) translateX(1%) } }
@keyframes hm-window { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes hm-light { 0% { opacity:0.7; transform:scale(0.9) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:0.8; transform:scale(1) } }

/* Scene 3: mad-host-deceived */
.scn-mad-host-deceived {
  background: linear-gradient(180deg, #3a3a30 0%, #2a2a20 40%, #1a1a10 100%), radial-gradient(ellipse at 50% 30%, #2a2a20 0%, transparent 60%);
}
.scn-mad-host-deceived .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: mhd-floor 18s ease-in-out infinite alternate;
}
.scn-mad-host-deceived .beam {
  position:absolute; top:0; left:20%; width:5%; height:100%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10%;
  box-shadow: 2px 0 8px rgba(0,0,0,0.3);
  animation: mhd-beam 25s ease-in-out infinite;
}
.scn-mad-host-deceived .table {
  position:absolute; bottom:25%; left:30%; width:40%; height:12%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: mhd-table 15s ease-in-out infinite;
}
.scn-mad-host-deceived .host-two {
  position:absolute; bottom:37%; left:35%; width:15%; height:35%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: mhd-host-two 7s ease-in-out infinite;
}
.scn-mad-host-deceived .shadow {
  position:absolute; bottom:25%; left:50%; width:20%; height:10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: mhd-shadow 10s ease-in-out infinite alternate;
}
.scn-mad-host-deceived .mug {
  position:absolute; bottom:40%; left:50%; width:6%; height:10%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: mhd-mug 4s ease-in-out infinite;
}
@keyframes mhd-floor { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(0.98) } }
@keyframes mhd-beam { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.05) } 100% { transform:scaleX(1) } }
@keyframes mhd-table { 0% { transform:rotate(0deg) } 25% { transform:rotate(1deg) } 50% { transform:rotate(-1deg) } 75% { transform:rotate(0.5deg) } 100% { transform:rotate(0deg) } }
@keyframes mhd-host-two { 0% { transform:translateY(0) rotate(-2deg) } 25% { transform:translateY(-3px) rotate(1deg) } 50% { transform:translateY(0) rotate(2deg) } 75% { transform:translateY(-2px) rotate(-1deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes mhd-shadow { 0% { opacity:0.4; transform:scaleX(1) } 50% { opacity:0.6; transform:scaleX(1.2) } 100% { opacity:0.3; transform:scaleX(0.8) } }
@keyframes mhd-mug { 0% { transform:rotate(-10deg) } 50% { transform:rotate(15deg) } 100% { transform:rotate(-5deg) } }

/* Scene 4: revenge-on-host */
.scn-revenge-on-host {
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 50%, #1a1a1a 100%), radial-gradient(ellipse at 50% 0%, #2a2a2a 0%, transparent 70%);
}
.scn-revenge-on-host .sky {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  animation: roh-sky 20s ease-in-out infinite alternate;
}
.scn-revenge-on-host .ground {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #3a3a30 0%, #1a1a10 100%);
  border-radius: 30% 70% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: roh-ground 25s ease-in-out infinite;
}
.scn-revenge-on-host .host-back {
  position:absolute; bottom:25%; left:20%; width:18%; height:45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: roh-host-back 6s ease-in-out infinite;
}
.scn-revenge-on-host .avenger {
  position:absolute; bottom:25%; left:60%; width:16%; height:55%;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: roh-avenger 8s ease-in-out infinite alternate;
}
.scn-revenge-on-host .sword {
  position:absolute; bottom:65%; left:64%; width:2%; height:25%;
  background: linear-gradient(180deg, #8a8a8a 0%, #4a4a4a 100%);
  border-radius: 20%;
  box-shadow: 0 0 8px rgba(150,150,150,0.4);
  transform-origin: bottom center;
  animation: roh-sword 4s ease-in-out infinite;
}
.scn-revenge-on-host .dust {
  position:absolute; bottom:15%; left:40%; width:60%; height:8%;
  background: radial-gradient(ellipse, rgba(100,80,60,0.4) 0%, transparent 80%);
  filter: blur(10px);
  animation: roh-dust 12s ease-in-out infinite;
}
@keyframes roh-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes roh-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes roh-host-back { 0% { transform:rotate(-3deg) } 25% { transform:rotate(2deg) } 50% { transform:rotate(-1deg) } 75% { transform:rotate(4deg) } 100% { transform:rotate(-2deg) } }
@keyframes roh-avenger { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(-5%) rotate(-5deg) } 50% { transform:translateX(0) rotate(2deg) } 75% { transform:translateX(3%) rotate(-3deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes roh-sword { 0% { transform:rotate(10deg) translateY(0) } 25% { transform:rotate(15deg) translateY(-5%) } 50% { transform:rotate(5deg) translateY(0) } 75% { transform:rotate(20deg) translateY(-3%) } 100% { transform:rotate(10deg) translateY(0) } }
@keyframes roh-dust { 0% { opacity:0.2; transform:scaleX(1) } 50% { opacity:0.5; transform:scaleX(1.5) } 100% { opacity:0.3; transform:scaleX(1) } }

.scn-brook-introduces { background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #1a0e05 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 80%); }
.scn-brook-introduces .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0e 80%); }
.scn-brook-introduces .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a0e05 0%, #2a1a0e 100%); }
.scn-brook-introduces .fireplace { position:absolute; bottom:20%; left:10%; width:30%; height:50%; background: radial-gradient(ellipse at 50% 0%, #8a3a1a 0%, #3a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -20px 30px #0a0500; }
.scn-brook-introduces .table { position:absolute; bottom:18%; left:35%; width:30%; height:12%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 4px; transform: perspective(200px) rotateX(20deg); }
.scn-brook-introduces .candle { position:absolute; bottom:22%; left:48%; width:6px; height:14px; background: #ffe0a0; border-radius: 2px 2px 0 0; box-shadow: 0 0 20px 6px #ffc070, 0 0 40px 12px rgba(255,192,112,0.4); animation: bi-candle 4s ease-in-out infinite alternate; }
.scn-brook-introduces .figure-left { position:absolute; bottom:15%; left:22%; width:10%; height:45%; background: linear-gradient(180deg, #1a0e05 0%, #0a0500 100%); border-radius: 50% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bi-fig-l 6s ease-in-out infinite; }
.scn-brook-introduces .figure-right { position:absolute; bottom:15%; right:22%; width:10%; height:45%; background: linear-gradient(180deg, #1a0e05 0%, #0a0500 100%); border-radius: 40% 50% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bi-fig-r 5s ease-in-out infinite alternate; }
.scn-brook-introduces .shadow-floor { position:absolute; bottom:0; left:20%; width:60%; height:15%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 80%); filter: blur(4px); animation: bi-shadow 8s ease-in-out infinite; }
@keyframes bi-candle { 0% { transform: scaleY(1) translateY(0); opacity:1; box-shadow: 0 0 20px 6px #ffc070; } 50% { transform: scaleY(1.05) translateY(-1px); opacity:0.9; box-shadow: 0 0 30px 10px #ffd080; } 100% { transform: scaleY(0.95) translateY(1px); opacity:1; box-shadow: 0 0 20px 6px #ffc070; } }
@keyframes bi-fig-l { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(2px) translateY(-3px) rotate(1deg); } 50% { transform: translateX(-1px) translateY(0) rotate(0); } 75% { transform: translateX(1px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes bi-fig-r { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(-2px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes bi-shadow { 0% { opacity:0.5; transform: scaleX(1); } 50% { opacity:0.8; transform: scaleX(1.05); } 100% { opacity:0.5; transform: scaleX(1); } }

.scn-money-go-before { background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #1a0e05 100%), radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 80%); }
.scn-money-go-before .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0e 80%); }
.scn-money-go-before .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a0e05 0%, #2a1a0e 100%); }
.scn-money-go-before .table { position:absolute; bottom:15%; left:25%; width:50%; height:10%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 4px; transform: perspective(200px) rotateX(15deg); }
.scn-money-go-before .money-bag { position:absolute; bottom:20%; left:40%; width:12%; height:10%; background: radial-gradient(ellipse at 50% 30%, #6a5a2a 0%, #3a2a0a 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: mgb-bag 3s ease-in-out infinite alternate; }
.scn-money-go-before .coin-1 { position:absolute; bottom:18%; left:44%; width:4%; height:3%; background: radial-gradient(circle, #f0d080 0%, #c0a050 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: mgb-coin 5s ease-in-out infinite; }
.scn-money-go-before .coin-2 { position:absolute; bottom:18%; left:46%; width:4%; height:3%; background: radial-gradient(circle, #f0d080 0%, #c0a050 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: mgb-coin 5s ease-in-out infinite 1s; }
.scn-money-go-before .hand { position:absolute; bottom:18%; right:35%; width:8%; height:14%; background: linear-gradient(180deg, #1a0e05 0%, #0a0500 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: mgb-hand 4s ease-in-out infinite alternate; }
.scn-money-go-before .candle { position:absolute; bottom:21%; left:30%; width:5px; height:12px; background: #ffe0a0; border-radius: 2px 2px 0 0; box-shadow: 0 0 15px 4px #ffc070, 0 0 30px 8px rgba(255,192,112,0.3); animation: bi-candle 3s ease-in-out infinite alternate; }
@keyframes mgb-bag { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes mgb-coin { 0% { opacity:0.7; } 50% { opacity:1; transform: translateY(-2px) rotate(10deg); } 100% { opacity:0.7; } }
@keyframes mgb-hand { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(-8px) translateY(-2px) rotate(10deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }

.scn-scholar-brook { background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #1a0e05 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 80%); }
.scn-scholar-brook .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0e 80%); }
.scn-scholar-brook .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a0e05 0%, #2a1a0e 100%); }
.scn-scholar-brook .bookshelf { position:absolute; top:10%; left:10%; width:20%; height:50%; background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); }
.scn-scholar-brook .desk { position:absolute; bottom:20%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 4px; transform: perspective(200px) rotateX(10deg); }
.scn-scholar-brook .candle { position:absolute; bottom:25%; left:48%; width:6px; height:14px; background: #ffe0a0; border-radius: 2px 2px 0 0; box-shadow: 0 0 20px 6px #ffc070, 0 0 40px 12px rgba(255,192,112,0.4); animation: sb-candle 5s ease-in-out infinite alternate; }
.scn-scholar-brook .figure-left { position:absolute; bottom:15%; left:22%; width:10%; height:45%; background: linear-gradient(180deg, #1a0e05 0%, #0a0500 100%); border-radius: 50% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sb-fig-l 7s ease-in-out infinite; }
.scn-scholar-brook .figure-right { position:absolute; bottom:15%; right:22%; width:10%; height:45%; background: linear-gradient(180deg, #1a0e05 0%, #0a0500 100%); border-radius: 40% 50% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sb-fig-r 6s ease-in-out infinite alternate; }
.scn-scholar-brook .open-book { position:absolute; bottom:22%; left:42%; width:12%; height:6%; background: radial-gradient(ellipse at 50% 50%, #6a5a3a 0%, #4a3a1a 100%); border-radius: 20% 20% 10% 10%; transform: perspective(100px) rotateX(30deg); box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: sb-book 4s ease-in-out infinite; }
@keyframes sb-candle { 0% { transform: scaleY(1) translateY(0); opacity:1; } 50% { transform: scaleY(1.03) translateY(-1px); opacity:0.95; } 100% { transform: scaleY(0.97) translateY(1px); opacity:1; } }
@keyframes sb-fig-l { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sb-fig-r { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(-3px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes sb-book { 0% { transform: perspective(100px) rotateX(30deg) scale(1); } 50% { transform: perspective(100px) rotateX(25deg) scale(1.01); } 100% { transform: perspective(100px) rotateX(30deg) scale(1); } }

.scn-improper-brook { background: linear-gradient(180deg, #1a0a05 0%, #2a1a0a 40%, #0a0500 100%), radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 80%); }
.scn-improper-brook .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #2a1a0a 0%, #1a0a05 80%); }
.scn-improper-brook .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #0a0500 0%, #1a0a05 100%); }
.scn-improper-brook .fireplace { position:absolute; bottom:20%; left:10%; width:30%; height:50%; background: radial-gradient(ellipse at 50% 0%, #7a2a0a 0%, #2a0a00 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -20px 30px #000; }
.scn-improper-brook .table { position:absolute; bottom:18%; left:35%; width:30%; height:12%; background: linear-gradient(180deg, #4a2a0a 0%, #2a1a00 100%); border-radius: 4px; transform: perspective(200px) rotateX(20deg); }
.scn-improper-brook .candle-fast { position:absolute; bottom:22%; left:48%; width:6px; height:14px; background: #ffc070; border-radius: 2px 2px 0 0; box-shadow: 0 0 20px 6px #ffa030, 0 0 40px 12px rgba(255,160,48,0.5); animation: ib-candle 1.5s ease-in-out infinite alternate; }
.scn-improper-brook .figure-left { position:absolute; bottom:15%; left:22%; width:10%; height:45%; background: linear-gradient(180deg, #0a0500 0%, #000 100%); border-radius: 50% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ib-fig-l 2s ease-in-out infinite alternate; }
.scn-improper-brook .figure-right { position:absolute; bottom:15%; right:22%; width:10%; height:45%; background: linear-gradient(180deg, #0a0500 0%, #000 100%); border-radius: 40% 50% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ib-fig-r 1.8s ease-in-out infinite alternate; }
.scn-improper-brook .shadow-wall { position:absolute; top:0; left:40%; width:40%; height:100%; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%); filter: blur(6px); animation: ib-shadow 2s ease-in-out infinite alternate; }
@keyframes ib-candle { 0% { transform: scaleY(1) translateY(0); opacity:1; box-shadow: 0 0 15px 4px #ffa030; } 50% { transform: scaleY(1.1) translateY(-2px); opacity:0.8; box-shadow: 0 0 25px 8px #ff9020; } 100% { transform: scaleY(0.9) translateY(1px); opacity:1; box-shadow: 0 0 15px 4px #ffa030; } }
@keyframes ib-fig-l { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(3px) translateY(-4px) rotate(3deg); } 100% { transform: translateX(-2px) translateY(0) rotate(-1deg); } }
@keyframes ib-fig-r { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(-4px) translateY(-3px) rotate(4deg); } 100% { transform: translateX(2px) translateY(0) rotate(-2deg); } }
@keyframes ib-shadow { 0% { opacity:0.4; transform: scaleX(1); } 50% { opacity:0.7; transform: scaleX(1.05); } 100% { opacity:0.5; transform: scaleX(0.95); } }

.scn-street-park-approach {
  background: linear-gradient(180deg, #0b0b2a 0%, #1a1a3e 30%, #2c2040 100%),
              radial-gradient(ellipse at 70% 20%, rgba(200,180,220,.15) 0%, transparent 70%);
}
.scn-street-park-approach .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #0d0d35 0%, #1a1a45 100%); animation: pp-sky 20s ease-in-out infinite alternate; }
.scn-street-park-approach .stars { position:absolute; top:0; left:0; right:0; bottom:60%; background: radial-gradient(1px 1px at 10% 20%, #fff, transparent), radial-gradient(1px 1px at 30% 40%, #fff, transparent), radial-gradient(1px 1px at 60% 15%, #fff, transparent), radial-gradient(1px 1px at 85% 45%, #fff, transparent), radial-gradient(1.5px 1.5px at 45% 60%, #fff 0%, transparent 100%); opacity:.7; animation: pp-stars 5s ease-in-out infinite alternate; }
.scn-street-park-approach .street { position:absolute; bottom:20%; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a2a3a 0%, #151520 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-street-park-approach .trees-back { position:absolute; bottom:30%; left:5%; width:40%; height:50%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius:60% 40% 0 0; transform:scaleX(.8); }
.scn-street-park-approach .figures { position:absolute; bottom:20%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #0e0e1e 0%, #050510 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform:translateX(-20%); animation: pp-walk 6s ease-in-out infinite; }
.scn-street-park-approach .lantern { position:absolute; bottom:30%; left:50%; width:8px; height:10px; background:radial-gradient(ellipse, #ffd080 0%, #b08040 70%); border-radius:50%; box-shadow:0 0 20px 6px rgba(200,140,60,.5); animation: pp-lantern 4s ease-in-out infinite alternative; }
.scn-street-park-approach .gate { position:absolute; bottom:20%; right:10%; width:60px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:5% 5% 0 0; box-shadow:0 10px 20px rgba(0,0,0,.5); }
@keyframes pp-sky { 0% { opacity:.7; filter:brightness(1) } 50% { opacity:1; filter:brightness(1.1) } 100% { opacity:.8; filter:brightness(.95) } }
@keyframes pp-stars { 0% { opacity:.5; transform:scaleY(1) } 50% { opacity:.9; transform:scaleY(1.1) } 100% { opacity:.6; transform:scaleY(.9) } }
@keyframes pp-walk { 0% { transform:translateX(-20%) translateY(0) rotate(-1deg) } 25% { transform:translateX(-10%) translateY(-2px) rotate(1deg) } 50% { transform:translateX(0%) translateY(0) rotate(-1deg) } 75% { transform:translateX(10%) translateY(-2px) rotate(1deg) } 100% { transform:translateX(20%) translateY(0) rotate(0) } }
@keyframes pp-lantern { 0%,100% { box-shadow:0 0 15px 4px rgba(200,140,60,.4); transform:rotate(-2deg) } 50% { box-shadow:0 0 25px 8px rgba(255,200,80,.7); transform:rotate(2deg) } }

.scn-plot-to-betray-falstaff {
  background: linear-gradient(135deg, #2a1f0a 0%, #4a3a1a 40%, #3a2a10 100%),
              radial-gradient(ellipse at 20% 50%, #5a4a2a 0%, transparent 60%);
}
.scn-plot-to-betray-falstaff .wall-back { position:absolute; inset:0; background: linear-gradient(90deg, #3a2a1a 0%, #2a1f0a 100%); box-shadow:inset 0 0 80px rgba(0,0,0,.6); }
.scn-plot-to-betray-falstaff .table { position:absolute; bottom:20%; left:50%; width:120px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #4a321a 100%); border-radius:10% 10% 5% 5%; box-shadow:0 8px 16px rgba(0,0,0,.4); }
.scn-plot-to-betray-falstaff .candle { position:absolute; bottom:40%; left:50%; width:8px; height:24px; margin-left:-4px; background: linear-gradient(180deg, #ffe0a0 0%, #d0a060 100%); border-radius:20% 20% 10% 10%; box-shadow:0 0 30px 10px rgba(255,200,80,.6); animation: pf-candle 3s ease-in-out infinite alternate; }
.scn-plot-to-betray-falstaff .figure-left { position:absolute; bottom:18%; left:20%; width:30px; height:70px; background: linear-gradient(180deg, #1a100a 0%, #0a0805 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: pf-figure-l 5s ease-in-out infinite; }
.scn-plot-to-betray-falstaff .figure-right { position:absolute; bottom:18%; right:20%; width:30px; height:70px; background: linear-gradient(180deg, #1a100a 0%, #0a0805 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: pf-figure-r 5s ease-in-out infinite reverse; }
.scn-plot-to-betray-falstaff .shadow { position:absolute; bottom:20%; left:30%; width:80px; height:30px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.7) 0%, transparent 60%); animation: pf-shadow 7s ease-in-out infinite; }
.scn-plot-to-betray-falstaff .window { position:absolute; top:10%; right:10%; width:40px; height:50px; background: linear-gradient(180deg, #0a0a20 0%, #151540 100%); border:3px solid #3a2a1a; border-radius:5%; box-shadow:inset 0 0 20px rgba(0,0,0,.8); }
@keyframes pf-candle { 0%,100% { transform:scaleY(1); box-shadow:0 0 30px 10px rgba(255,200,80,.6); } 50% { transform:scaleY(1.1); box-shadow:0 0 40px 15px rgba(255,200,80,.8); } }
@keyframes pf-figure-l { 0% { transform:rotate(0) translateY(0) } 25% { transform:rotate(5deg) translateY(-2px) } 50% { transform:rotate(0) translateY(0) } 75% { transform:rotate(-5deg) translateY(-2px) } 100% { transform:rotate(0) translateY(0) } }
@keyframes pf-figure-r { 0% { transform:rotate(0) translateY(0) } 25% { transform:rotate(-5deg) translateY(-2px) } 50% { transform:rotate(0) translateY(0) } 75% { transform:rotate(5deg) translateY(-2px) } 100% { transform:rotate(0) translateY(0) } }
@keyframes pf-shadow { 0%,100% { opacity:.5; transform:scaleX(1) } 50% { opacity:.8; transform:scaleX(1.1) } }

.scn-fairies-assemble {
  background: linear-gradient(180deg, #0e1a0e 0%, #1a2a1a 40%, #2a3a2a 100%),
              radial-gradient(ellipse at 50% 60%, #1a2a1a 0%, transparent 80%);
}
.scn-fairies-assemble .bg-dim { position:absolute; inset:0; background: linear-gradient(180deg, #0a120a 0%, #1a2a1a 100%); opacity:.8; }
.scn-fairies-assemble .oak-tree { position:absolute; bottom:20%; left:50%; width:80px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:40% 40% 10% 10% / 80% 80% 20% 20%; box-shadow:0 10px 30px rgba(0,0,0,.5); }
.scn-fairies-assemble .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a2a1a 0%, #0a140a 100%); border-radius:40% 60% 0 0; }
.scn-fairies-assemble .fairies { position:absolute; bottom:40%; left:30%; width:20px; height:30px; background: radial-gradient(ellipse, #ffd080 0%, transparent 70%); border-radius:50%; box-shadow:0 0 15px 5px #ffd080; animation: fa-fairies 4s ease-in-out infinite; }
.scn-fairies-assemble .glow { position:absolute; bottom:50%; left:40%; width:40px; height:40px; background: radial-gradient(ellipse, rgba(200,255,200,.4) 0%, transparent 70%); animation: fa-glow 6s ease-in-out infinite alternate; }
.scn-fairies-assemble .pit { position:absolute; bottom:15%; left:20%; width:60px; height:30px; background: radial-gradient(ellipse at 50% 100%, #050a05 0%, transparent 70%); border-radius:50%; }
.scn-fairies-assemble .moss { position:absolute; bottom:25%; left:40%; width:30px; height:10px; background: linear-gradient(90deg, #3a5a3a, #2a4a2a); border-radius:40% 60% 50% 50%; filter:blur(2px); }
@keyframes fa-fairies { 0%,100% { transform:translateY(0) scale(1); opacity:.6 } 50% { transform:translateY(-8px) scale(1.2); opacity:1 } }
@keyframes fa-glow { 0% { opacity:.3; transform:scale(.8) } 50% { opacity:.7; transform:scale(1.2) } 100% { opacity:.4; transform:scale(1) } }

.scn-falstaff-as-herne {
  background: linear-gradient(180deg, #1a1a3a 0%, #0e0e2a 50%, #2a2a4e 100%),
              radial-gradient(ellipse at 50% 30%, #3a3a6e 0%, transparent 60%);
}
.scn-falstaff-as-herne .moon-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1a4a 0%, #0a0a2a 100%); }
.scn-falstaff-as-herne .moon { position:absolute; top:10%; left:60%; width:40px; height:40px; background: radial-gradient(circle, #e8e8ff 0%, #b0b0e0 80%); border-radius:50%; box-shadow:0 0 40px 15px rgba(200,200,255,.3); animation: fh-moon 12s ease-in-out infinite alternate; }
.scn-falstaff-as-herne .trees-bg { position:absolute; bottom:30%; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius:70% 30% 0 0 / 80% 40% 0 0; }
.scn-falstaff-as-herne .ground-dark { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #0e0e1e 0%, #050510 100%); }
.scn-falstaff-as-herne .falstaff-fig { position:absolute; bottom:25%; left:35%; width:40px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: fh-falstaff 3s ease-in-out infinite; }
.scn-falstaff-as-herne .antlers { position:absolute; bottom:68%; left:35%; width:40px; height:40px; background: transparent; border-left:3px solid #3a3a4a; border-right:3px solid #3a3a4a; border-radius:0 0 50% 50%; transform:rotate(10deg); animation: fh-antlers 4s ease-in-out infinite; }
.scn-falstaff-as-herne .pit-shadow { position:absolute; bottom:18%; left:40%; width:50px; height:20px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.8) 0%, transparent 60%); }
@keyframes fh-moon { 0%,100% { transform:translateY(0); box-shadow:0 0 40px 15px rgba(200,200,255,.3) } 50% { transform:translateY(-5px); box-shadow:0 0 60px 20px rgba(200,200,255,.5) } }
@keyframes fh-falstaff { 0%,100% { transform:translateY(0) rotate(0) } 25% { transform:translateY(-4px) rotate(2deg) } 50% { transform:translateY(-2px) rotate(-1deg) } 75% { transform:translateY(-4px) rotate(1deg) } }
@keyframes fh-antlers { 0%,100% { transform:rotate(10deg) scale(1) } 50% { transform:rotate(15deg) scale(1.05) } }

.scn-quickly-tells-simple {
  background: 
    linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #1a0e08 100%),
    radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 70%);
}
.scn-quickly-tells-simple .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  animation: qts-wall 12s ease-in-out infinite alternate;
}
.scn-quickly-tells-simple .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
}
.scn-quickly-tells-simple .table {
  position: absolute; bottom: 22%; left: 50%; width: 80px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: qts-table 6s ease-in-out infinite;
}
.scn-quickly-tells-simple .candle {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a060 0%, #a08040 60%, #8a6a30 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #d0a050, 0 0 40px 12px rgba(208,160,80,0.4);
  animation: qts-candle 3s ease-in-out infinite alternate;
}
.scn-quickly-tells-simple .figure-quickly {
  position: absolute; bottom: 18%; left: 30%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qts-quickly 4s ease-in-out infinite;
}
.scn-quickly-tells-simple .figure-simple {
  position: absolute; bottom: 18%; right: 30%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qts-simple 5s ease-in-out infinite;
}
.scn-quickly-tells-simple .lamp-swing {
  position: absolute; top: 12%; left: 50%; width: 12px; height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px #ffd080, 0 0 30px 8px rgba(255,208,128,0.3);
  animation: qts-lamp 2s ease-in-out infinite alternate;
}

@keyframes qts-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes qts-table { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes qts-candle { 0% { transform: translateX(-50%) scaleX(1); box-shadow: 0 0 16px 4px #d0a050; } 100% { transform: translateX(-50%) scaleX(0.85); box-shadow: 0 0 24px 8px #ffe0a0; } }
@keyframes qts-quickly { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes qts-simple { 0% { transform: translateX(0) translateY(0) scale(1); } 50% { transform: translateX(3px) translateY(-1px) scale(1.02); } 100% { transform: translateX(0) translateY(0) scale(1); } }
@keyframes qts-lamp { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(-5deg); } }

.scn-caius-sends-challenge {
  background: 
    linear-gradient(180deg, #1a0e0e 0%, #2a1a1a 50%, #0e0808 100%),
    radial-gradient(ellipse at 50% 60%, #3a1a1a 0%, transparent 70%);
}
.scn-caius-sends-challenge .wall-back {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  animation: csc-wall 14s ease-in-out infinite alternate;
}
.scn-caius-sends-challenge .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a0e0e 0%, #0a0606 100%);
  box-shadow: inset 0 6px 10px rgba(0,0,0,0.7);
}
.scn-caius-sends-challenge .door-arch {
  position: absolute; bottom: 10%; right: 10%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-caius-sends-challenge .figure-caius {
  position: absolute; bottom: 12%; left: 35%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: csc-caius 1.6s ease-in-out infinite alternate;
}
.scn-caius-sends-challenge .paper-challenge {
  position: absolute; bottom: 22%; left: 45%; width: 20px; height: 14px;
  background: #6a5a4a;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  transform: rotate(10deg);
  animation: csc-paper 3s ease-in-out infinite;
}
.scn-caius-sends-challenge .candle-flicker {
  position: absolute; bottom: 28%; left: 60%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #d08050 0%, #a06030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 16px 4px #d08050, 0 0 30px 8px rgba(208,128,80,0.4);
  animation: csc-candle 1.5s ease-in-out infinite alternate;
}
.scn-caius-sends-challenge .shadow-caius {
  position: absolute; bottom: 0; left: 30%; width: 40px; height: 20px;
  background: rgba(0,0,0,0.5);
  border-radius: 50% 50% 0 0;
  transform: skewX(-10deg);
  animation: csc-shadow 2.4s ease-in-out infinite alternate;
}

@keyframes csc-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes csc-caius { 0% { transform: translateX(0) rotate(-2deg) scale(1); } 100% { transform: translateX(3px) rotate(3deg) scale(1.05); } }
@keyframes csc-paper { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes csc-candle { 0% { transform: scaleY(1) scaleX(1); opacity: 0.9; } 50% { transform: scaleY(0.9) scaleX(0.95); opacity: 1; } 100% { transform: scaleY(1) scaleX(1); opacity: 0.9; } }
@keyframes csc-shadow { 0% { transform: skewX(-10deg) scaleX(1); opacity: 0.5; } 100% { transform: skewX(-5deg) scaleX(1.1); opacity: 0.7; } }

.scn-caius-goes-to-court {
  background: 
    linear-gradient(180deg, #120a0a 0%, #221210 50%, #0a0606 100%),
    radial-gradient(ellipse at 50% 50%, #2a1212 0%, transparent 70%);
}
.scn-caius-goes-to-court .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #221210 0%, #120a0a 100%);
  animation: cgc-wall 15s ease-in-out infinite alternate;
}
.scn-caius-goes-to-court .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a0e0e 0%, #0a0606 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.7);
}
.scn-caius-goes-to-court .door-open {
  position: absolute; bottom: 10%; left: 15%; width: 55px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 0 0 / 50% 50% 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.6);
  animation: cgc-door 8s ease-in-out infinite;
}
.scn-caius-goes-to-court .figure-caius {
  position: absolute; bottom: 12%; left: 30%; width: 26px; height: 55px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cgc-caius 2s ease-in-out infinite alternate;
}
.scn-caius-goes-to-court .figure-rugby {
  position: absolute; bottom: 12%; left: 22%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cgc-rugby 2.4s ease-in-out infinite alternate;
}
.scn-caius-goes-to-court .hat-caius {
  position: absolute; bottom: 58%; left: 30%; width: 20px; height: 12px;
  background: #1a0e0e;
  border-radius: 50% 50% 0 0;
  transform: rotate(-5deg);
  animation: cgc-hat 2s ease-in-out infinite alternate;
}
.scn-caius-goes-to-court .shadow {
  position: absolute; bottom: 0; left: 20%; width: 60px; height: 15px;
  background: rgba(0,0,0,0.6);
  border-radius: 50%;
  animation: cgc-shadow 2s ease-in-out infinite alternate;
}

@keyframes cgc-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes cgc-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.9) translateX(2px); } 100% { transform: scaleX(1); } }
@keyframes cgc-caius { 0% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(4px) rotate(3deg); } }
@keyframes cgc-rugby { 0% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(-3px) rotate(-2deg); } }
@keyframes cgc-hat { 0% { transform: rotate(-5deg) translateY(0); } 100% { transform: rotate(5deg) translateY(-1px); } }
@keyframes cgc-shadow { 0% { transform: scaleX(1); opacity: 0.6; } 100% { transform: scaleX(0.85); opacity: 0.8; } }

.scn-fenton-comes-courting {
  background: 
    linear-gradient(180deg, #3a2010 0%, #4a3020 50%, #2a1808 100%),
    radial-gradient(ellipse at 50% 80%, #5a3a20 0%, transparent 70%);
}
.scn-fenton-comes-courting .wall-warm {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3020 0%, #3a2010 100%);
  animation: fcc-wall 16s ease-in-out infinite alternate;
}
.scn-fenton-comes-courting .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2010 0%, #1a0e06 100%);
  box-shadow: inset 0 6px 10px rgba(0,0,0,0.5);
}
.scn-fenton-comes-courting .fireplace {
  position: absolute; bottom: 15%; left: 10%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 20px 4px #c07030;
}
.scn-fenton-comes-courting .figure-fenton {
  position: absolute; bottom: 15%; left: 35%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #3a2a22 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fcc-fenton 6s ease-in-out infinite;
}
.scn-fenton-comes-courting .figure-quickly {
  position: absolute; bottom: 15%; right: 30%; width: 26px; height: 52px;
  background: linear-gradient(180deg, #2a1a12 0%, #100a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fcc-quickly 5s ease-in-out infinite;
}
.scn-fenton-comes-courting .flower {
  position: absolute; bottom: 25%; left: 42%; width: 10px; height: 10px;
  background: radial-gradient(circle, #d09070 0%, #b07050 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #d09070;
  animation: fcc-flower 4s ease-in-out infinite;
}
.scn-fenton-comes-courting .candle-soft {
  position: absolute; bottom: 30%; right: 20%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #e0b080 0%, #c09060 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 16px 6px #e0b080, 0 0 30px 12px rgba(224,176,128,0.3);
  animation: fcc-candle 4s ease-in-out infinite alternate;
}

@keyframes fcc-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.92 } }
@keyframes fcc-fenton { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(2px) rotate(1deg); } 66% { transform: translateX(0) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fcc-quickly { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-1px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes fcc-flower { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(10deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes fcc-candle { 0% { transform: scaleY(1); opacity: 0.9; box-shadow: 0 0 12px 4px #e0b080; } 100% { transform: scaleY(0.9); opacity: 1; box-shadow: 0 0 20px 8px #f0c090; } }

/* search-fruitless */
.scn-search-fruitless {
  background: 
    linear-gradient(135deg, #d3b48c 0%, #c49a6c 50%, #a87d4a 100%),
    radial-gradient(ellipse at 70% 30%, #e0c69a 0%, transparent 60%);
}
.scn-search-fruitless .wall   { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b59373 0%, #9a7a5a 100%); box-shadow: inset 0 -8px 20px rgba(0,0,0,.15); }
.scn-search-fruitless .floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b6d4b 0%, #6b4f31 100%); }
.scn-search-fruitless .window { position:absolute; top:12%; left:50%; width:100px; height:80px; transform:translateX(-50%); background: radial-gradient(ellipse at 30% 40%, #fdf4d8 0%, #c8b08a 70%, #a8895e 100%); border: 6px solid #6b4f31; border-radius:4px; box-shadow: inset 0 0 20px rgba(255,215,140,.4), 0 4px 12px rgba(0,0,0,.3); animation: sf-window 6s ease-in-out infinite alternate; }
.scn-search-fruitless .table  { position:absolute; bottom:32%; left:30%; width:60px; height:12px; background: linear-gradient(135deg, #7a5c3a 0%, #5a3d20 100%); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-search-fruitless .shadow { position:absolute; bottom:32%; left:45%; width:40px; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%); animation: sf-shadow 1.5s ease-in-out infinite alternate; }
.scn-search-fruitless .figure{ position:absolute; bottom:30%; left:40%; width:24px; height:50px; background: linear-gradient(180deg, #2a1e12 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sf-figure 2s ease-in-out infinite; }
.scn-search-fruitless .candle{ position:absolute; bottom:38%; left:48%; width:8px; height:18px; background: linear-gradient(180deg, #f0d080 0%, #c8913c 100%); border-radius:2px; box-shadow: 0 0 12px 4px #f0b040, 0 0 24px 8px rgba(240,176,64,.3); animation: sf-candle 1.5s ease-in-out infinite alternate; }
@keyframes sf-window   { 0% { opacity:.9; transform:translateX(-50%) scaleX(1); } 50% { opacity:1; transform:translateX(-50%) scaleX(1.02); } 100% { opacity:.85; transform:translateX(-50%) scaleX(0.98); } }
@keyframes sf-shadow   { 0% { opacity:.2; transform:translateX(0); } 100% { opacity:.5; transform:translateX(10px); } }
@keyframes sf-figure   { 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 sf-candle   { 0% { transform:rotate(-1deg) scaleY(1); box-shadow: 0 0 8px 2px #f0b040; } 50% { transform:rotate(1deg) scaleY(1.05); box-shadow: 0 0 16px 6px #f0d060; } 100% { transform:rotate(-0.5deg) scaleY(0.95); box-shadow: 0 0 12px 4px #f0b040; } }

/* no-bodies-france */
.scn-no-bodies-france {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #e8d4ac 40%, #d4b894 100%),
    radial-gradient(ellipse at 20% 80%, #fcebd0 0%, transparent 60%);
}
.scn-no-bodies-france .bg          { position:absolute; inset:0; background: linear-gradient(135deg, #eddaa9 0%, #d6bf8a 50%, #b89f67 100%); }
.scn-no-bodies-france .table-large { position:absolute; bottom:20%; left:25%; right:25%; height:18%; background: linear-gradient(180deg, #a08050 0%, #7a6030 100%); border-radius:6px; box-shadow: 0 -4px 8px rgba(0,0,0,.3); }
.scn-no-bodies-france .figure-left { position:absolute; bottom:32%; left:22%; width:30px; height:60px; background: linear-gradient(180deg, #4a3530 0%, #2a1f1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nbf-figL 1.8s ease-in-out infinite; }
.scn-no-bodies-france .figure-right{ position:absolute; bottom:32%; right:22%; width:28px; height:55px; background: linear-gradient(180deg, #3a4045 0%, #1a2025 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nbf-figR 2s ease-in-out infinite; }
.scn-no-bodies-france .hat-left   { position:absolute; bottom:48%; left:19%; width:22px; height:12px; background: #3a2a1a; border-radius:50% 50% 20% 20%; transform:rotate(-10deg); animation: nbf-hatL 1.8s ease-in-out infinite; }
.scn-no-bodies-france .hat-right  { position:absolute; bottom:48%; right:18%; width:20px; height:10px; background: #2a3a2a; border-radius:50% 50% 20% 20%; transform:rotate(8deg); animation: nbf-hatR 2s ease-in-out infinite; }
.scn-no-bodies-france .feather    { position:absolute; bottom:56%; left:20%; width:6px; height:20px; background: linear-gradient(180deg, #d6a060 0%, #b07040 100%); border-radius:50% 50% 0 0; transform:rotate(-25deg); animation: nbf-feather 2.4s ease-in-out infinite alternate; }
@keyframes nbf-figL   { 0% { transform:translateX(0) translateY(0) rotate(0); } 25% { transform:translateX(5px) translateY(-3px) rotate(4deg); } 50% { transform:translateX(10px) translateY(0) rotate(-2deg); } 75% { transform:translateX(5px) translateY(-2px) rotate(3deg); } 100% { transform:translateX(0) translateY(0) rotate(0); } }
@keyframes nbf-figR   { 0% { transform:translateX(0) translateY(0) rotate(0); } 25% { transform:translateX(-4px) translateY(-2px) rotate(-3deg); } 50% { transform:translateX(-8px) translateY(0) rotate(2deg); } 75% { transform:translateX(-4px) translateY(-3px) rotate(-4deg); } 100% { transform:translateX(0) translateY(0) rotate(0); } }
@keyframes nbf-hatL   { 0% { transform:translateY(0) rotate(-10deg); } 50% { transform:translateY(-3px) rotate(-5deg); } 100% { transform:translateY(0) rotate(-10deg); } }
@keyframes nbf-hatR   { 0% { transform:translateY(0) rotate(8deg); } 50% { transform:translateY(-2px) rotate(3deg); } 100% { transform:translateY(0) rotate(8deg); } }
@keyframes nbf-feather{ 0% { transform:rotate(-25deg) scaleY(1); } 100% { transform:rotate(-35deg) scaleY(1.2); } }

/* pardon-birding */
.scn-pardon-birding {
  background: 
    linear-gradient(180deg, #f2e2ce 0%, #e0c8ae 50%, #c6a88a 100%),
    radial-gradient(ellipse at 60% 40%, #fff5e8 0%, transparent 70%);
}
.scn-pardon-birding .wall-warm { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #dac2a8 0%, #bca082 100%); box-shadow: inset 0 -6px 12px rgba(0,0,0,.1); }
.scn-pardon-birding .window-sun { position:absolute; top:12%; left:50%; width:120px; height:90px; transform:translateX(-50%); background: radial-gradient(ellipse at 60% 30%, #fffae0 0%, #e6d4b0 60%, #c6a88a 100%); border: 6px solid #8a6a4a; border-radius:4px; box-shadow: inset 0 0 30px rgba(255,235,180,.5), 0 4px 12px rgba(0,0,0,.2); animation: pb-window 8s ease-in-out infinite alternate; }
.scn-pardon-birding .sill      { position:absolute; top:33%; left:45%; right:45%; height:6px; background: #8a6a4a; border-radius:2px; }
.scn-pardon-birding .cage      { position:absolute; bottom:32%; left:48%; width:40px; height:50px; transform:translateX(-50%); border:3px solid #7a6a4a; border-radius:8px 8px 4px 4px; background: radial-gradient(ellipse at 50% 30%, #d4b890 0%, transparent 70%); box-shadow: 0 2px 8px rgba(0,0,0,.2); }
.scn-pardon-birding .bird      { position:absolute; bottom:42%; left:49%; width:12px; height:10px; background: radial-gradient(ellipse, #f0d060 0%, #c89030 100%); border-radius:50%; animation: pb-bird 3s ease-in-out infinite; }
.scn-pardon-birding .sunbeam   { position:absolute; top:12%; left:25%; width:60px; height:200px; background: linear-gradient(180deg, rgba(255,245,200,.25) 0%, rgba(255,245,200,0) 100%); transform:rotate(-15deg); filter: blur(8px); animation: pb-beam 9s ease-in-out infinite alternate; }
.scn-pardon-birding .pot-plant { position:absolute; bottom:30%; left:30%; width:20px; height:30px; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius:0 0 8px 8px; box-shadow: 0 2px 6px rgba(0,0,0,.2); }
@keyframes pb-window { 0% { opacity:.9; transform:translateX(-50%) scale(1); } 50% { opacity:1; transform:translateX(-50%) scale(1.01); } 100% { opacity:.85; transform:translateX(-50%) scale(0.99); } }
@keyframes pb-bird   { 0% { transform:translateY(0) rotate(0); } 25% { transform:translateY(-4px) rotate(-6deg); } 50% { transform:translateY(-2px) rotate(4deg); } 75% { transform:translateY(-5px) rotate(-2deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes pb-beam   { 0% { opacity:.3; transform:rotate(-15deg) translateX(0); } 50% { opacity:.6; transform:rotate(-12deg) translateX(5px); } 100% { opacity:.4; transform:rotate(-18deg) translateX(-3px); } }

/* lousy-knave-host */
.scn-lousy-knave-host {
  background: 
    linear-gradient(135deg, #d6b080 0%, #c49a6c 40%, #a87d4a 100%),
    radial-gradient(ellipse at 80% 60%, #e2c89a 0%, transparent 60%);
}
.scn-lousy-knave-host .tavern-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #b59373 0%, #8a6a4a 100%); box-shadow: inset 0 -8px 16px rgba(0,0,0,.2); }
.scn-lousy-knave-host .barrel      { position:absolute; bottom:28%; left:12%; width:30px; height:40px; background: linear-gradient(135deg, #6b4f31 0%, #4a3520 100%); border-radius:50% 50% 40% 40% / 30% 30% 30% 30%; box-shadow: 2px 2px 6px rgba(0,0,0,.3); }
.scn-lousy-knave-host .host-figure { position:absolute; bottom:30%; left:40%; width:28px; height:55px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2215 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lkh-host 2.5s ease-in-out infinite; }
.scn-lousy-knave-host .guest-figure{ position:absolute; bottom:30%; right:35%; width:26px; height:50px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lkh-guest 1.8s ease-in-out infinite; }
.scn-lousy-knave-host .mug         { position:absolute; bottom:34%; left:35%; width:14px; height:16px; background: linear-gradient(135deg, #c8a060 0%, #725024 100%); border-radius:2px 2px 6px 6px; animation: lkh-mug 2s ease-in-out infinite alternate; }
.scn-lousy-knave-host .stool       { position:absolute; bottom:25%; right:40%; width:16px; height:20px; background: linear-gradient(180deg, #5a4030 0%, #2a2015 100%); border-radius:4px; }
.scn-lousy-knave-host .lantern-l   { position:absolute; top:18%; left:20%; width:10px; height:14px; background: radial-gradient(circle, #f0d080 0%, #a07030 100%); border-radius:4px; box-shadow: 0 0 20px 6px rgba(240,208,128,.4); animation: lkh-lantern 3s ease-in-out infinite alternate; }
.scn-lousy-knave-host .lantern-r   { position:absolute; top:18%; right:20%; width:10px; height:14px; background: radial-gradient(circle, #f0d080 0%, #a07030 100%); border-radius:4px; box-shadow: 0 0 20px 6px rgba(240,208,128,.4); animation: lkh-lantern 3s ease-in-out infinite alternate-reverse; }
@keyframes lkh-host   { 0% { transform:translateX(0) translateY(0) rotate(0); } 25% { transform:translateX(4px) translateY(-2px) rotate(3deg); } 50% { transform:translateX(8px) translateY(0) rotate(-2deg); } 75% { transform:translateX(4px) translateY(-3px) rotate(4deg); } 100% { transform:translateX(0) translateY(0) rotate(0); } }
@keyframes lkh-guest  { 0% { transform:translateX(0) translateY(0) rotate(0); } 25% { transform:translateX(-3px) translateY(-1px) rotate(-2deg); } 50% { transform:translateX(-6px) translateY(0) rotate(1deg); } 75% { transform:translateX(-3px) translateY(-2px) rotate(-3deg); } 100% { transform:translateX(0) translateY(0) rotate(0); } }
@keyframes lkh-mug    { 0% { transform:rotate(-5deg) translateX(0); } 50% { transform:rotate(5deg) translateX(2px); } 100% { transform:rotate(-5deg) translateX(-1px); } }
@keyframes lkh-lantern{ 0% { opacity:.7; box-shadow: 0 0 12px 2px rgba(240,208,128,.3); } 50% { opacity:1; box-shadow: 0 0 28px 8px rgba(240,208,128,.6); } 100% { opacity:.8; box-shadow: 0 0 18px 4px rgba(240,208,128,.4); } }

/* sword-and-word-again */
.scn-sword-and-word-again {
  background:
    linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 50%, #2a3a2a 100%) 0 0 / 100% 100%,
    radial-gradient(ellipse at 60% 20%, #5a6a5a 0%, transparent 60%);
}
.scn-sword-and-word-again .wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #5a6a5a 0%, #4a5a4a 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,.3);
  animation: sw1-wall 20s ease-in-out infinite alternate;
}
.scn-sword-and-word-again .desk {
  position:absolute; bottom:18%; left:10%; right:10%; height:30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
}
.scn-sword-and-word-again .book-left {
  position:absolute; bottom:30%; left:20%; width:50px; height:35px;
  background: linear-gradient(135deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 4px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: sw1-book 6s ease-in-out infinite;
}
.scn-sword-and-word-again .book-right {
  position:absolute; bottom:32%; left:45%; width:60px; height:40px;
  background: linear-gradient(135deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 4px;
  transform: rotate(3deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: sw1-book 6s ease-in-out infinite reverse;
}
.scn-sword-and-word-again .dice {
  position:absolute; bottom:28%; left:55%; width:12px; height:12px;
  background: #b0a090;
  border-radius: 3px;
  box-shadow: 0 0 0 1px #8a7a6a, 0 2px 4px rgba(0,0,0,.4);
  animation: sw1-dice 2s ease-in-out infinite;
}
.scn-sword-and-word-again .figure.student {
  position:absolute; bottom:20%; left:30%; width:20px; height:50px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sw1-fig-student 4s ease-in-out infinite;
}
.scn-sword-and-word-again .figure.parson {
  position:absolute; bottom:20%; right:20%; width:22px; height:55px;
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sw1-fig-parson 5s ease-in-out infinite;
}
.scn-sword-and-word-again .lamp {
  position:absolute; top:16%; left:50%; width:8px; height:40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 8px #b0a090;
}
.scn-sword-and-word-again .lamp::after {
  content:''; position:absolute; bottom:0; left:-10px; right:-10px; height:14px;
  background: radial-gradient(circle at 50% 100%, #f0e0c0 0%, transparent 60%);
  border-radius: 50%;
  animation: sw1-lamp-glow 3s ease-in-out infinite alternate;
}
@keyframes sw1-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes sw1-book { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } }
@keyframes sw1-dice { 0% { transform: translate(0,0) rotate(0) } 25% { transform: translate(3px,-2px) rotate(90deg) } 50% { transform: translate(-2px,1px) rotate(180deg) } 75% { transform: translate(4px,0) rotate(270deg) } 100% { transform: translate(0,0) rotate(360deg) } }
@keyframes sw1-fig-student { 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(3deg) } }
@keyframes sw1-fig-parson { 0%,100% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-3px) rotate(-3deg) } }
@keyframes sw1-lamp-glow { 0% { opacity:.5; transform: scaleY(1) } 100% { opacity:1; transform: scaleY(1.2) } }

/* doublet-and-hose */
.scn-doublet-and-hose {
  background:
    linear-gradient(180deg, #5a6a5a 0%, #4a5a4a 50%, #3a4a3a 100%) 0 0 / 100% 100%,
    radial-gradient(ellipse at 50% 0%, #6a7a6a 0%, transparent 70%);
}
.scn-doublet-and-hose .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #6a7a6a 0%, #5a6a5a 100%);
  animation: dh2-sky 15s ease-in-out infinite alternate;
}
.scn-doublet-and-hose .rain-1 {
  position:absolute; inset:0;
  background: repeating-linear-gradient(45deg, rgba(180,200,200,.1) 0px, rgba(180,200,200,.1) 2px, transparent 2px, transparent 8px);
  animation: dh2-rain 1.5s linear infinite;
}
.scn-doublet-and-hose .rain-2 {
  position:absolute; inset:0;
  background: repeating-linear-gradient(-45deg, rgba(200,220,220,.08) 0px, rgba(200,220,220,.08) 1px, transparent 1px, transparent 7px);
  animation: dh2-rain 1.6s linear infinite reverse;
}
.scn-doublet-and-hose .figure.walking {
  position:absolute; bottom:20%; left:20%; width:24px; height:60px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dh2-walk 2s ease-in-out infinite;
}
.scn-doublet-and-hose .doublet {
  position:absolute; bottom:40%; left:calc(20% - 8px); width:40px; height:30px;
  background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform: translateX(0);
  animation: dh2-shoulder 2s ease-in-out infinite;
}
.scn-doublet-and-hose .hose {
  position:absolute; bottom:30%; left:calc(20% - 3px); width:6px; height:20px;
  background: #4a5a4a;
  border-radius: 2px;
  transform: translateX(0);
  animation: dh2-leg 2s ease-in-out infinite;
}
.scn-doublet-and-hose .cloud.dark {
  position:absolute; top:8%; left:10%; width:100px; height:24px;
  background: linear-gradient(180deg, rgba(80,90,80,.6) 0%, rgba(60,70,60,.2) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: dh2-drift 40s linear infinite;
}
.scn-doublet-and-hose .cloud.light {
  position:absolute; top:16%; right:8%; width:80px; height:18px;
  background: linear-gradient(180deg, rgba(160,170,160,.4) 0%, rgba(120,130,120,.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: dh2-drift 30s linear infinite reverse;
}
@keyframes dh2-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes dh2-rain { 0% { background-position: 0 0 } 100% { background-position: 10px 20px } }
@keyframes dh2-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(30px) translateY(0) rotate(0) } }
@keyframes dh2-shoulder { 0%,100% { transform: translateX(0) } 50% { transform: translateX(4px) } }
@keyframes dh2-leg { 0%,100% { transform: rotate(0) } 50% { transform: rotate(10deg) } }
@keyframes dh2-drift { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }

/* doctor-caius-knave */
.scn-doctor-caius-knave {
  background:
    linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 50%, #1a2a2a 100%) 0 0 / 100% 100%,
    radial-gradient(ellipse at 30% 50%, #4a5a5a 0%, transparent 60%);
}
.scn-doctor-caius-knave .bg {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
  animation: ck3-bg 12s ease-in-out infinite alternate;
}
.scn-doctor-caius-knave .bookshelf {
  position:absolute; bottom:30%; left:5%; right:5%; height:35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
.scn-doctor-caius-knave .doctor.hat {
  position:absolute; bottom:45%; left:25%; width:30px; height:25px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform: rotate(-5deg);
  animation: ck3-hat 4s ease-in-out infinite;
}
.scn-doctor-caius-knave .doctor.coat {
  position:absolute; bottom:20%; left:23%; width:24px; height:55px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: ck3-coat 4s ease-in-out infinite;
}
.scn-doctor-caius-knave .knave.cape {
  position:absolute; bottom:20%; left:55%; width:28px; height:60px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ck3-cape 4.5s ease-in-out infinite;
}
.scn-doctor-caius-knave .finger.pointer {
  position:absolute; bottom:35%; left:48%; width:4px; height:18px;
  background: #6a5a4a;
  border-radius: 50% 50% 0 0;
  transform: rotate(15deg);
  animation: ck3-point 3s ease-in-out infinite;
}
.scn-doctor-caius-knave .glasses {
  position:absolute; bottom:50%; left:30%; width:14px; height:6px;
  background: transparent;
  border: 2px solid #6a5a4a;
  border-radius: 50%;
  box-shadow: 0 0 0 2px #6a5a4a;
  animation: ck3-glasses 5s ease-in-out infinite;
}
@keyframes ck3-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ck3-hat { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes ck3-coat { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(-2deg) } }
@keyframes ck3-cape { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-3px) rotate(2deg) } }
@keyframes ck3-point { 0% { transform: rotate(10deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(10deg) } }
@keyframes ck3-glasses { 0%,100% { opacity:.8 } 50% { opacity:1 } }

/* disarm-let-question */
.scn-disarm-let-question {
  background:
    linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 50%, #2a3a2a 100%) 0 0 / 100% 100%,
    radial-gradient(ellipse at 50% 60%, #5a6a5a 0%, transparent 70%);
}
.scn-disarm-let-question .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
}
.scn-disarm-let-question .host {
  position:absolute; bottom:20%; left:15%; width:26px; height:55px;
  background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dq4-host 4s ease-in-out infinite;
}
.scn-disarm-let-question .caius {
  position:absolute; bottom:20%; left:38%; width:24px; height:52px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dq4-caius 3.5s ease-in-out infinite;
}
.scn-disarm-let-question .rugby {
  position:absolute; bottom:20%; right:15%; width:28px; height:58px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dq4-rugby 4.2s ease-in-out infinite;
}
.scn-disarm-let-question .blade-1 {
  position:absolute; bottom:35%; left:25%; width:2px; height:40px;
  background: radial-gradient(ellipse at 50% 0%, #b0a090 0%, #7a6a5a 100%);
  border-radius: 0 0 30% 30%;
  transform: rotate(20deg);
  box-shadow: 0 0 4px #b0a090;
  animation: dq4-blade 2s ease-in-out infinite;
}
.scn-disarm-let-question .blade-2 {
  position:absolute; bottom:35%; left:45%; width:2px; height:38px;
  background: radial-gradient(ellipse at 50% 0%, #b0a090 0%, #7a6a5a 100%);
  border-radius: 0 0 30% 30%;
  transform: rotate(-15deg);
  box-shadow: 0 0 4px #b0a090;
  animation: dq4-blade 2s ease-in-out infinite reverse;
}
.scn-disarm-let-question .spark {
  position:absolute; bottom:45%; left:35%; width:6px; height:6px;
  background: #f0e0c0;
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(240,224,192,.5);
  animation: dq4-spark 2s ease-in-out infinite;
}
@keyframes dq4-host { 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(5px) rotate(3deg) } }
@keyframes dq4-caius { 0%,100% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-4px) rotate(-3deg) } }
@keyframes dq4-rugby { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(-4deg) } }
@keyframes dq4-blade { 0% { transform: rotate(20deg) scaleY(1) } 25% { transform: rotate(20deg) scaleY(1.1) } 50% { transform: rotate(20deg) scaleY(1) } 75% { transform: rotate(20deg) scaleY(0.9) } 100% { transform: rotate(20deg) scaleY(1) } }
@keyframes dq4-spark { 0% { opacity:0; transform: scale(0.5) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:0; transform: scale(0.5) } }

.scn-reason-and-marriage { background: linear-gradient(135deg, #2a1f14 0%, #3d2b1a 40%, #1e1510 100%), radial-gradient(ellipse at 40% 60%, #4a3828 0%, transparent 80%); }
.scn-reason-and-marriage .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a2818 0%, #2a1a0e 100%); border-bottom: 2px solid #4a3824; }
.scn-reason-and-marriage .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1e150e 0%, #120c08 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,.6); }
.scn-reason-and-marriage .window-warm { position:absolute; top:12%; left:60%; width:28%; height:38%; background: radial-gradient(ellipse at 50% 40%, #c8a878 0%, #8a6a40 40%, #3a2818 100%); border-radius: 12% 12% 4% 4%; box-shadow: inset 0 0 40px #2a1a0e, 0 0 60px rgba(200,168,120,.15); animation: ram-win 6s ease-in-out infinite alternate; }
.scn-reason-and-marriage .table { position:absolute; bottom:28%; left:25%; width:50%; height:14%; background: linear-gradient(180deg, #5a3e28 0%, #3a2818 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 8px 16px rgba(0,0,0,.5); transform: perspective(400px) rotateX(6deg); }
.scn-reason-and-marriage .candle { position:absolute; bottom:36%; left:48%; width:6px; height:18px; background: linear-gradient(180deg, #e8d0a8 0%, #b89060 100%); border-radius: 40%; box-shadow: 0 0 20px 6px #d0a870, 0 0 50px 12px rgba(208,168,112,.3); animation: ram-candle 2s ease-in-out infinite alternate; }
.scn-reason-and-marriage .suitors { position:absolute; bottom:16%; width:14%; height:40%; background: linear-gradient(180deg, #4a3828 0%, #2a1a0e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ram-bow 5s ease-in-out infinite; }
.scn-reason-and-marriage .suitor-a { left:28%; animation-delay: 0s; }
.scn-reason-and-marriage .suitor-b { left:56%; animation-delay: 1.2s; }
.scn-reason-and-marriage .maid { position:absolute; bottom:18%; left:44%; width:10%; height:38%; background: linear-gradient(180deg, #6a4a38 0%, #3a2820 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ram-curtsey 4s ease-in-out infinite; }
@keyframes ram-win { 0% { opacity:.7; filter: brightness(.9); } 50% { opacity:1; filter: brightness(1.1); } 100% { opacity:.8; filter: brightness(.95); } }
@keyframes ram-candle { 0% { transform: translateY(0) scaleY(1); opacity:.8; } 50% { transform: translateY(-2px) scaleY(1.08); opacity:1; } 100% { transform: translateY(0) scaleY(.95); opacity:.85; } }
@keyframes ram-bow { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(-6deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(6deg); } }
@keyframes ram-curtsey { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(-3deg); } 60% { transform: translateY(0) rotate(2deg); } }

.scn-dissolutely-resolutely { background: linear-gradient(180deg, #1e1410 0%, #2a1e14 30%, #1a1210 100%), radial-gradient(ellipse at 50% 70%, #3a2818 0%, transparent 70%); }
.scn-dissolutely-resolutely .bg-panel { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #3a2a1e 0%, #281a12 50%, #1a100a 100%); border-bottom: 3px solid #4a3422; }
.scn-dissolutely-resolutely .floor-dark { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #140e0a 0%, #0a0806 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.7); }
.scn-dissolutely-resolutely .hearth { position:absolute; bottom:18%; left:40%; width:20%; height:30%; background: linear-gradient(180deg, #4a3422 0%, #2a1a10 100%); border-radius: 50% 50% 10% 10% / 40% 40% 10% 10%; box-shadow: inset 0 -20px 30px #0a0806; }
.scn-dissolutely-resolutely .fire-glow { position:absolute; bottom:24%; left:46%; width:8%; height:18%; background: radial-gradient(ellipse at 50% 60%, #e8a040 0%, #c06020 40%, #8a3010 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 16px #d08030, 0 0 80px 30px rgba(208,128,48,.25); animation: dr-fire 1.5s ease-in-out infinite alternate; }
.scn-dissolutely-resolutely .speaker { position:absolute; bottom:10%; left:30%; width:16%; height:48%; background: linear-gradient(180deg, #3a2820 0%, #1e1410 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: 45% 90%; animation: dr-speak 3s ease-in-out infinite; }
.scn-dissolutely-resolutely .arm-sweep { position:absolute; bottom:24%; left:38%; width:22%; height:8%; background: linear-gradient(135deg, #4a3428 0%, #2a1e16 100%); border-radius: 60% 20% 60% 20%; transform-origin: 0% 50%; animation: dr-arm 3.5s ease-in-out infinite alternate; }
.scn-dissolutely-resolutely .rug { position:absolute; bottom:6%; left:20%; width:60%; height:14%; background: linear-gradient(135deg, #5a3a2a 0%, #3a2818 25%, #5a3a2a 50%, #3a2818 75%, #5a3a2a 100%); border-radius: 30% 30% 10% 10% / 60% 60% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: dr-rug 8s ease-in-out infinite alternate; }
@keyframes dr-fire { 0% { transform: scaleY(.9) translateY(2px); opacity:.85; } 50% { transform: scaleY(1.1) translateY(-3px); opacity:1; } 100% { transform: scaleY(.95) translateY(0); opacity:.9; } }
@keyframes dr-speak { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(6px) rotate(4deg); } 50% { transform: translateX(-3px) rotate(-2deg); } 75% { transform: translateX(4px) rotate(3deg); } }
@keyframes dr-arm { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(30deg) scaleX(1.1); } 100% { transform: rotate(-10deg) scaleX(.95); } }
@keyframes dr-rug { 0% { filter: brightness(.9); } 50% { filter: brightness(1.1); } 100% { filter: brightness(.95); } }

.scn-anne-returns { background: linear-gradient(180deg, #2a1e14 0%, #3d2b1a 40%, #1e1510 100%), radial-gradient(ellipse at 40% 50%, #5a4030 0%, transparent 80%); }
.scn-anne-returns .wall-warm { position:absolute; inset:0 0 28% 0; background: linear-gradient(180deg, #4a3422 0%, #3a2818 50%, #2a1a0e 100%); border-bottom: 2px solid #5a4030; }
.scn-anne-returns .doorway { position:absolute; bottom:10%; left:24%; width:24%; height:70%; background: linear-gradient(180deg, #1a120e 0%, #0e0a08 100%); border-radius: 6% 6% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.8); }
.scn-anne-returns .door-open { position:absolute; bottom:10%; left:18%; width:20%; height:65%; background: linear-gradient(180deg, #3a2818 0%, #2a1a10 100%); border-radius: 0 6% 0 0; transform: perspective(600px) rotateY(30deg); transform-origin: left center; animation: ar-door 2s ease-in-out infinite alternate; }
.scn-anne-returns .anne-figure { position:absolute; bottom:14%; left:34%; width:10%; height:42%; background: linear-gradient(180deg, #6a5040 0%, #4a3428 60%, #2a1e18 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: ar-enter 6s ease-in-out infinite; }
.scn-anne-returns .dress-skirt { position:absolute; bottom:10%; left:32%; width:14%; height:16%; background: linear-gradient(180deg, #7a5a48 0%, #5a3a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: top center; animation: ar-swish 4s ease-in-out infinite; }
.scn-anne-returns .table-food { position:absolute; bottom:22%; left:56%; width:28%; height:12%; background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 8px 20px rgba(0,0,0,.5); }
.scn-anne-returns .plate { position:absolute; bottom:24%; left:62%; width:10%; height:4%; background: radial-gradient(ellipse, #c8a878 0%, #a08050 60%, #7a6038 100%); border-radius: 40%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-anne-returns .window-light { position:absolute; top:10%; right:8%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 40%, #e8d0a8 0%, #b89060 50%, #4a3422 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 0 50px 16px rgba(200,168,120,.12); animation: ar-light 5s ease-in-out infinite alternate; }
.scn-anne-returns .glow-plate { animation: ar-plate 3s ease-in-out infinite alternate; }
@keyframes ar-door { 0% { transform: perspective(600px) rotateY(25deg); } 50% { transform: perspective(600px) rotateY(30deg); } 100% { transform: perspective(600px) rotateY(22deg); } }
@keyframes ar-enter { 0% { transform: translateX(-10px) rotate(0deg); opacity:.7; } 30% { transform: translateX(0) rotate(-2deg); opacity:1; } 70% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(-6px) rotate(0deg); } }
@keyframes ar-swish { 0%,100% { transform: rotate(0deg) scaleX(1); } 25% { transform: rotate(-4deg) scaleX(1.03); } 50% { transform: rotate(2deg) scaleX(.97); } 75% { transform: rotate(-2deg) scaleX(1.02); } }
@keyframes ar-light { 0% { opacity:.8; filter: brightness(.9); } 50% { opacity:1; filter: brightness(1.1); } 100% { opacity:.85; filter: brightness(.95); } }
@keyframes ar-plate { 0%,100% { box-shadow: 0 2px 4px rgba(0,0,0,.2); } 50% { box-shadow: 0 4px 12px rgba(200,168,120,.3); } }

.scn-slender-stays-outside { background: linear-gradient(180deg, #87a8c8 0%, #b0c8e0 30%, #d4e0e8 60%, #c0d0d8 100%), radial-gradient(ellipse at 50% 0%, #d4e0e8 0%, transparent 60%); }
.scn-slender-stays-outside .sky-bright { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a0c0e0 0%, #c8d8e8 50%, #e0e8f0 100%); animation: sl-sky 12s ease-in-out infinite alternate; }
.scn-slender-stays-outside .ground-path { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a9a6a 0%, #7a8a5a 30%, #6a7a4a 70%, #5a6a3a 100%); border-radius: 60% 40% 0 0 / 20% 20% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.15); }
.scn-slender-stays-outside .building-wall { position:absolute; bottom:18%; left:10%; width:50%; height:60%; background: linear-gradient(180deg, #c8b8a0 0%, #a89078 30%, #908070 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -8px 30px rgba(0,0,0,.1); }
.scn-slender-stays-outside .doorway-arch { position:absolute; bottom:10%; left:24%; width:22%; height:52%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.4); }
.scn-slender-stays-outside .door-open-inner { position:absolute; bottom:10%; left:26%; width:12%; height:46%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 0 10% 0 0; transform: perspective(400px) rotateY(-40deg); transform-origin: right center; animation: sl-door 4s ease-in-out infinite alternate; }
.scn-slender-stays-outside .slender-figure { position:absolute; bottom:14%; left:46%; width:10%; height:46%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: sl-fidget 3s ease-in-out infinite; }
.scn-slender-stays-outside .hat-shadow { position:absolute; bottom:48%; left:44%; width:14%; height:8%; background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 80%); border-radius: 50%; transform: rotate(-10deg); animation: sl-hat 2.5s ease-in-out infinite alternate; }
.scn-slender-stays-outside .tree { position:absolute; bottom:24%; width:6%; height:50%; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius: 10% 10% 0 0 / 60% 60% 0 0; filter: blur(2px); }
.scn-slender-stays-outside .tree-a { left:6%; height:56%; animation: sl-tree 18s ease-in-out infinite alternate; }
.scn-slender-stays-outside .tree-b { right:8%; height:44%; animation: sl-tree 22s ease-in-out infinite alternate-reverse; }
@keyframes sl-sky { 0% { opacity:.8; filter: brightness(.95); } 50% { opacity:1; filter: brightness(1.05); } 100% { opacity:.85; filter: brightness(.98); } }
@keyframes sl-door { 0% { transform: perspective(400px) rotateY(-35deg); } 50% { transform: perspective(400px) rotateY(-42deg); } 100% { transform: perspective(400px) rotateY(-38deg); } }
@keyframes sl-fidget { 0%,100% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(3px) rotate(2deg); } 40% { transform: translateX(-2px) rotate(-1deg); } 60% { transform: translateX(4px) rotate(3deg); } 80% { transform: translateX(-1px) rotate(-2deg); } }
@keyframes sl-hat { 0% { transform: rotate(-8deg) translateX(0); } 50% { transform: rotate(-12deg) translateX(2px); } 100% { transform: rotate(-6deg) translateX(-1px); } }
@keyframes sl-tree { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* ----- falstaff-expected (tense, sunlit) ----- */
.scn-falstaff-expected {
  background:
    linear-gradient(180deg, #e8dbb8 0%, #c4b48a 40%, #9a8a6a 100%),
    radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.3) 0%, transparent 60%);
}
.scn-falstaff-expected .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #d6c59e 0%, #b8a882 100%);
  animation: fe1-wall 12s ease-in-out infinite alternate;
}
.scn-falstaff-expected .floor {
  position: absolute; bottom: 0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
}
.scn-falstaff-expected .window {
  position: absolute; top: 12%; left: 30%; width: 100px; height: 140px;
  background: linear-gradient(180deg, #cce4ff 0%, #a0c8f0 100%);
  border: 6px solid #6a5a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(200,200,255,0.4);
  animation: fe1-window 8s ease-in-out infinite alternate;
}
.scn-falstaff-expected .sunbeam {
  position: absolute; top: 12%; left: 30%; width: 20px; height: 160%;
  background: linear-gradient(180deg, rgba(255,240,180,0.4) 0%, transparent 100%);
  transform: rotate(-15deg);
  transform-origin: top left;
  filter: blur(4px);
  animation: fe1-beam 6s ease-in-out infinite alternate;
}
.scn-falstaff-expected .table {
  position: absolute; bottom: 20%; left: 42%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #8a7040 0%, #6a5030 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-falstaff-expected .chair {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #7a6030 0%, #5a4020 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(2deg);
  animation: fe1-chair 5s ease-in-out infinite;
}
.scn-falstaff-expected .figure {
  position: absolute; bottom: 22%; left: 35%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fe1-figure 4s ease-in-out infinite;
}
.scn-falstaff-expected .shadow {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: fe1-shadow 4s ease-in-out infinite;
}
@keyframes fe1-wall { 0% { background-color: #d6c59e; transform: scaleY(1); } 50% { background-color: #c4b48a; transform: scaleY(1.01); } 100% { background-color: #d6c59e; transform: scaleY(1); } }
@keyframes fe1-window { 0% { opacity: 0.9; box-shadow: inset 0 0 20px rgba(200,200,255,0.3); } 50% { opacity: 1; box-shadow: inset 0 0 40px rgba(200,200,255,0.6); } 100% { opacity: 0.9; box-shadow: inset 0 0 20px rgba(200,200,255,0.3); } }
@keyframes fe1-beam { 0% { opacity: 0.7; transform: rotate(-15deg) translateX(0); } 50% { opacity: 1; transform: rotate(-13deg) translateX(2px); } 100% { opacity: 0.7; transform: rotate(-15deg) translateX(0); } }
@keyframes fe1-chair { 0%, 100% { transform: rotate(2deg) translateY(0); } 25% { transform: rotate(-1deg) translateY(-2px); } 50% { transform: rotate(3deg) translateY(0); } 75% { transform: rotate(0deg) translateY(-1px); } }
@keyframes fe1-figure { 0%, 100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } }
@keyframes fe1-shadow { 0%, 100% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.3; transform: scaleX(0.9); } }

/* ----- falstaff-confrontation (tense, sunlit) ----- */
.scn-falstaff-confrontation {
  background:
    linear-gradient(180deg, #e0d0a8 0%, #b8a47c 50%, #8a7050 100%),
    radial-gradient(ellipse at 30% 30%, rgba(255,240,180,0.2) 0%, transparent 70%);
}
.scn-falstaff-confrontation .bg-room {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #d4be94 0%, #a89068 100%);
  animation: fc1-room 10s ease-in-out infinite alternate;
}
.scn-falstaff-confrontation .floor {
  position: absolute; bottom: 0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #6a5533 0%, #4a3525 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.4);
}
.scn-falstaff-confrontation .doorway {
  position: absolute; top: 10%; right: 10%; width: 70px; height: 120px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%);
  border: 4px solid #5a4a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
  animation: fc1-door 15s ease-in-out infinite alternate;
}
.scn-falstaff-confrontation .table {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #8a7040 0%, #5a4020 100%);
  border-radius: 8px;
  transform: translateX(-50%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-falstaff-confrontation .figure-left {
  position: absolute; bottom: 22%; left: 30%; width: 35px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  transform-origin: bottom center;
  animation: fc1-figL 4s ease-in-out infinite;
}
.scn-falstaff-confrontation .figure-right {
  position: absolute; bottom: 22%; right: 30%; width: 35px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fc1-figR 4s ease-in-out infinite reverse;
}
.scn-falstaff-confrontation .tray {
  position: absolute; bottom: 32%; left: 45%; width: 40px; height: 20px;
  background: linear-gradient(135deg, #b8a080 0%, #8a6a4a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: fc1-tray 6s ease-in-out infinite;
}
@keyframes fc1-room { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes fc1-door { 0%, 100% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.02) translateX(2px); } }
@keyframes fc1-figL { 0%, 100% { transform: scaleX(-1) translateY(0); } 25% { transform: scaleX(-1) translateY(-3px) rotate(-2deg); } 50% { transform: scaleX(-1) translateY(0) rotate(2deg); } 75% { transform: scaleX(-1) translateY(-1px) rotate(-1deg); } }
@keyframes fc1-figR { 0%, 100% { transform: translateY(0); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } }
@keyframes fc1-tray { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.05); } }

/* ----- falstaff-shallow-wit (funny, sunlit) ----- */
.scn-falstaff-shallow-wit {
  background:
    linear-gradient(180deg, #f5ecca 0%, #ddccaa 50%, #b8a47c 100%),
    radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.4) 0%, transparent 70%);
}
.scn-falstaff-shallow-wit .bg-outside {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #e8dbb0 0%, #c4b088 100%);
  animation: fsw1-bg 12s ease-in-out infinite alternate;
}
.scn-falstaff-shallow-wit .ground {
  position: absolute; bottom: 0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #7a8a4a 0%, #5a6a3a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-falstaff-shallow-wit .figure-falstaff {
  position: absolute; bottom: 22%; left: 25%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fsw1-falstaff 3s ease-in-out infinite;
}
.scn-falstaff-shallow-wit .figure-shallow {
  position: absolute; bottom: 22%; right: 25%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  transform-origin: bottom center;
  animation: fsw1-shallow 3.5s ease-in-out infinite reverse;
}
.scn-falstaff-shallow-wit .cabbage {
  position: absolute; bottom: 32%; left: 35%; width: 20px; height: 20px;
  background: radial-gradient(circle at 40% 40%, #a0c070 0%, #608040 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: fsw1-cabbage 2s ease-in-out infinite;
}
.scn-falstaff-shallow-wit .bench {
  position: absolute; bottom: 20%; left: 20%; width: 70px; height: 10px;
  background: linear-gradient(180deg, #8a7a50 0%, #5a4a30 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: fsw1-bench 6s ease-in-out infinite alternate;
}
.scn-falstaff-shallow-wit .leaf {
  position: absolute; top: 30%; left: 60%; width: 15px; height: 8px;
  background: radial-gradient(ellipse at 50% 50%, #a0c050 0%, #709030 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: fsw1-leaf 8s linear infinite;
}
@keyframes fsw1-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes fsw1-falstaff { 0%, 100% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-4px) rotate(-3deg); } 40% { transform: translateY(0) rotate(2deg); } 60% { transform: translateY(-2px) rotate(-1deg); } 80% { transform: translateY(0) rotate(3deg); } }
@keyframes fsw1-shallow { 0%, 100% { transform: scaleX(-1) translateY(0) rotate(0deg); } 25% { transform: scaleX(-1) translateY(-3px) rotate(2deg); } 50% { transform: scaleX(-1) translateY(0) rotate(-2deg); } 75% { transform: scaleX(-1) translateY(-1px) rotate(1deg); } }
@keyframes fsw1-cabbage { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.1); } }
@keyframes fsw1-bench { 0%, 100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(1.02); } }
@keyframes fsw1-leaf { 0% { transform: translateX(0) rotate(0deg); opacity: 0.6; } 50% { transform: translateX(20px) rotate(180deg); opacity: 1; } 100% { transform: translateX(40px) rotate(360deg); opacity: 0.6; } }

/* ----- slender-head-broken (funny, sunlit) ----- */
.scn-slender-head-broken {
  background:
    linear-gradient(180deg, #f0e4c0 0%, #d4c4a0 50%, #b0a080 100%),
    radial-gradient(ellipse at 40% 30%, rgba(255,240,180,0.2) 0%, transparent 70%);
}
.scn-slender-head-broken .bg-yard {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #e0d0a8 0%, #c4b08a 100%);
}
.scn-slender-head-broken .ground {
  position: absolute; bottom: 0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #6a7a4a 0%, #4a5a2a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-slender-head-broken .figure-slender {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%) scale(1);
  transform-origin: bottom center;
  animation: shb1-figure 4s ease-in-out infinite;
}
.scn-slender-head-broken .bump {
  position: absolute; bottom: 78%; left: 48%; width: 16px; height: 16px;
  background: radial-gradient(circle at 50% 40%, #b04040 0%, #802020 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(128,32,32,0.4);
  animation: shb1-bump 2s ease-in-out infinite;
}
.scn-slender-head-broken .hand {
  position: absolute; bottom: 72%; left: 54%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(30deg);
  transform-origin: top center;
  animation: shb1-hand 2s ease-in-out infinite alternate;
}
.scn-slender-head-broken .shadow {
  position: absolute; bottom: 18%; left: 50%; width: 40px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  transform: translateX(-50%);
  animation: shb1-shadow 4s ease-in-out infinite;
}
@keyframes shb1-figure { 0%, 100% { transform: translateX(-50%) translateY(0); } 25% { transform: translateX(-50%) translateY(-2px); } 50% { transform: translateX(-50%) translateY(0); } 75% { transform: translateX(-50%) translateY(-1px); } }
@keyframes shb1-bump { 0%, 100% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.3); opacity: 1; } }
@keyframes shb1-hand { 0% { transform: rotate(30deg) translateY(0); } 100% { transform: rotate(20deg) translateY(-2px); } }
@keyframes shb1-shadow { 0%, 100% { opacity: 0.4; transform: translateX(-50%) scaleX(1); } 50% { opacity: 0.2; transform: translateX(-50%) scaleX(0.8); } }

/* another-messenger */
.scn-another-messenger { background: linear-gradient(180deg, #3a2a1a 0%, #4a3525 30%, #2a1a0a 70%, #1a0e05 100%), radial-gradient(ellipse at 50% 80%, #4a3525 0%, transparent 60%); }
.scn-another-messenger .room-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:0 0 30% 30%; animation: sc1-bg 8s ease-in-out infinite alternate; }
.scn-another-messenger .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #1a0e05 0%, #2a1a0a 100%); }
.scn-another-messenger .candle { position:absolute; bottom:18%; left:70%; width:8px; height:24px; background: linear-gradient(180deg, #e8d4a8 0%, #c8a868 100%); border-radius:2px 2px 4px 4px; transform-origin: bottom center; animation: sc1-candle 3s ease-in-out infinite; }
.scn-another-messenger .candle-glow { position:absolute; bottom:18%; left:70%; width:40px; height:40px; transform:translate(-50%,-50%); background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%); border-radius:50%; animation: sc1-glow 2s ease-in-out infinite alternate; }
.scn-another-messenger .messenger { position:absolute; bottom:14%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc1-messenger 6s ease-in-out infinite; }
.scn-another-messenger .scroll { position:absolute; bottom:16%; left:28%; width:16px; height:6px; background: linear-gradient(90deg, #d4c4a0 0%, #f0dcc0 50%, #d4c4a0 100%); border-radius:3px; transform: rotate(15deg); animation: sc1-scroll 4s ease-in-out infinite alternate; }
.scn-another-messenger .table { position:absolute; bottom:8%; left:25%; width:80px; height:14px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-another-messenger .shadow { position:absolute; bottom:8%; left:15%; width:100px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); border-radius:50%; animation: sc1-shadow 6s ease-in-out infinite; }
@keyframes sc1-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sc1-candle { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(2deg) } }
@keyframes sc1-glow { 0% { opacity:.6; transform:translate(-50%,-50%) scale(.9) } 50% { opacity:1; transform:translate(-50%,-50%) scale(1.1) } 100% { opacity:.7; transform:translate(-50%,-50%) scale(.95) } }
@keyframes sc1-messenger { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(0) translateY(0) rotate(0) } 75% { transform: translateX(-8px) translateY(-2px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes sc1-scroll { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-2px) } 100% { transform: rotate(20deg) translateY(1px) } }
@keyframes sc1-shadow { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.5; transform: scaleX(1.1) } 100% { opacity:.4; transform: scaleX(.95) } }

/* marvellous-infection */
.scn-marvellous-infection { background: linear-gradient(135deg, #4a2a1a 0%, #3a1a0a 50%, #2a0e00 100%), radial-gradient(ellipse at 60% 30%, #3a1a0a 0%, transparent 70%); }
.scn-marvellous-infection .chamber-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); }
.scn-marvellous-infection .curtain-left { position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 100%); border-radius:0 30% 30% 0; box-shadow: inset -10px 0 20px rgba(0,0,0,.5); animation: sc2-curtain 8s ease-in-out infinite alternate; }
.scn-marvellous-infection .curtain-right { position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 100%); border-radius:30% 0 0 30%; box-shadow: inset 10px 0 20px rgba(0,0,0,.5); animation: sc2-curtain 8s ease-in-out infinite alternate-reverse; }
.scn-marvellous-infection .lady-silhouette { position:absolute; bottom:10%; left:35%; width:40px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc2-lady 5s ease-in-out infinite; }
.scn-marvellous-infection .man-silhouette { position:absolute; bottom:10%; right:35%; width:42px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 50% 50% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: sc2-man 6s ease-in-out infinite; }
.scn-marvellous-infection .cushion { position:absolute; bottom:5%; left:45%; width:50px; height:20px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius:50%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: sc2-cushion 7s ease-in-out infinite; }
.scn-marvellous-infection .love-letter { position:absolute; bottom:22%; left:47%; width:20px; height:14px; background: linear-gradient(135deg, #d4c4a0 0%, #f0e0c0 50%, #c0a880 100%); border-radius:2px; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: sc2-letter 4s ease-in-out infinite; }
.scn-marvellous-infection .sparkle { position:absolute; top:40%; left:50%; width:6px; height:6px; background: #ffd080; border-radius:50%; box-shadow: 0 0 12px 4px #ffd080; animation: sc2-sparkle 3s ease-in-out infinite; }
@keyframes sc2-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(.98) } }
@keyframes sc2-lady { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-5px) rotate(-2deg) translateY(-2px) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(5px) rotate(2deg) translateY(-1px) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sc2-man { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(4px) rotate(1deg) translateY(-3px) } 70% { transform: translateX(-3px) rotate(-1deg) translateY(-1px) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sc2-cushion { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(.9) translateY(2px) } }
@keyframes sc2-letter { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-3px) } 100% { transform: rotate(-15deg) translateY(1px) } }
@keyframes sc2-sparkle { 0% { opacity:.3; transform: scale(.5) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:.4; transform: scale(.8) } }

/* nay-word-advised */
.scn-nay-word-advised { background: linear-gradient(180deg, #3a2a1a 0%, #4a3525 30%, #2a1a0a 70%, #1a0e05 100%), radial-gradient(ellipse at 50% 50%, #4a3525 0%, transparent 70%); }
.scn-nay-word-advised .parlor-bg { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-nay-word-advised .hearth { position:absolute; bottom:0; left:10%; width:30%; height:30%; background: linear-gradient(180deg, #6a3a1a 0%, #3a1a0a 100%); border-radius: 50% 50% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6), 0 0 30px 10px rgba(255,100,20,.2); animation: sc3-hearth 10s ease-in-out infinite alternate; }
.scn-nay-word-advised .woman-left { position:absolute; bottom:12%; left:25%; width:40px; height:55px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc3-womanL 6s ease-in-out infinite; }
.scn-nay-word-advised .woman-right { position:absolute; bottom:12%; right:25%; width:42px; height:58px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc3-womanR 7s ease-in-out infinite; }
.scn-nay-word-advised .page-boy { position:absolute; bottom:8%; left:50%; width:20px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform: translateX(-50%); transform-origin: bottom center; animation: sc3-page 5s ease-in-out infinite; }
.scn-nay-word-advised .table-center { position:absolute; bottom:2%; left:50%; width:80px; height:10px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius:4px; transform: translateX(-50%); }
.scn-nay-word-advised .goblet { position:absolute; bottom:6%; left:48%; width:10px; height:18px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius:2px 2px 4px 4px; transform-origin: bottom center; animation: sc3-goblet 4s ease-in-out infinite; }
@keyframes sc3-hearth { 0% { box-shadow: inset 0 -10px 20px rgba(0,0,0,.6), 0 0 20px 5px rgba(255,100,20,.1) } 50% { box-shadow: inset 0 -10px 20px rgba(0,0,0,.6), 0 0 40px 15px rgba(255,100,20,.3) } 100% { box-shadow: inset 0 -10px 20px rgba(0,0,0,.6), 0 0 30px 10px rgba(255,100,20,.2) } }
@keyframes sc3-womanL { 0% { transform: translateX(0) rotate(0) } 20% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0) } 80% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sc3-womanR { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(4px) rotate(1deg) } 70% { transform: translateX(-4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sc3-page { 0% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-50%) rotate(-3deg) translateY(-2px) } 75% { transform: translateX(-50%) rotate(3deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes sc3-goblet { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(4deg) } }

/* send-your-page */
.scn-send-your-page { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a0e05 100%), radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%); }
.scn-send-your-page .hall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); }
.scn-send-your-page .stair-rail { position:absolute; top:20%; left:20%; width:60%; height:4px; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a3a 50%, #4a3a2a 100%); border-radius:2px; box-shadow: 0 8px 10px rgba(0,0,0,.4); animation: sc4-rail 12s ease-in-out infinite alternate; }
.scn-send-your-page .lady-pointing { position:absolute; bottom:12%; left:30%; width:45px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc4-lady 6s ease-in-out infinite; }
.scn-send-your-page .page-listening { position:absolute; bottom:8%; left:55%; width:22px; height:32px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: sc4-page 5s ease-in-out infinite; }
.scn-send-your-page .doorway { position:absolute; top:20%; left:70%; width:30px; height:60%; background: linear-gradient(180deg, #1a0e05 0%, #0a0500 100%); border-radius:4px 4px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-send-your-page .lamp { position:absolute; top:30%; left:72%; width:8px; height:12px; background: linear-gradient(180deg, #e8d4a8 0%, #c8a868 100%); border-radius:2px 2px 4px 4px; transform-origin: top center; animation: sc4-lamp 3s ease-in-out infinite; }
.scn-send-your-page .lamp-glow { position:absolute; top:30%; left:72%; width:40px; height:40px; transform:translate(-50%,-50%); background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%); border-radius:50%; animation: sc4-glow 2.5s ease-in-out infinite alternate; }
@keyframes sc4-rail { 0% { transform: scaleX(1) translateY(0) } 50% { transform: scaleX(1.02) translateY(2px) } 100% { transform: scaleX(.98) translateY(-1px) } }
@keyframes sc4-lady { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-4px) rotate(-2deg) translateY(-2px) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(4px) rotate(2deg) translateY(-1px) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sc4-page { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(3px) rotate(3deg) } 70% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sc4-lamp { 0%,100% { transform: rotate(0) } 50% { transform: rotate(5deg) } }
@keyframes sc4-glow { 0% { opacity:.6; transform:translate(-50%,-50%) scale(.9) } 50% { opacity:1; transform:translate(-50%,-50%) scale(1.2) } 100% { opacity:.7; transform:translate(-50%,-50%) scale(1) } }

/* ===== 1. item-buck-basket ===== */
.scn-item-buck-basket {
  background:
    linear-gradient(180deg, #1e1310 0%, #2c1f1a 35%, #3a2820 70%, #1e1310 100%),
    radial-gradient(ellipse at 70% 50%, #3a2820 0%, transparent 70%);
}
.scn-item-buck-basket .wall-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #1a1210 0%, #2a1e18 50%, #3a2a22 100%);
}
.scn-item-buck-basket .door-arch {
  position: absolute; bottom: 20%; left: 10%; width: 35%; height: 70%;
  background: linear-gradient(180deg, #4a3a32 0%, #2a1e18 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,.5);
}
.scn-item-buck-basket .figure-servant {
  position: absolute; bottom: 18%; left: 35%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%);
  border-radius: 45% 55% 30% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: bb-walk 3.5s ease-in-out infinite;
}
.scn-item-buck-basket .basket {
  position: absolute; bottom: 22%; left: 38%; width: 32px; height: 24px;
  background: linear-gradient(135deg, #5a4030 0%, #3a2820 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 -2px 6px rgba(0,0,0,.4);
  animation: bb-basket 3.5s ease-in-out infinite;
}
.scn-item-buck-basket .lantern-glow {
  position: absolute; bottom: 40%; left: 50%; width: 10px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #b06020 70%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 20px 8px #b06020, 0 0 40px 16px rgba(176,96,32,.4);
  animation: bb-lantern 2.2s ease-in-out infinite alternate;
}
.scn-item-buck-basket .shadow-pool {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 100%);
  filter: blur(4px);
  animation: bb-shade 4s ease-in-out infinite;
}
.scn-item-buck-basket .floor-board {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: repeating-linear-gradient(90deg, #3a2820 0px, #3a2820 20px, #2a1e18 20px, #2a1e18 40px);
}
@keyframes bb-walk {
  0%   { transform: translateX(0) translateY(0) rotate(-2deg); }
  25%  { transform: translateX(4px) translateY(-1px) rotate(1deg); }
  50%  { transform: translateX(8px) translateY(0) rotate(-1deg); }
  75%  { transform: translateX(12px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0); }
}
@keyframes bb-basket {
  0%,100% { transform: translateX(0) rotate(0); }
  50%     { transform: translateX(4px) rotate(3deg); }
}
@keyframes bb-lantern {
  0%   { opacity: .7; box-shadow: 0 0 12px 4px #b06020, 0 0 24px 8px rgba(176,96,32,.3); }
  50%  { opacity: 1;  box-shadow: 0 0 28px 12px #ffd080, 0 0 48px 20px rgba(255,208,128,.5); }
  100% { opacity: .8; box-shadow: 0 0 16px 6px #b06020, 0 0 32px 12px rgba(176,96,32,.35); }
}
@keyframes bb-shade {
  0%,100% { opacity: .6; transform: scaleX(1); }
  50%     { opacity: .3; transform: scaleX(0.9); }
}

/* ===== 2. ford-soliloquy-rant ===== */
.scn-ford-soliloquy-rant {
  background:
    linear-gradient(180deg, #1a1a30 0%, #2a2040 40%, #3a2a50 80%, #1a1a30 100%),
    radial-gradient(ellipse at 30% 80%, #4a3a60 0%, transparent 70%);
}
.scn-ford-soliloquy-rant .wall-panels {
  position: absolute; inset: 0 0 20% 0;
  background: repeating-linear-gradient(90deg, #2a2040 0px, #2a2040 30px, #3a2a50 30px, #3a2a50 60px);
  opacity: 0.5;
}
.scn-ford-soliloquy-rant .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a30 0%, #0e0e20 100%);
}
.scn-ford-soliloquy-rant .figure-ford {
  position: absolute; bottom: 15%; left: 45%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #3a2a50 0%, #1a1a30 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fsr-rage 1.8s ease-in-out infinite;
}
.scn-ford-soliloquy-rant .desk-item {
  position: absolute; bottom: 12%; left: 30%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #4a3a60 0%, #2a2040 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,.5);
}
.scn-ford-soliloquy-rant .candle-flicker {
  position: absolute; bottom: 30%; left: 46%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #ffd080 0%, #b06020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 12px 4px #ffd080, 0 0 24px 8px rgba(255,208,128,.4);
  animation: fsr-candle 2s ease-in-out infinite alternate;
}
.scn-ford-soliloquy-rant .shadow-stripe {
  position: absolute; bottom: 15%; left: 0; width: 100%; height: 5%;
  background: linear-gradient(90deg, transparent 30%, rgba(0,0,0,.6) 40%, transparent 50%);
  filter: blur(6px);
  animation: fsr-shadow 2.5s ease-in-out infinite;
}
.scn-ford-soliloquy-rant .chair-tilt {
  position: absolute; bottom: 12%; left: 55%; width: 24px; height: 30px;
  background: linear-gradient(180deg, #2a2040 0%, #1a1a30 100%);
  border-radius: 10% 10% 30% 30%;
  transform-origin: bottom center;
  animation: fsr-chair 3s ease-in-out infinite;
}
@keyframes fsr-rage {
  0%   { transform: translateY(0) rotate(-3deg); }
  25%  { transform: translateY(-3px) rotate(2deg); }
  50%  { transform: translateY(-1px) rotate(-5deg); }
  75%  { transform: translateY(-2px) rotate(4deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes fsr-candle {
  0%   { opacity: .6; transform: scaleY(1); box-shadow: 0 0 8px 2px #ffd080, 0 0 16px 4px rgba(255,208,128,.3); }
  50%  { opacity: .9; transform: scaleY(1.2); box-shadow: 0 0 16px 6px #ffd080, 0 0 32px 12px rgba(255,208,128,.5); }
  100% { opacity: .7; transform: scaleY(0.9); box-shadow: 0 0 10px 3px #ffd080, 0 0 20px 6px rgba(255,208,128,.35); }
}
@keyframes fsr-shadow {
  0%,100% { opacity: .5; transform: translateX(0); }
  50%     { opacity: .8; transform: translateX(10px); }
}
@keyframes fsr-chair {
  0%   { transform: rotate(0) translateY(0); }
  50%  { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(0) translateY(0); }
}

/* ===== 3. street-school-exam ===== */
.scn-street-school-exam {
  background:
    linear-gradient(180deg, #b0b8b8 0%, #c8d0d0 30%, #a0a8a8 70%, #808888 100%),
    radial-gradient(ellipse at 50% 0%, #d0d8d8 0%, transparent 80%);
}
.scn-street-school-exam .sky-overcast {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c8d0d0 0%, #a0a8a8 100%);
}
.scn-street-school-exam .building-left {
  position: absolute; bottom: 30%; left: 0; width: 40%; height: 60%;
  background: linear-gradient(180deg, #b0b8b8 0%, #909898 100%);
  box-shadow: inset -8px 0 12px rgba(0,0,0,.15);
  border-radius: 0 10% 0 0;
}
.scn-street-school-exam .building-right {
  position: absolute; bottom: 30%; right: 0; width: 35%; height: 65%;
  background: linear-gradient(180deg, #a0a8a8 0%, #808888 100%);
  box-shadow: inset 8px 0 12px rgba(0,0,0,.1);
  border-radius: 10% 0 0 0;
}
.scn-street-school-exam .figure-mistress1 {
  position: absolute; bottom: 25%; left: 30%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #6a7070 0%, #505656 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sse-stroll 6s ease-in-out infinite;
}
.scn-street-school-exam .figure-mistress2 {
  position: absolute; bottom: 25%; left: 38%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #7a8080 0%, #606666 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sse-stroll 6s ease-in-out infinite reverse;
  animation-delay: -1s;
}
.scn-street-school-exam .figure-william {
  position: absolute; bottom: 25%; left: 45%; width: 16px; height: 35px;
  background: linear-gradient(180deg, #5a6060 0%, #404646 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sse-hop 2.5s ease-in-out infinite;
}
.scn-street-school-exam .lamp-post {
  position: absolute; bottom: 35%; left: 50%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #a0a8a8 0%, #808888 100%);
  border-radius: 20%;
}
.scn-street-school-exam .cobble-path {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: repeating-conic-gradient(#a0a8a8 0% 15%, #b0b8b8 15% 30%) 0 0 / 20px 20px;
  opacity: 0.4;
}
@keyframes sse-stroll {
  0%   { transform: translateX(0) translateY(0); }
  33%  { transform: translateX(8px) translateY(-2px); }
  66%  { transform: translateX(16px) translateY(0); }
  100% { transform: translateX(24px) translateY(-1px); }
}
@keyframes sse-hop {
  0%,100% { transform: translateY(0); }
  50%     { transform: translateY(-5px); }
}

/* ===== 4. ford-house-second-attempt ===== */
.scn-ford-house-second-attempt {
  background:
    linear-gradient(180deg, #d4a870 0%, #c89460 30%, #b87c48 60%, #a06430 100%),
    radial-gradient(ellipse at 50% 20%, #e8c898 0%, transparent 80%);
}
.scn-ford-house-second-attempt .wall-warm {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #d4a870 0%, #c08c50 100%);
  opacity: 0.7;
}
.scn-ford-house-second-attempt .window-bright {
  position: absolute; bottom: 55%; left: 20%; width: 30%; height: 30%;
  background: linear-gradient(180deg, #ffe0b0 0%, #ffd090 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: inset 0 0 20px #ffd090, 0 0 30px 10px rgba(255,208,144,.6);
  animation: fha-window 4s ease-in-out infinite alternate;
}
.scn-ford-house-second-attempt .figure-falstaff {
  position: absolute; bottom: 18%; left: 35%; width: 35px; height: 55px;
  background: linear-gradient(180deg, #704830 0%, #503020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fha-bow 3s ease-in-out infinite;
}
.scn-ford-house-second-attempt .figure-ford-wife {
  position: absolute; bottom: 18%; left: 48%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #906850 0%, #705038 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fha-curtsey 3.5s ease-in-out infinite;
}
.scn-ford-house-second-attempt .couch {
  position: absolute; bottom: 10%; left: 30%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #906850 0%, #604030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 -4px 8px rgba(0,0,0,.3);
}
.scn-ford-house-second-attempt .table-round {
  position: absolute; bottom: 8%; left: 55%; width: 40px; height: 10px;
  background: linear-gradient(180deg, #805040 0%, #604030 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
}
.scn-ford-house-second-attempt .rug-pattern {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 10%;
  background: repeating-linear-gradient(45deg, #906850 0px, #906850 10px, #805040 10px, #805040 20px);
  border-radius: 20% 20% 0 0;
  opacity: 0.5;
}
.scn-ford-house-second-attempt .vase-plant {
  position: absolute; bottom: 20%; left: 65%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #5a7040 0%, #4a6030 100%);
  border-radius: 50% 50% 20% 20% / 30% 30% 10% 10%;
}
@keyframes fha-window {
  0%   { opacity: .8; box-shadow: inset 0 0 15px #ffd090, 0 0 20px 5px rgba(255,208,144,.4); }
  50%  { opacity: 1;  box-shadow: inset 0 0 25px #ffe0b0, 0 0 40px 15px rgba(255,224,176,.6); }
  100% { opacity: .9; box-shadow: inset 0 0 18px #ffd090, 0 0 25px 8px rgba(255,208,144,.5); }
}
@keyframes fha-bow {
  0%   { transform: rotate(0) translateY(0); }
  30%  { transform: rotate(-15deg) translateY(-2px); }
  60%  { transform: rotate(5deg) translateY(-1px); }
  100% { transform: rotate(0) translateY(0); }
}
@keyframes fha-curtsey {
  0%   { transform: rotate(0) translateY(0); }
  25%  { transform: rotate(5deg) translateY(-3px); }
  50%  { transform: rotate(-5deg) translateY(-1px); }
  75%  { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(0) translateY(0); }
}

.scn-jealous-knave-forth { background: linear-gradient(180deg, #3a2a1e 0%, #1f150e 100%), radial-gradient(ellipse at 50% 60%, #6b4a2a 0%, transparent 70%); }
.scn-jealous-knave-forth .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #3d2c1f 0%, #2a1d14 100%); animation: jkf-wall 18s ease-in-out infinite alternate; }
.scn-jealous-knave-forth .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1f150e 0%, #0f0a07 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.5); }
.scn-jealous-knave-forth .table { position:absolute; bottom:32%; left:40%; width:120px; height:18px; background: linear-gradient(180deg, #4a3525 0%, #2a1d14 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); transform: translateX(-50%); animation: jkf-table 12s ease-in-out infinite alternate; }
.scn-jealous-knave-forth .candle { position:absolute; bottom:44%; left:45%; width:10px; height:20px; background: linear-gradient(180deg, #e8d0a0 0%, #c09060 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px #d4a060; animation: jkf-candle 2s ease-in-out infinite alternate; }
.scn-jealous-knave-forth .figure { position:absolute; bottom:26%; left:50%; width:22px; height:40px; background: linear-gradient(180deg, #0f0a07 0%, #050302 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jkf-figure 4s ease-in-out infinite; }
.scn-jealous-knave-forth .door { position:absolute; bottom:30%; left:10%; width:80px; height:100px; background: linear-gradient(180deg, #4a3525 0%, #2a1d14 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.4); animation: jkf-door 20s ease-in-out infinite alternate; }
.scn-jealous-knave-forth .shadow { position:absolute; bottom:20%; left:48%; width:40px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); animation: jkf-shadow 4s ease-in-out infinite; }
@keyframes jkf-wall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes jkf-table { 0% { transform: translateX(-50%) rotate(-0.5deg) } 100% { transform: translateX(-50%) rotate(0.5deg) } }
@keyframes jkf-candle { 0% { transform: scaleY(1) scaleX(1); opacity:.8 } 50% { transform: scaleY(1.08) scaleX(0.95); opacity:1 } 100% { transform: scaleY(.98) scaleX(1.02); opacity:.85 } }
@keyframes jkf-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes jkf-door { 0% { transform: rotateY(0deg) } 50% { transform: rotateY(15deg) } 100% { transform: rotateY(0deg) } }
@keyframes jkf-shadow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(8px) scaleX(1.2) } 100% { transform: translateX(0) scaleX(1) } }

.scn-mechanical-salt-butter { background: linear-gradient(180deg, #2d1f13 0%, #1a100a 100%), radial-gradient(ellipse at 50% 70%, #5a3a1e 0%, transparent 60%); }
.scn-mechanical-salt-butter .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #3a281c 0%, #261a10 100%); animation: msb-wall 20s ease-in-out infinite alternate; }
.scn-mechanical-salt-butter .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a100a 0%, #0f0805 100%); border-radius: 30% 30% 0 0 / 15% 15% 0 0; box-shadow: inset 0 15px 25px rgba(0,0,0,.5); }
.scn-mechanical-salt-butter .figure { position:absolute; bottom:22%; left:40%; width:24px; height:44px; background: linear-gradient(180deg, #0f0805 0%, #040201 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: msb-figure 5s ease-in-out infinite; }
.scn-mechanical-salt-butter .cudgel { position:absolute; bottom:38%; left:36%; width:6px; height:50px; background: linear-gradient(180deg, #4a3525 0%, #2a1d14 100%); border-radius: 3px; transform-origin: 50% 100%; animation: msb-cudgel 1.6s ease-in-out infinite alternate; }
.scn-mechanical-salt-butter .meteor-glow { position:absolute; bottom:65%; left:50%; width:40px; height:40px; background: radial-gradient(circle, #d4a060 0%, #8a6030 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px #b08040; animation: msb-meteor 3s ease-in-out infinite alternate; }
.scn-mechanical-salt-butter .window { position:absolute; bottom:50%; left:70%; width:60px; height:70px; background: linear-gradient(180deg, #1a100a 0%, #0f0805 100%); border: 2px solid #3a281c; border-radius: 6px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: msb-window 25s ease-in-out infinite alternate; }
.scn-mechanical-salt-butter .shadow { position:absolute; bottom:16%; left:36%; width:45px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); animation: msb-shadow 5s ease-in-out infinite; }
@keyframes msb-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes msb-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(10px) rotate(-2deg) } 75% { transform: translateX(15px) rotate(2deg) } 100% { transform: translateX(20px) rotate(0) } }
@keyframes msb-cudgel { 0% { transform: rotate(-20deg) } 100% { transform: rotate(20deg) } }
@keyframes msb-meteor { 0% { transform: scale(0.8); opacity:.6 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(0.9); opacity:.7 } }
@keyframes msb-window { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes msb-shadow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(5px) scaleX(1.3) } 100% { transform: translateX(0) scaleX(1) } }

.scn-epicurean-rascal { background: linear-gradient(180deg, #1a0e0a 0%, #0a0503 100%), radial-gradient(ellipse at 50% 50%, #2a120a 0%, transparent 70%); }
.scn-epicurean-rascal .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0f0705 0%, #000 100%); opacity:.8; }
.scn-epicurean-rascal .bg-mid { position:absolute; inset:20% 10% 20% 10%; background: radial-gradient(ellipse at 50% 50%, #3d1d14 0%, transparent 60%); animation: er-bg 30s ease-in-out infinite alternate; }
.scn-epicurean-rascal .figure { position:absolute; bottom:20%; left:50%; width:26px; height:48px; background: linear-gradient(180deg, #150a07 0%, #080403 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: er-figure 3s ease-in-out infinite; }
.scn-epicurean-rascal .heart-glow { position:absolute; bottom:38%; left:50%; width:16px; height:16px; background: radial-gradient(circle, #702243 0%, #4a1628 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 20px 8px #5e1a2a; animation: er-heart 1.5s ease-in-out infinite alternate; }
.scn-epicurean-rascal .crack { position:absolute; bottom:34%; left:48%; width:20px; height:2px; background: #2f140e; border-radius: 1px; box-shadow: 0 4px 0 #2f140e, 0 8px 0 #2f140e; animation: er-crack 4s ease-in-out infinite; }
.scn-epicurean-rascal .shadow { position:absolute; bottom:14%; left:46%; width:50px; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); animation: er-shadow 3s ease-in-out infinite; }
@keyframes er-bg { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes er-figure { 0% { transform: translateX(0) rotate(-3deg) translateY(0) } 25% { transform: translateX(-4px) rotate(0) translateY(-3px) } 50% { transform: translateX(0) rotate(3deg) translateY(0) } 75% { transform: translateX(4px) rotate(0) translateY(-3px) } 100% { transform: translateX(0) rotate(0) translateY(0) } }
@keyframes er-heart { 0% { transform: scale(0.9); opacity:.6 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(1); opacity:.7 } }
@keyframes er-crack { 0% { opacity:0 } 50% { opacity:.8 } 100% { opacity:0 } }
@keyframes er-shadow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-4px) scaleX(1.3) } 100% { transform: translateX(0) scaleX(1) } }

.scn-cuckold-terms { background: linear-gradient(180deg, #120607 0%, #060202 100%), radial-gradient(ellipse at 50% 40%, #3d1515 0%, transparent 70%); }
.scn-cuckold-terms .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0a0304 0%, #000 100%); opacity:.9; }
.scn-cuckold-terms .figure { position:absolute; bottom:18%; left:50%; width:28px; height:50px; background: linear-gradient(180deg, #120607 0%, #070202 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ct-figure 5s ease-in-out infinite; }
.scn-cuckold-terms .horn-left { position:absolute; bottom:42%; left:46%; width:8px; height:20px; background: linear-gradient(180deg, #2a0e0a 0%, #140504 100%); border-radius: 50% 50% 0 0; transform: rotate(-30deg); animation: ct-horn 5s ease-in-out infinite alternate; }
.scn-cuckold-terms .horn-right { position:absolute; bottom:42%; left:54%; width:8px; height:20px; background: linear-gradient(180deg, #2a0e0a 0%, #140504 100%); border-radius: 50% 50% 0 0; transform: rotate(30deg); animation: ct-horn 5s ease-in-out infinite alternate reverse; }
.scn-cuckold-terms .hell-glow { position:absolute; bottom:40%; left:50%; width:40px; height:40px; background: radial-gradient(circle, #a0461a 0%, #5c1a0c 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 30px 12px #70301a; animation: ct-glow 2s ease-in-out infinite alternate; }
.scn-cuckold-terms .shadow { position:absolute; bottom:12%; left:46%; width:55px; height:14px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); animation: ct-shadow 5s ease-in-out infinite; }
.scn-cuckold-terms .spark { position:absolute; bottom:50%; left:50%; width:4px; height:4px; background: #c0602a; border-radius: 50%; box-shadow: 0 0 6px 2px #c0602a; animation: ct-spark 2s ease-in-out infinite; }
@keyframes ct-figure { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(5px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes ct-horn { 0% { transform: rotate(-30deg) scaleY(1) } 50% { transform: rotate(-20deg) scaleY(1.3) } 100% { transform: rotate(-30deg) scaleY(1) } }
@keyframes ct-glow { 0% { transform: scale(0.9); opacity:.6 } 100% { transform: scale(1.2); opacity:1 } }
@keyframes ct-shadow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(3px) scaleX(1.2) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes ct-spark { 0% { transform: translate(0,0) scale(0.8); opacity:0 } 50% { transform: translate(10px,-10px) scale(1.2); opacity:1 } 100% { transform: translate(20px,-20px) scale(0.5); opacity:0 } }

.scn-quickly-as-messenger { background: linear-gradient(180deg, #f4e8c8 0%, #d4c098 30%, #b89870 60%, #a08050 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%); }
.scn-quickly-as-messenger .sun-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ffe890 0%, #f4d870 40%, #d4a850 100%); animation: ms-sky 12s ease-in-out infinite alternate; }
.scn-quickly-as-messenger .distant-trees { position:absolute; bottom:45%; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a9a5a 0%, #6a7a3a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,.2); animation: ms-trees 16s ease-in-out infinite alternate; }
.scn-quickly-as-messenger .road { position:absolute; bottom:0; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #c8a870 0%, #a08050 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); }
.scn-quickly-as-messenger .figure-messenger { position:absolute; bottom:28%; left:30%; width:24px; height:50px; background: linear-gradient(180deg, #c07040 0%, #905020 40%, #683818 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ms-walk 5s ease-in-out infinite; }
.scn-quickly-as-messenger .figure-shadow { position:absolute; bottom:20%; left:28%; width:40px; height:8px; background: rgba(0,0,0,.2); border-radius: 50%; filter: blur(4px); animation: ms-shadow 5s ease-in-out infinite; }
.scn-quickly-as-messenger .gate-arch { position:absolute; bottom:30%; right:25%; width:60px; height:80px; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.3); }
.scn-quickly-as-messenger .dust-particles { position:absolute; bottom:15%; left:10%; right:10%; height:30%; background: radial-gradient(ellipse at 30% 50%, rgba(200,180,140,.15) 0%, transparent 50%), radial-gradient(ellipse at 70% 40%, rgba(200,180,140,.1) 0%, transparent 40%); animation: ms-dust 8s ease-in-out infinite alternate; }
.scn-quickly-as-messenger .sunburst { position:absolute; top:8%; left:15%; width:120px; height:120px; background: radial-gradient(circle, rgba(255,240,180,.4) 0%, transparent 70%); filter: blur(12px); animation: ms-sunburst 6s ease-in-out infinite alternate; }
@keyframes ms-sky { 0% { opacity:.85; transform:scale(1) } 50% { opacity:1; transform:scale(1.02) } 100% { opacity:.9; transform:scale(1) } }
@keyframes ms-trees { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes ms-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(0deg) } 50% { transform: translateX(16px) translateY(0) rotate(2deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(32px) translateY(0) rotate(-2deg) } }
@keyframes ms-shadow { 0% { transform: translateX(0) scale(1); opacity:.3 } 50% { transform: translateX(16px) scale(.95); opacity:.4 } 100% { transform: translateX(32px) scale(1); opacity:.3 } }
@keyframes ms-dust { 0% { opacity:.3; transform: translateY(0) } 50% { opacity:.6; transform: translateY(-5px) } 100% { opacity:.3; transform: translateY(0) } }
@keyframes ms-sunburst { 0% { transform: translate(0,0) scale(1); opacity:0 } 50% { transform: translate(-10px,-8px) scale(1.3); opacity:.1 } 100% { transform: translate(0,0) scale(1); opacity:0 } }

.scn-ford-doubts { background: linear-gradient(180deg, #d4c098 0%, #b89870 40%, #906040 100%), radial-gradient(ellipse at 70% 20%, #fff0c0 0%, transparent 60%); }
.scn-ford-doubts .wall-bg { position:absolute; inset:0 30% 0 0; background: linear-gradient(180deg, #b09070 0%, #806050 100%); box-shadow: inset -20px 0 40px rgba(0,0,0,.3); }
.scn-ford-doubts .window-frame { position:absolute; top:10%; right:5%; width:60px; height:80px; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(0,0,0,.4); }
.scn-ford-doubts .sunlight-beam { position:absolute; top:0; right:3%; width:70px; height:100%; background: linear-gradient(180deg, rgba(255,240,200,.3) 0%, transparent 60%); transform: skewX(-10deg); filter: blur(6px); animation: fd-beam 7s ease-in-out infinite alternate; }
.scn-ford-doubts .figure-ford { position:absolute; bottom:15%; left:15%; width:30px; height:56px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fd-ford 6s ease-in-out infinite; }
.scn-ford-doubts .figure-ford-arm { position:absolute; bottom:28%; left:30%; width:20px; height:6px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 0 0; transform-origin: right center; animation: fd-arm 4s ease-in-out infinite alternate; }
.scn-ford-doubts .letter-scroll { position:absolute; bottom:22%; left:35%; width:18px; height:24px; background: linear-gradient(180deg, #e8d8b0 0%, #c8b090 100%); border-radius: 5% 5% 10% 10%; box-shadow: 2px 2px 6px rgba(0,0,0,.3); animation: fd-scroll 8s ease-in-out infinite; }
.scn-ford-doubts .shadow-diagonal { position:absolute; top:0; right:0; width:40%; height:100%; background: linear-gradient(135deg, rgba(0,0,0,.1) 0%, transparent 60%); animation: fd-shadow 10s ease-in-out infinite alternate; }
@keyframes fd-beam { 0% { opacity:.4; transform: skewX(-10deg) translateX(0) } 50% { opacity:.8; transform: skewX(-8deg) translateX(5px) } 100% { opacity:.4; transform: skewX(-10deg) translateX(0) } }
@keyframes fd-ford { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(-2deg) } 60% { transform: translateY(0) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fd-arm { 0% { transform: rotate(-20deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-20deg) } }
@keyframes fd-scroll { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(3px,-2px) rotate(5deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes fd-shadow { 0% { transform: translateX(0); opacity:.5 } 50% { transform: translateX(-20px); opacity:.8 } 100% { transform: translateX(0); opacity:.5 } }

.scn-host-arrives-fray { background: linear-gradient(180deg, #4a3a2a 0%, #6a4a3a 30%, #8a6a4a 60%, #5a3a2a 100%), radial-gradient(ellipse at 50% 0%, #d4a850 0%, transparent 60%); }
.scn-host-arrives-fray .tavern-wall { position:absolute; inset:0 20% 0 0; background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%); box-shadow: inset -10px 0 20px rgba(0,0,0,.4); }
.scn-host-arrives-fray .tavern-door { position:absolute; bottom:0; left:30%; width:60px; height:80px; background: linear-gradient(180deg, #8a7050 0%, #5a4030 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.3); animation: hf-door 4s ease-in-out infinite alternate; }
.scn-host-arrives-fray .host-figure { position:absolute; bottom:18%; left:55%; width:28px; height:52px; background: linear-gradient(180deg, #c07040 0%, #905020 40%, #683818 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hf-host 5s ease-in-out infinite; }
.scn-host-arrives-fray .host-cape { position:absolute; bottom:18%; left:50%; width:40px; height:44px; background: linear-gradient(180deg, #8a2020 0%, #5a1010 100%); border-radius: 60% 40% 30% 70% / 50% 60% 40% 50%; transform-origin: top center; animation: hf-cape 3s ease-in-out infinite alternate; }
.scn-host-arrives-fray .tankard { position:absolute; bottom:22%; left:65%; width:12px; height:16px; background: linear-gradient(180deg, #b09060 0%, #705030 100%); border-radius: 20% 20% 10% 10%; box-shadow: 2px 2px 4px rgba(0,0,0,.3); animation: hf-tankard 6s ease-in-out infinite; }
.scn-host-arrives-fray .lantern-light { position:absolute; top:15%; right:10%; width:20px; height:24px; background: radial-gradient(circle, #ffd080 0%, #b08040 60%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 30px 8px rgba(255,208,128,.6), 0 0 60px 20px rgba(255,208,128,.3); animation: hf-lantern 3s ease-in-out infinite alternate; }
.scn-host-arrives-fray .floor-planks { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #5a4030 0%, #6a5040 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-host-arrives-fray .rafters { position:absolute; top:0; left:0; right:0; height:8%; background: linear-gradient(180deg, #4a3020 0%, #3a2010 100%); box-shadow: 0 4px 8px rgba(0,0,0,.4); }
@keyframes hf-door { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes hf-host { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(0deg) } 50% { transform: translateX(10px) translateY(0) rotate(1deg) } 75% { transform: translateX(15px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(20px) translateY(0) rotate(-1deg) } }
@keyframes hf-cape { 0% { transform: rotate(-5deg) scaleX(1) } 50% { transform: rotate(10deg) scaleX(1.05) } 100% { transform: rotate(-5deg) scaleX(1) } }
@keyframes hf-tankard { 0% { transform: translate(0,0) rotate(-3deg) } 50% { transform: translate(2px,-3px) rotate(5deg) } 100% { transform: translate(0,0) rotate(-3deg) } }
@keyframes hf-lantern { 0% { box-shadow: 0 0 20px 4px rgba(255,208,128,.4), 0 0 40px 10px rgba(255,208,128,.2); opacity:.85 } 50% { box-shadow: 0 0 40px 12px rgba(255,208,128,.7), 0 0 80px 24px rgba(255,208,128,.4); opacity:1 } 100% { box-shadow: 0 0 25px 6px rgba(255,208,128,.5), 0 0 50px 15px rgba(255,208,128,.25); opacity:.9 } }

.scn-sport-planned { background: linear-gradient(180deg, #e8d8b0 0%, #c8b890 30%, #a8a070 60%, #889060 100%), radial-gradient(ellipse at 30% 80%, #d4c098 0%, transparent 60%); }
.scn-sport-planned .meadow-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f0e8c8 0%, #d4c098 50%, #b8a878 100%); animation: sp-sky 10s ease-in-out infinite alternate; }
.scn-sport-planned .horizon-hill { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a9a5a 0%, #6a7a3a 100%); border-radius: 50% 50% 0 0 / 70% 60% 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,.15); animation: sp-hill 14s ease-in-out infinite alternate; }
.scn-sport-planned .figure-page { position:absolute; bottom:25%; left:20%; width:22px; height:46px; background: linear-gradient(180deg, #c07040 0%, #905020 40%, #683818 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sp-figure 6s ease-in-out infinite; }
.scn-sport-planned .figure-shallow { position:absolute; bottom:25%; left:40%; width:26px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sp-figure2 6s ease-in-out infinite .5s; }
.scn-sport-planned .figure-host { position:absolute; bottom:25%; left:60%; width:28px; height:52px; background: linear-gradient(180deg, #c07040 0%, #905020 40%, #683818 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sp-figure 6s ease-in-out infinite 1s; }
.scn-sport-planned .wrestling-staff { position:absolute; bottom:20%; left:32%; width:4px; height:40px; background: linear-gradient(180deg, #8a7050 0%, #5a4030 100%); border-radius: 2px; transform: rotate(15deg); animation: sp-staff 5s ease-in-out infinite alternate; }
.scn-sport-planned .grass-blades { position:absolute; bottom:15%; left:5%; right:5%; height:20%; background: radial-gradient(ellipse at 20% 80%, #7a8a4a 0%, transparent 40%), radial-gradient(ellipse at 80% 70%, #7a8a4a 0%, transparent 40%); filter: blur(2px); animation: sp-grass 12s ease-in-out infinite alternate; }
.scn-sport-planned .butterflies { position:absolute; top:25%; left:15%; width:60px; height:40px; background: radial-gradient(ellipse at 30% 50%, #d4a060 0%, transparent 30%), radial-gradient(ellipse at 70% 50%, #d4a060 0%, transparent 30%); filter: blur(3px); animation: sp-butterflies 20s linear infinite; }
@keyframes sp-sky { 0% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.01) } 100% { opacity:.85; transform: scale(1) } }
@keyframes sp-hill { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.005) } 100% { transform: translateY(0) scale(1) } }
@keyframes sp-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(0deg) } 50% { transform: translateX(8px) translateY(0) rotate(1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(16px) translateY(0) rotate(-1deg) } }
@keyframes sp-figure2 { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 25% { transform: translateX(-3px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(-6px) translateY(0) rotate(-2deg) } 75% { transform: translateX(-9px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(-12px) translateY(0) rotate(2deg) } }
@keyframes sp-staff { 0% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(20deg) translateX(2px) } 100% { transform: rotate(10deg) translateX(0) } }
@keyframes sp-grass { 0% { opacity:.5; filter: blur(2px) } 50% { opacity:.8; filter: blur(1px) } 100% { opacity:.5; filter: blur(2px) } }
@keyframes sp-butterflies { 0% { transform: translateX(0) translateY(0) rotate(0deg); opacity:0 } 10% { opacity:.6 } 50% { transform: translateX(80px) translateY(-20px) rotate(180deg); opacity:.4 } 90% { opacity:.6 } 100% { transform: translateX(160px) translateY(0) rotate(360deg); opacity:0 } }

.scn-falstaff-needs-thrift {
  background: linear-gradient(180deg, #c8a87a 0%, #8a6a4a 50%, #4a2a1a 100%), radial-gradient(ellipse at 30% 40%, #deb887 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-falstaff-needs-thrift .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(135deg, #d4b48c 0%, #b8956a 50%, #a07850 100%);
}
.scn-falstaff-needs-thrift .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.3);
}
.scn-falstaff-needs-thrift .table {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #6a4a2a 0%, #8a6a4a 50%, #6a4a2a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-falstaff-needs-thrift .chair {
  position: absolute; bottom: 22%; left: 40%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 6px;
  transform: rotate(-5deg);
}
.scn-falstaff-needs-thrift .figure-falstaff {
  position: absolute; bottom: 18%; left: 35%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fnt-wobble 4s ease-in-out infinite;
}
.scn-falstaff-needs-thrift .figure-host {
  position: absolute; bottom: 18%; left: 55%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fnt-bow 6s ease-in-out infinite;
}
.scn-falstaff-needs-thrift .lantern {
  position: absolute; top: 18%; left: 30%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffd070 0%, #c08040 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 24px 10px #ffd070, 0 0 48px 20px rgba(255,208,112,0.4);
  animation: fnt-glow 3s ease-in-out infinite alternate;
}
.scn-falstaff-needs-thrift .tankard {
  position: absolute; bottom: 26%; left: 48%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: fnt-lift 5s ease-in-out infinite;
}
@keyframes fnt-wobble {
  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(-2deg); }
}
@keyframes fnt-bow {
  0% { transform: rotate(0deg); }
  30% { transform: rotate(15deg); }
  60% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes fnt-glow {
  0% { opacity: 0.7; box-shadow: 0 0 16px 6px #ffd070, 0 0 32px 12px rgba(255,208,112,0.3); }
  50% { opacity: 1; box-shadow: 0 0 30px 12px #ffe090, 0 0 60px 24px rgba(255,224,144,0.5); }
  100% { opacity: 0.8; box-shadow: 0 0 20px 8px #ffd070, 0 0 40px 16px rgba(255,208,112,0.35); }
}
@keyframes fnt-lift {
  0% { transform: translateY(0); }
  40% { transform: translateY(-6px) rotate(5deg); }
  70% { transform: translateY(-2px) rotate(-3deg); }
  100% { transform: translateY(0); }
}

.scn-bardolph-tapster {
  background: linear-gradient(180deg, #c8b090 0%, #8a7050 50%, #4a3a2a 100%), radial-gradient(ellipse at 50% 30%, #deb887 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-bardolph-tapster .bar-counter {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: inset 0 -6px 10px rgba(0,0,0,0.4);
}
.scn-bardolph-tapster .bar-top {
  position: absolute; bottom: 30%; left: 12%; right: 12%; height: 6px;
  background: linear-gradient(90deg, #a08060 0%, #c8a880 50%, #a08060 100%);
  border-radius: 4px;
}
.scn-bardolph-tapster .cask {
  position: absolute; bottom: 18%; left: 65%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a0a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
}
.scn-bardolph-tapster .figure-bardolph {
  position: absolute; bottom: 20%; left: 25%; width: 45px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bt-scrub 5s ease-in-out infinite;
}
.scn-bardolph-tapster .foam {
  position: absolute; bottom: 32%; left: 38%; width: 22px; height: 14px;
  background: radial-gradient(circle, #f8f0d0 0%, #d8d0a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 4px rgba(248,240,208,0.5);
  animation: bt-froth 3s ease-in-out infinite;
}
.scn-bardolph-tapster .tankard {
  position: absolute; bottom: 28%; left: 35%; width: 24px; height: 34px;
  background: linear-gradient(180deg, #c8a880 0%, #887050 100%);
  border-radius: 8px 8px 10px 10px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: bt-lift 4s ease-in-out infinite;
}
.scn-bardolph-tapster .signboard {
  position: absolute; top: 10%; left: 50%; width: 80px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b08050 0%, #805020 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: bt-swing 6s ease-in-out infinite;
}
@keyframes bt-scrub {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(8px) rotate(3deg); }
  60% { transform: translateX(0) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bt-froth {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.2) translateY(-3px); opacity: 1; }
  100% { transform: scale(1); opacity: 0.8; }
}
@keyframes bt-lift {
  0% { transform: translateY(0); }
  40% { transform: translateY(-8px) rotate(8deg); }
  70% { transform: translateY(-2px) rotate(-5deg); }
  100% { transform: translateY(0); }
}
@keyframes bt-swing {
  0% { transform: translateX(-50%) rotate(-3deg); }
  25% { transform: translateX(-50%) rotate(3deg); }
  50% { transform: translateX(-50%) rotate(-2deg); }
  75% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-3deg); }
}

.scn-falstaff-out-at-heels {
  background: linear-gradient(180deg, #bc9c7c 0%, #8a6a4a 50%, #4a2a1a 100%), radial-gradient(ellipse at 40% 60%, #d4b48c 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-falstaff-out-at-heels .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a0a 100%);
  box-shadow: inset 0 6px 10px rgba(0,0,0,0.3);
}
.scn-falstaff-out-at-heels .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 75%;
  background: linear-gradient(135deg, #c8a87a 0%, #a07850 100%);
}
.scn-falstaff-out-at-heels .chest {
  position: absolute; bottom: 20%; left: 15%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: foh-open 7s ease-in-out infinite;
}
.scn-falstaff-out-at-heels .coin-pile {
  position: absolute; bottom: 25%; left: 20%; width: 30px; height: 15px;
  background: radial-gradient(ellipse, #f0d080 0%, #c0a040 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #f0d080;
  animation: foh-pile 5s ease-in-out infinite alternate;
}
.scn-falstaff-out-at-heels .hand {
  position: absolute; bottom: 28%; left: 30%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #d0b090 0%, #b09070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: foh-reach 4s ease-in-out infinite;
}
.scn-falstaff-out-at-heels .figure-falstaff {
  position: absolute; bottom: 15%; left: 50%; width: 55px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: foh-slouch 6s ease-in-out infinite;
}
.scn-falstaff-out-at-heels .candle {
  position: absolute; top: 20%; left: 60%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #f0d080 0%, #e0b060 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px #f0d080, 0 0 40px 16px rgba(240,208,128,0.3);
  animation: foh-flicker 2s ease-in-out infinite alternate;
}
@keyframes foh-open {
  0% { transform: scaleY(1); }
  30% { transform: scaleY(0.8); }
  60% { transform: scaleY(1); }
  100% { transform: scaleY(1); }
}
@keyframes foh-pile {
  0% { transform: scale(1); opacity: 0.9; }
  100% { transform: scale(1.3) translateY(-4px); opacity: 1; }
}
@keyframes foh-reach {
  0% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-10px) rotate(15deg); }
  70% { transform: translateY(-5px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes foh-slouch {
  0% { transform: translateX(-50%) rotate(0deg); }
  20% { transform: translateX(-50%) rotate(-5deg) scaleY(0.95); }
  40% { transform: translateX(-50%) rotate(2deg) scaleY(1); }
  60% { transform: translateX(-50%) rotate(-3deg) scaleY(0.97); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes foh-flicker {
  0% { opacity: 0.7; box-shadow: 0 0 12px 4px #f0d080, 0 0 24px 8px rgba(240,208,128,0.2); }
  50% { opacity: 1; box-shadow: 0 0 28px 12px #ffe098, 0 0 56px 24px rgba(255,224,152,0.5); }
  100% { opacity: 0.8; box-shadow: 0 0 18px 6px #f0d080, 0 0 36px 12px rgba(240,208,128,0.3); }
}

.scn-falstaff-wooing-plot {
  background: linear-gradient(180deg, #d4b090 0%, #a07850 50%, #6a4a2a 100%), radial-gradient(ellipse at 30% 40%, #e8c8a0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-falstaff-wooing-plot .curtain-bg {
  position: absolute; top: 0; left: 0; right: 0; height: 100%;
  background: linear-gradient(135deg, #a08060 0%, #806040 50%, #604020 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  animation: fwp-curtain 10s ease-in-out infinite alternate;
}
.scn-falstaff-wooing-plot .wall {
  position: absolute; top: 10%; left: 10%; right: 10%; height: 80%;
  background: linear-gradient(180deg, #c8a880 0%, #a08060 100%);
  border-radius: 20px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
}
.scn-falstaff-wooing-plot .window {
  position: absolute; top: 20%; left: 20%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 4px 4px 10px 10px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: fwp-light 8s ease-in-out infinite;
}
.scn-falstaff-wooing-plot .figure-falstaff {
  position: absolute; bottom: 18%; left: 35%; width: 55px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fwp-bow 5s ease-in-out infinite;
}
.scn-falstaff-wooing-plot .figure-fordwife {
  position: absolute; bottom: 22%; left: 55%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fwp-turn 6s ease-in-out infinite;
}
.scn-falstaff-wooing-plot .rose {
  position: absolute; bottom: 30%; left: 48%; width: 12px; height: 12px;
  background: radial-gradient(circle, #b87878 0%, #702243 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(184,120,120,0.5);
  animation: fwp-rose-bloom 4s ease-in-out infinite;
}
.scn-falstaff-wooing-plot .lantern {
  position: absolute; top: 15%; left: 50%; width: 14px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd070 0%, #c08040 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 12px #ffd070, 0 0 60px 24px rgba(255,208,112,0.4);
  animation: fwp-glow 3s ease-in-out infinite alternate;
}
@keyframes fwp-curtain {
  0% { opacity: 0.6; transform: translateY(0); }
  50% { opacity: 0.8; transform: translateY(-5px); }
  100% { opacity: 0.7; transform: translateY(0); }
}
@keyframes fwp-light {
  0% { opacity: 0.5; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); }
  50% { opacity: 0.9; box-shadow: inset 0 0 20px rgba(180,160,120,0.4); }
  100% { opacity: 0.6; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); }
}
@keyframes fwp-bow {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(5px) rotate(10deg); }
  60% { transform: translateX(-5px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fwp-turn {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(10deg); }
  50% { transform: rotate(-8deg); }
  75% { transform: rotate(5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes fwp-rose-bloom {
  0% { transform: scale(0.8); opacity: 0.6; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.7; }
}
@keyframes fwp-glow {
  0% { opacity: 0.7; box-shadow: 0 0 20px 8px #ffd070, 0 0 40px 16px rgba(255,208,112,0.3); }
  50% { opacity: 1; box-shadow: 0 0 36px 16px #ffe090, 0 0 72px 32px rgba(255,224,144,0.5); }
  100% { opacity: 0.8; box-shadow: 0 0 24px 10px #ffd070, 0 0 48px 20px rgba(255,208,112,0.35); }
}

.scn-angels-and-oeillades { background: linear-gradient(180deg, #f5e6c8 0%, #e8d4a0 40%, #d4b87a 100%), radial-gradient(ellipse at 30% 80%, #eed29a 0%, transparent 70%); }
.scn-angels-and-oeillades .table   { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #c9a96e 0%, #a07a45 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(60,40,20,.5); }
.scn-angels-and-oeillades .window  { position:absolute; top:10%; left:65%; width:30%; height:50%; background: linear-gradient(135deg, #ffe9c0 0%, #fcd694 100%); border: 6px solid #8b6e3d; border-radius: 8% 8% 4% 4%; box-shadow: 0 0 30px 10px rgba(255,215,160,.4); animation: ao-window 12s ease-in-out infinite alternate; }
.scn-angels-and-oeillades .purse   { position:absolute; bottom:40%; left:40%; width:10%; height:12%; background: radial-gradient(ellipse 80% 60% at 50% 50%, #b88a4a 0%, #7a5d2a 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 6px 10px rgba(60,40,20,.5); animation: ao-purse 4s ease-in-out infinite; }
.scn-angels-and-oeillades .coin    { position:absolute; bottom:38%; width:3%; height:4%; background: radial-gradient(circle, #f0d478 0%, #c89f30 70%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.3), inset 0 -2px 2px rgba(0,0,0,.2); }
.scn-angels-and-oeillades .coin-1  { left:50%; animation: ao-coin 8s ease-in-out infinite; }
.scn-angels-and-oeillades .coin-2  { left:54%; animation: ao-coin 8s ease-in-out infinite 2s; }
.scn-angels-and-oeillades .coin-3  { left:58%; animation: ao-coin 8s ease-in-out infinite 4s; }
.scn-angels-and-oeillades .figure  { position:absolute; bottom:36%; left:48%; width:8%; height:20%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ao-walk 6s ease-in-out infinite; }
.scn-angels-and-oeillades .anchor  { position:absolute; bottom:34%; left:30%; width:6%; height:12%; background: radial-gradient(ellipse 60% 100% at 50% 50%, #7a6a5a 0%, #4a3a2a 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 4px 6px rgba(0,0,0,.4); animation: ao-anchor 10s ease-in-out infinite alternate; }
@keyframes ao-window  { 0% { opacity:.85 } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(255,215,160,.6) } 100% { opacity:.9 } }
@keyframes ao-purse   { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.03) translateY(-2px) } }
@keyframes ao-coin    { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(15deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ao-walk    { 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(0deg) } }
@keyframes ao-anchor   { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }

.scn-sun-on-dunghill { background: linear-gradient(180deg, #ffdb8c 0%, #fdd07a 30%, #e8b85a 100%), radial-gradient(ellipse at 50% 100%, #fde68a 0%, transparent 70%); }
.scn-sun-on-dunghill .sky      { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #ffe5a0 0%, #ffd47a 100%); animation: sd-sky 20s ease-in-out infinite alternate; }
.scn-sun-on-dunghill .ground   { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #a07a45 0%, #7a5a30 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 20px 30px rgba(40,20,10,.6); }
.scn-sun-on-dunghill .sun      { position:absolute; top:12%; left:20%; width:10%; height:10%; background: radial-gradient(circle, #ffedb0 0%, #fdd47a 60%, #e8a83a 100%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,220,100,.5), 0 0 120px 40px rgba(255,200,70,.3); animation: sd-sun 15s ease-in-out infinite alternate; }
.scn-sun-on-dunghill .dunghill { position:absolute; bottom:28%; left:50%; width:30%; height:18%; background: radial-gradient(ellipse 80% 60% at 50% 50%, #7a5a30 0%, #4a3018 70%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); animation: sd-dunghill 8s ease-in-out infinite alternate; }
.scn-sun-on-dunghill .ray      { position:absolute; top:15%; width:120%; height:2%; background: linear-gradient(90deg, transparent, rgba(255,240,200,.4), transparent); transform: rotate(20deg); animation: sd-ray 6s ease-in-out infinite; }
.scn-sun-on-dunghill .ray-1    { left:-10%; transform-origin: right center; animation-delay: 0s; }
.scn-sun-on-dunghill .ray-2    { left:-20%; top:20%; transform: rotate(-15deg); animation-duration: 8s; animation-delay: -3s; }
.scn-sun-on-dunghill .smoke    { position:absolute; bottom:45%; left:55%; width:4%; height:8%; background: radial-gradient(ellipse 60% 100% at 50% 50%, rgba(200,180,150,.3) 0%, transparent 80%); border-radius: 50%; filter: blur(3px); animation: sd-smoke 5s ease-in-out infinite; }
@keyframes sd-sky    { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes sd-sun    { 0% { transform: scale(.95) translateY(0) } 50% { transform: scale(1.05) translateY(-3px) } 100% { transform: scale(.95) translateY(0) } }
@keyframes sd-dunghill { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.04) } 100% { transform: scaleY(1) } }
@keyframes sd-ray    { 0% { opacity:0; transform: rotate(20deg) translateX(-20px) } 50% { opacity:.6; transform: rotate(20deg) translateX(0) } 100% { opacity:0; transform: rotate(20deg) translateX(20px) } }
@keyframes sd-smoke  { 0%,100% { transform: translateY(0) scale(1); opacity:.3 } 50% { transform: translateY(-10px) scale(1.2); opacity:.6 } }

.scn-item-falstaffs-letter-page { background: linear-gradient(180deg, #d4c4a8 0%, #c4b090 50%, #b09878 100%), radial-gradient(ellipse at 50% 60%, #c8b89a 0%, transparent 70%); }
.scn-item-falstaffs-letter-page .desk  { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #b09878 0%, #8a7050 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 8px 12px rgba(40,20,10,.4); }
.scn-item-falstaffs-letter-page .paper { position:absolute; bottom:30%; left:30%; width:45%; height:40%; background: linear-gradient(135deg, #faf3e0 0%, #ecdcc0 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 8px rgba(40,20,10,.3); transform: rotate(-2deg); animation: fl-paper 10s ease-in-out infinite alternate; }
.scn-item-falstaffs-letter-page .inkwell { position:absolute; bottom:26%; left:25%; width:8%; height:12%; background: radial-gradient(ellipse 70% 80% at 50% 40%, #4a3a2a 0%, #1a0a0a 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,.5); animation: fl-inkwell 8s ease-in-out infinite; }
.scn-item-falstaffs-letter-page .quill { position:absolute; bottom:30%; left:22%; width:4%; height:25%; background: linear-gradient(180deg, #f0e0c0 0%, #c8b090 50%, #8a7050 100%); border-radius: 20% 20% 40% 40%; transform: rotate(15deg); transform-origin: bottom center; animation: fl-quill 5s ease-in-out infinite alternate; }
.scn-item-falstaffs-letter-page .candle { position:absolute; bottom:34%; right:22%; width:6%; height:20%; background: linear-gradient(180deg, #f0d4a0 0%, #c8a878 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(40,20,10,.4); }
.scn-item-falstaffs-letter-page .flame { position:absolute; bottom:52%; right:22.5%; width:4%; height:8%; background: radial-gradient(circle at 50% 100%, #ffe8a0 0%, #ffa030 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,180,60,.5); animation: fl-flame 2s ease-in-out infinite alternate; }
.scn-item-falstaffs-letter-page .letter-text-line { position:absolute; left:32%; width:30%; height:1%; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 20%, #4a3a2a 40%, #6a5a4a 60%, #4a3a2a 80%, #6a5a4a 100%); border-radius: 2px; opacity:.6; }
.scn-item-falstaffs-letter-page .line-1 { bottom:55%; animation: fl-text 4s ease-in-out infinite; }
.scn-item-falstaffs-letter-page .line-2 { bottom:51%; width:20%; left:34%; animation: fl-text 4s ease-in-out infinite 1s; }
@keyframes fl-paper   { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes fl-inkwell { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes fl-quill   { 0% { transform: rotate(15deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(14deg) } }
@keyframes fl-flame   { 0% { transform: scaleY(.9); box-shadow: 0 0 15px 6px rgba(255,180,60,.4) } 50% { transform: scaleY(1.1); box-shadow: 0 0 25px 10px rgba(255,200,80,.6) } 100% { transform: scaleY(.95); box-shadow: 0 0 18px 8px rgba(255,180,60,.5) } }
@keyframes fl-text    { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.4 } }

.scn-revenge-humours { background: linear-gradient(180deg, #2a1a1a 0%, #3a2222 50%, #4a2a2a 100%), radial-gradient(ellipse at 70% 50%, #5a2a2a 0%, transparent 70%); }
.scn-revenge-humours .bg-wall  { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.6); }
.scn-revenge-humours .table   { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-revenge-humours .dagger  { position:absolute; bottom:38%; left:45%; width:4%; height:20%; background: linear-gradient(180deg, #c8c0b0 0%, #a09888 50%, #706858 100%); border-radius: 10% 10% 30% 30%; transform: rotate(25deg); transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: rh-dagger 3s ease-in-out infinite alternate; }
.scn-revenge-humours .hand    { position:absolute; bottom:36%; left:42%; width:10%; height:16%; background: radial-gradient(ellipse 70% 80% at 50% 30%, #6a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rh-hand 3s ease-in-out infinite alternate; }
.scn-revenge-humours .clasp   { position:absolute; bottom:42%; left:44%; width:3%; height:4%; background: radial-gradient(circle, #c8a878 0%, #a07850 100%); border-radius: 50%; box-shadow: 0 0 10px 3px rgba(200,168,120,.4); animation: rh-clasp 4s ease-in-out infinite; }
.scn-revenge-humours .shadow-figure { position:absolute; bottom:28%; right:10%; width:20%; height:50%; background: radial-gradient(ellipse 80% 90% at 50% 100%, #1a0a0a 0%, transparent 80%); border-radius: 40% 40% 20% 20%; filter: blur(4px); animation: rh-shadow 6s ease-in-out infinite alternate; }
.scn-revenge-humours .sparkle { position:absolute; bottom:50%; left:50%; width:2%; height:2%; background: radial-gradient(circle, #ffe0a0 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 10px 3px rgba(255,224,160,.6); animation: rh-sparkle 2s ease-in-out infinite; }
@keyframes rh-dagger  { 0% { transform: rotate(25deg) translateX(0) } 50% { transform: rotate(30deg) translateX(3px) } 100% { transform: rotate(25deg) translateX(0) } }
@keyframes rh-hand    { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes rh-clasp   { 0%,100% { transform: scale(1) } 50% { transform: scale(1.1) } }
@keyframes rh-shadow  { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.3 } }
@keyframes rh-sparkle { 0% { opacity:0; transform: scale(.5) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:0; transform: scale(.5) } }

/* -- Scene: pay-nay-word (funny, dim interior) -- */
.scn-pay-nay-word {
  background: linear-gradient(180deg, #2a1f1a 0%, #3d2b20 50%, #1e1410 100%), radial-gradient(ellipse at 30% 40%, #3d2b20 0%, transparent 70%);
}
.scn-pay-nay-word .backdrop {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a3628 0%, #2a1f1a 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; animation: pnw-fade 8s ease-in-out infinite alternate;
}
.scn-pay-nay-word .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 8%; background: linear-gradient(180deg, #5a4030 0%, #4a3020 100%); border-radius: 10px; box-shadow: 0 4px 10px rgba(0,0,0,.6); animation: pnw-float 6s ease-in-out infinite;
}
.scn-pay-nay-word .candle {
  position: absolute; bottom: 23%; left: 50%; width: 8px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #f0d090 0%, #b08040 50%, #6a4020 100%); border-radius: 4px; animation: pnw-flicker 2s ease-in-out infinite alternate;
}
.scn-pay-nay-word .figure-left {
  position: absolute; bottom: 22%; left: 20%; width: 40px; height: 70px; background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1e1410 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: pnw-bob 3s ease-in-out infinite;
}
.scn-pay-nay-word .figure-right {
  position: absolute; bottom: 22%; right: 20%; width: 40px; height: 70px; background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1e1410 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: pnw-bob 3s ease-in-out 0.5s infinite;
}
.scn-pay-nay-word .boy {
  position: absolute; bottom: 18%; left: 45%; width: 25px; height: 50px; background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1f1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pnw-headturn 5s ease-in-out infinite;
}
.scn-pay-nay-word .whisper-arc {
  position: absolute; bottom: 32%; left: 30%; right: 30%; height: 10px; background: radial-gradient(ellipse at 50% 0%, rgba(240,220,160,.3) 0%, transparent 80%); filter: blur(4px); animation: pnw-breathe 4s ease-in-out infinite alternate;
}
@keyframes pnw-fade { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .75; } }
@keyframes pnw-float { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } }
@keyframes pnw-flicker { 0% { opacity: .8; box-shadow: 0 0 12px 4px #f0d090; } 100% { opacity: 1; box-shadow: 0 0 20px 8px #f0d090; } }
@keyframes pnw-bob { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-4px); } }
@keyframes pnw-headturn { 0%,100% { transform: rotate(0deg); } 30% { transform: rotate(-10deg); } 60% { transform: rotate(10deg); } }
@keyframes pnw-breathe { 0% { opacity: .2; transform: scaleY(1); } 100% { opacity: .5; transform: scaleY(1.5); } }

/* -- Scene: cupid-carriers (tense, dim interior) -- */
.scn-cupid-carriers {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #0e0e1e 100%), radial-gradient(ellipse at 60% 50%, #2a2a3e 0%, transparent 70%);
}
.scn-cupid-carriers .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); animation: cpc-pulse 12s ease-in-out infinite alternate;
}
.scn-cupid-carriers .door {
  position: absolute; right: 5%; bottom: 10%; width: 70px; height: 120px; background: linear-gradient(180deg, #3a2a2a 0%, #1e1414 100%); border-radius: 4px 4px 0 0; box-shadow: 0 0 20px rgba(0,0,0,.5); animation: cpc-sway 15s ease-in-out infinite;
}
.scn-cupid-carriers .man {
  position: absolute; bottom: 12%; left: 15%; width: 45px; height: 90px; background: radial-gradient(ellipse at 50% 30%, #2a1a2e 0%, #1a0e1e 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: cpc-tremble 2s ease-in-out infinite;
}
.scn-cupid-carriers .purse {
  position: absolute; bottom: 25%; left: 12%; width: 12px; height: 16px; background: radial-gradient(circle, #6a6040 0%, #3a3020 100%); border-radius: 30% 30% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.6); animation: cpc-grip 2s ease-in-out infinite;
}
.scn-cupid-carriers .woman {
  position: absolute; bottom: 12%; left: 55%; width: 40px; height: 80px; background: radial-gradient(ellipse at 50% 30%, #3a2a3a 0%, #1e141e 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; animation: cpc-leave 6s ease-in-out infinite;
}
.scn-cupid-carriers .boy {
  position: absolute; bottom: 10%; left: 62%; width: 20px; height: 40px; background: radial-gradient(ellipse at 50% 30%, #3a2a3a 0%, #1e141e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cpc-leave 6s ease-in-out 0.5s infinite;
}
.scn-cupid-carriers .shadow-pool {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); animation: cpc-throb 3s ease-in-out infinite alternate;
}
@keyframes cpc-pulse { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes cpc-sway { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes cpc-tremble { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-1px); } 75% { transform: rotate(2deg) translateY(1px); } }
@keyframes cpc-grip { 0%,100% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(2px,-2px) rotate(10deg); } }
@keyframes cpc-leave { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(15px) scaleX(0.9); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes cpc-throb { 0% { opacity: .5; } 100% { opacity: .8; } }

/* -- Scene: sack-morning-draught (calm, dim interior) -- */
.scn-sack-morning-draught {
  background: linear-gradient(180deg, #3a3a2a 0%, #4a4a3a 50%, #2a2a1a 100%), radial-gradient(ellipse at 40% 60%, #4a4a3a 0%, transparent 70%);
}
.scn-sack-morning-draught .bg-warm {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); animation: smd-soft 18s ease-in-out infinite alternate;
}
.scn-sack-morning-draught .table {
  position: absolute; bottom: 20%; left: 20%; right: 30%; height: 8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: smd-rest 10s ease-in-out infinite;
}
.scn-sack-morning-draught .chair {
  position: absolute; bottom: 22%; right: 15%; width: 30px; height: 50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 30% 30%; transform: rotate(-5deg); animation: smd-creak 8s ease-in-out infinite;
}
.scn-sack-morning-draught .tankard {
  position: absolute; bottom: 28%; left: 30%; width: 20px; height: 30px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: smd-sway 6s ease-in-out infinite;
}
.scn-sack-morning-draught .figure-seated {
  position: absolute; bottom: 18%; left: 28%; width: 50px; height: 80px; background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: smd-breathe 5s ease-in-out infinite;
}
.scn-sack-morning-draught .steam {
  position: absolute; bottom: 38%; left: 30%; width: 20px; height: 15px; background: radial-gradient(ellipse at 50% 50%, rgba(220,210,180,.3) 0%, transparent 60%); filter: blur(6px); animation: smd-rise 12s linear infinite;
}
.scn-sack-morning-draught .hearth-glow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%; background: radial-gradient(ellipse at 70% 100%, rgba(240,200,120,.4) 0%, transparent 80%); animation: smd-glimmer 4s ease-in-out infinite alternate;
}
@keyframes smd-soft { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes smd-rest { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes smd-creak { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(-3deg); } }
@keyframes smd-sway { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } }
@keyframes smd-breathe { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02) translateY(-1px); } }
@keyframes smd-rise { 0% { transform: translateY(0) scale(1); opacity: .4; } 50% { transform: translateY(-20px) scale(1.5); opacity: .6; } 100% { transform: translateY(-40px) scale(2); opacity: 0; } }
@keyframes smd-glimmer { 0% { opacity: .2; } 100% { opacity: .5; } }

/* -- Scene: brook-arrives (warm, dim interior) -- */
.scn-brook-arrives {
  background: linear-gradient(180deg, #4a2a1a 0%, #5a3a2a 50%, #3a1a0a 100%), radial-gradient(ellipse at 50% 40%, #5a3a2a 0%, transparent 70%);
}
.scn-brook-arrives .room-back {
  position: absolute; inset: 0; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 0 0 20% 20%; animation: bar-warm 14s ease-in-out infinite alternate;
}
.scn-brook-arrives .doorway {
  position: absolute; right: 10%; bottom: 10%; width: 50px; height: 130px; background: linear-gradient(180deg, #4a2a1a 0%, #2a0a00 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: bar-door 20s ease-in-out infinite;
}
.scn-brook-arrives .figure-host {
  position: absolute; bottom: 15%; left: 20%; width: 50px; height: 100px; background: radial-gradient(ellipse at 50% 30%, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: bar-greeting 5s ease-in-out infinite;
}
.scn-brook-arrives .figure-guest {
  position: absolute; bottom: 15%; right: 20%; width: 50px; height: 100px; background: radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, #2a0a00 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: bar-approach 7s ease-in-out infinite;
}
.scn-brook-arrives .handshake {
  position: absolute; bottom: 30%; left: 44%; width: 12%; height: 6%; background: radial-gradient(ellipse at 50% 50%, #6a4a3a 0%, #4a2a1a 100%); border-radius: 40% 40% 20% 20%; transform: translateX(-50%); animation: bar-clasp 4s ease-in-out infinite;
}
.scn-brook-arrives .lantern {
  position: absolute; bottom: 15%; left: 10%; width: 12px; height: 18px; background: radial-gradient(circle at 50% 60%, #ffd080 0%, #b08040 60%, #5a3010 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 6px #ffd080; animation: bar-lantern 3s ease-in-out infinite alternate;
}
.scn-brook-arrives .welcome-glow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: radial-gradient(ellipse at 50% 100%, rgba(255,200,100,.3) 0%, transparent 70%); animation: bar-glow 6s ease-in-out infinite alternate;
}
@keyframes bar-warm { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes bar-door { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } }
@keyframes bar-greeting { 0%,100% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(5deg) translateY(-3px); } 60% { transform: rotate(-3deg) translateY(-1px); } }
@keyframes bar-approach { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-10px) scaleX(0.95); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes bar-clasp { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.1) rotate(2deg); } }
@keyframes bar-lantern { 0% { opacity: .8; box-shadow: 0 0 15px 4px #ffd080; } 100% { opacity: 1; box-shadow: 0 0 30px 10px #ffd080; } }
@keyframes bar-glow { 0% { opacity: .2; } 100% { opacity: .5; } }

/* castalion-king-urinal */
.scn-castalion-king-urinal { background: linear-gradient(180deg, #87ceeb 0%, #b8e0f4 40%, #fde8c4 100%), radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.4) 0%, transparent 70%); }
.scn-castalion-king-urinal .sky-castalion { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #6bb7e8 0%, #b0d8f0 100%); animation: cku-sky 12s ease-in-out infinite alternate; }
.scn-castalion-king-urinal .sun-castalion { position:absolute; top:12%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #fff8d0 0%, #ffd580 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,213,128,0.6); animation: cku-sun 8s ease-in-out infinite; }
.scn-castalion-king-urinal .wall-castalion { position:absolute; bottom:35%; left:0; right:0; height:40%; background: linear-gradient(90deg, #b59a7a 0%, #d4bc9e 30%, #e6d2b8 100%); border-radius: 0 0 20% 20% / 0 0 8% 8%; box-shadow: inset 0 -10px 15px rgba(0,0,0,0.2); }
.scn-castalion-king-urinal .ground-castalion { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8b7a5a 0%, #6b5a3a 100%); }
.scn-castalion-king-urinal .figure-castalion { position:absolute; bottom:28%; left:35%; width:40px; 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: cku-figure 4s ease-in-out infinite; }
.scn-castalion-king-urinal .helmet-castalion { position:absolute; bottom:68%; left:34%; width:34px; height:20px; background: linear-gradient(180deg, #c8a060 0%, #a07840 100%); border-radius: 40% 40% 0 0; transform: translateX(-2px); animation: cku-helmet 4s ease-in-out infinite; }
.scn-castalion-king-urinal .urinal-castalion { position:absolute; bottom:32%; left:50%; width:14px; height:18px; background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); border-radius: 40% 40% 10% 10%; transform: rotate(15deg); box-shadow: 0 4px 6px rgba(0,0,0,0.3); animation: cku-urinal 2s ease-in-out infinite alternate; }
.scn-castalion-king-urinal .shadow-castalion { position:absolute; bottom:28%; left:32%; width:50px; height:6px; background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(3px); animation: cku-shadow 4s ease-in-out infinite; }
@keyframes cku-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes cku-sun { 0%,100%{transform:scale(1) translate(0,0); opacity:0.9} 50%{transform:scale(1.05) translate(5px,-3px); opacity:1} }
@keyframes cku-figure { 0%{transform:translate(0,0) rotate(-1deg)} 25%{transform:translate(4px,-2px) rotate(1deg)} 50%{transform:translate(8px,0) rotate(-1deg)} 75%{transform:translate(12px,-2px) rotate(1deg)} 100%{transform:translate(16px,0) rotate(0deg)} }
@keyframes cku-helmet { 0%,100%{transform:translate(-2px,0) rotate(0)} 50%{transform:translate(-2px,-1px) rotate(3deg)} }
@keyframes cku-urinal { 0%{transform:rotate(10deg) scale(1)} 100%{transform:rotate(20deg) scale(1.1)} }
@keyframes cku-shadow { 0%,100%{width:50px; left:32%} 50%{width:60px; left:30%} }

/* mock-water-joke */
.scn-mock-water-joke { background: linear-gradient(180deg, #f0d8b0 0%, #e0c8a0 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%); }
.scn-mock-water-joke .wall-mockwater { position:absolute; inset:0; background: linear-gradient(90deg, #d4bc9e 0%, #b59a7a 100%); }
.scn-mock-water-joke .table-mockwater { position:absolute; bottom:12%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 4% 4% 0 0; box-shadow: 0 6px 10px rgba(0,0,0,0.3); }
.scn-mock-water-joke .jug-mockwater { position:absolute; bottom:32%; left:50%; width:30px; height:40px; transform:translate(-50%,0); background: linear-gradient(180deg, #c8a060 0%, #a07840 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 8px 12px rgba(0,0,0,0.4); animation: mwj-jug 6s ease-in-out infinite; }
.scn-mock-water-joke .hand-left-mockwater { position:absolute; bottom:28%; left:38%; width:20px; height:30px; background: linear-gradient(180deg, #e0c090 0%, #c0a080 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-20deg); transform-origin: bottom right; animation: mwj-hand-l 3s ease-in-out infinite alternate; }
.scn-mock-water-joke .hand-right-mockwater { position:absolute; bottom:28%; left:52%; width:20px; height:30px; background: linear-gradient(180deg, #e0c090 0%, #c0a080 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(20deg); transform-origin: bottom left; animation: mwj-hand-r 3s ease-in-out infinite alternate; }
.scn-mock-water-joke .splash-left-mockwater { position:absolute; bottom:38%; left:40%; width:8px; height:12px; background: radial-gradient(circle, #b0d8f0 0%, transparent 100%); border-radius:50%; filter: blur(2px); animation: mwj-splash 1.5s ease-in-out infinite; }
.scn-mock-water-joke .splash-right-mockwater { position:absolute; bottom:38%; left:52%; width:8px; height:12px; background: radial-gradient(circle, #b0d8f0 0%, transparent 100%); border-radius:50%; filter: blur(2px); animation: mwj-splash 1.5s ease-in-out infinite 0.75s; }
@keyframes mwj-jug { 0%,100%{transform:translate(-50%,0) rotate(0)} 50%{transform:translate(-50%,-5px) rotate(2deg)} }
@keyframes mwj-hand-l { 0%{transform:rotate(-20deg) translate(0,0)} 100%{transform:rotate(-10deg) translate(-5px,-3px)} }
@keyframes mwj-hand-r { 0%{transform:rotate(20deg) translate(0,0)} 100%{transform:rotate(10deg) translate(5px,-3px)} }
@keyframes mwj-splash { 0%{opacity:0; transform:scale(0.5)} 50%{opacity:1; transform:scale(1.5) translate(0,-5px)} 100%{opacity:0; transform:scale(0.5) translate(0,-10px)} }

/* clapper-claw */
.scn-clapper-claw { background: linear-gradient(180deg, #87ceeb 0%, #b8e0f4 40%, #f0d8b0 100%), radial-gradient(ellipse at 50% 100%, #c8b090 0%, transparent 70%); }
.scn-clapper-claw .sky-clapper { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #6bb7e8 0%, #b0d8f0 100%); animation: ccl-sky 10s ease-in-out infinite alternate; }
.scn-clapper-claw .ground-clapper { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b7a5a 0%, #5a4a3a 100%); }
.scn-clapper-claw .figure-big-clapper { position:absolute; bottom:22%; left:20%; width:50px; height:80px; background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ccl-big 3s ease-in-out infinite; }
.scn-clapper-claw .figure-small-clapper { position:absolute; bottom:22%; left:55%; width:40px; 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: ccl-small 3s ease-in-out infinite 0.5s; }
.scn-clapper-claw .dust-clapper { position:absolute; bottom:20%; left:30%; width:60px; height:20px; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,150,0.6) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: ccl-dust 2s ease-in-out infinite; }
.scn-clapper-claw .tree-clapper { position:absolute; bottom:30%; left:75%; width:20px; height:60px; background: linear-gradient(180deg, #6b4a2a 0%, #4a2a1a 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom center; animation: ccl-tree 6s ease-in-out infinite; }
.scn-clapper-claw .ear-clapper { position:absolute; bottom:58%; left:32%; width:12px; height:16px; background: #c8553d; border-radius: 50% 50% 0 0; transform: rotate(-10deg); animation: ccl-ear 1.5s ease-in-out infinite alternate; }
@keyframes ccl-sky { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes ccl-big { 0%{transform:translateX(0) rotate(0)} 25%{transform:translateX(15px) rotate(5deg)} 50%{transform:translateX(30px) rotate(-5deg)} 75%{transform:translateX(15px) rotate(3deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes ccl-small { 0%{transform:translateX(0) rotate(0)} 25%{transform:translateX(-10px) rotate(-5deg)} 50%{transform:translateX(-20px) rotate(5deg)} 75%{transform:translateX(-10px) rotate(-3deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes ccl-dust { 0%{transform:scale(1) translate(0,0); opacity:0.6} 50%{transform:scale(2) translate(10px,-5px); opacity:0.2} 100%{transform:scale(1) translate(0,0); opacity:0.6} }
@keyframes ccl-tree { 0%,100%{transform:scale(1) rotate(0)} 50%{transform:scale(1.02) rotate(2deg)} }
@keyframes ccl-ear { 0%{transform:rotate(-10deg) scale(1)} 100%{transform:rotate(-20deg) scale(1.2)} }

/* frogmore-plot */
.scn-frogmore-plot { background: linear-gradient(180deg, #87ceeb 0%, #a8d8f0 40%, #e8d4b0 100%), radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.4) 0%, transparent 60%); }
.scn-frogmore-plot .sky-frogmore { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #4a90d9 0%, #87ceeb 100%); animation: fmp-sky 15s ease-in-out infinite alternate; }
.scn-frogmore-plot .hills-frogmore { position:absolute; bottom:20%; left:0; right:0; height:20%; background: linear-gradient(180deg, #6b8a4a 0%, #4a6a2a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.2); animation: fmp-hills 20s ease-in-out infinite alternate; }
.scn-frogmore-plot .town-frogmore { position:absolute; bottom:10%; left:10%; right:10%; height:35%; background: linear-gradient(90deg, #b59a7a 0%, #d4bc9e 30%, #b59a7a 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 -5px 10px rgba(0,0,0,0.1); display: flex; align-items: flex-end; }
.scn-frogmore-plot .town-frogmore::before { content:''; position:absolute; bottom:0; left:15%; width:12%; height:80%; background: linear-gradient(180deg, #c8a060 0%, #a07840 100%); border-radius: 4% 4% 0 0; } /* building */
.scn-frogmore-plot .town-frogmore::after { content:''; position:absolute; bottom:0; right:15%; width:10%; height:60%; background: linear-gradient(180deg, #a07840 0%, #806040 100%); border-radius: 4% 4% 0 0; } /* building */
.scn-frogmore-plot .signpost-frogmore { position:absolute; bottom:42%; left:50%; width:6px; height:30px; background: #6b4a2a; transform:translate(-50%,0); border-radius: 10%; animation: fmp-sign 4s ease-in-out infinite; }
.scn-frogmore-plot .signpost-frogmore::before { content:''; position:absolute; top:-10px; left:-6px; width:18px; height:8px; background: #d4a03a; border-radius: 20%; }
.scn-frogmore-plot .figure-frogmore { position:absolute; bottom:8%; 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: fmp-figure 5s ease-in-out infinite; }
.scn-frogmore-plot .path-frogmore { position:absolute; bottom:0; left:35%; right:35%; height:8%; background: linear-gradient(90deg, #d4bc9e 0%, #c8b090 50%, #b59a7a 100%); border-radius: 50% 50% 0 0; filter: blur(2px); animation: fmp-path 8s ease-in-out infinite alternate; }
@keyframes fmp-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes fmp-hills { 0%{transform:translateY(0)} 50%{transform:translateY(-4px)} 100%{transform:translateY(0)} }
@keyframes fmp-sign { 0%,100%{transform:translate(-50%,0) rotate(0)} 50%{transform:translate(-50%,-2px) rotate(3deg)} }
@keyframes fmp-figure { 0%{transform:translateX(0) rotate(0)} 25%{transform:translateX(8px) rotate(2deg)} 50%{transform:translateX(16px) rotate(-2deg)} 75%{transform:translateX(8px) rotate(1deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes fmp-path { 0%{width:30%; left:35%} 50%{width:40%; left:30%} 100%{width:30%; left:35%} }

/* host-horses - dim interior, warm amber, funny */
.scn-host-horses {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%), radial-gradient(ellipse at 50% 0%, #4a3a2a 0%, transparent 80%);
}
.scn-host-horses .wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(0deg, #4a3a2a 0%, transparent 100%);
  animation: hh-wall 12s ease-in-out infinite alternate;
}
.scn-host-horses .table {
  position:absolute; bottom:20%; left:10%; right:10%; height:5%;
  background: linear-gradient(180deg, #6a5038 0%, #4a3828 100%);
  border-radius: 4px;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.6);
  animation: hh-table 8s ease-in-out infinite alternate;
}
.scn-host-horses .lantern {
  position:absolute; bottom:35%; left:25%; width:14px; height:30px;
  background: radial-gradient(ellipse at 50% 60%, #f0c040 0%, #b08020 70%);
  border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 0 20px 8px #d09030, 0 0 40px 16px rgba(208,144,48,0.4);
  animation: hh-lantern-glow 3s ease-in-out infinite alternate;
}
.scn-host-horses .host {
  position:absolute; bottom:25%; left:30%; width:24px; height:44px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hh-walk-bounce 4s ease-in-out infinite;
}
.scn-host-horses .horse-silhouette {
  position:absolute; bottom:20%; right:15%; width:50px; height:40px;
  background: linear-gradient(180deg, #1a1208 0%, #0a0804 100%);
  border-radius: 60% 40% 30% 50% / 50% 50% 40% 40%;
  box-shadow: -2px 0 4px rgba(0,0,0,0.5);
  animation: hh-horse-bob 5s ease-in-out infinite;
}
.scn-host-horses .mug {
  position:absolute; bottom:22%; left:38%; width:12px; height:16px;
  background: linear-gradient(180deg, #8a7050 0%, #5a4830 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: 1px 1px 3px rgba(0,0,0,0.5);
  animation: hh-mug-lift 6s ease-in-out infinite;
}
.scn-host-horses .bottle {
  position:absolute; bottom:24%; left:50%; width:10px; height:28px;
  background: linear-gradient(180deg, #7a6040 0%, #4a3820 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  animation: hh-bottle-tilt 7s ease-in-out infinite alternate;
}
@keyframes hh-wall { 0%,100% { opacity:0.7 } 50% { opacity:0.9 } }
@keyframes hh-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(2px) } }
@keyframes hh-lantern-glow { 0%,100% { box-shadow: 0 0 15px 5px #d09030, 0 0 30px 10px rgba(208,144,48,0.3); opacity:0.8 } 50% { box-shadow: 0 0 30px 12px #f0c040, 0 0 60px 20px rgba(240,192,64,0.5); opacity:1 } }
@keyframes hh-walk-bounce { 0%,100% { transform: translateX(0) translateY(0) rotate(-3deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-2px) rotate(2deg) } }
@keyframes hh-horse-bob { 0%,100% { transform: rotate(0) scaleY(1) } 50% { transform: rotate(-5deg) scaleY(0.95) } }
@keyframes hh-mug-lift { 0%,100% { transform: translateY(0) rotate(0) } 33% { transform: translateY(-3px) rotate(-10deg) } 66% { transform: translateY(0) rotate(5deg) } }
@keyframes hh-bottle-tilt { 0%,100% { transform: rotate(0) } 50% { transform: rotate(15deg) } }

/* ford-house-plot - bright interior, calm mood */
.scn-ford-house-plot {
  background: linear-gradient(180deg, #f8f0e0 0%, #e0d0b0 100%), radial-gradient(ellipse at 50% 30%, #fff8ee 0%, transparent 60%);
}
.scn-ford-house-plot .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(90deg, #e8d8c0 0%, #f0e0c8 50%, #e8d8c0 100%);
  animation: fh-wall-light 15s ease-in-out infinite alternate;
}
.scn-ford-house-plot .window-light {
  position:absolute; top:15%; left:60%; width:24%; height:30%;
  background: radial-gradient(ellipse at 50% 40%, #fff8f0 0%, #f0e0c0 70%);
  border-radius: 10%;
  box-shadow: inset 0 0 30px 10px #fff0d0, 0 0 20px 5px rgba(255,255,200,0.3);
  animation: fh-window-bright 8s ease-in-out infinite alternate;
}
.scn-ford-house-plot .table {
  position:absolute; bottom:20%; left:20%; right:20%; height:6%;
  background: linear-gradient(180deg, #c8b898 0%, #a08868 100%);
  border-radius: 6px;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.2);
  animation: fh-table-still 12s ease-in-out infinite alternate;
}
.scn-ford-house-plot .figure-left {
  position:absolute; bottom:22%; left:25%; width:20px; height:42px;
  background: linear-gradient(180deg, #c8b8a0 0%, #a09078 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fh-figure-left 6s ease-in-out infinite;
}
.scn-ford-house-plot .figure-right {
  position:absolute; bottom:22%; right:25%; width:22px; height:44px;
  background: linear-gradient(180deg, #d0c0a8 0%, #b0a088 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fh-figure-right 6s ease-in-out infinite;
}
.scn-ford-house-plot .letter {
  position:absolute; bottom:30%; left:48%; width:16px; height:10px;
  background: linear-gradient(180deg, #f0e8d8 0%, #d0c0a0 100%);
  border-radius: 4px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.3);
  animation: fh-letter-float 10s ease-in-out infinite alternate;
}
@keyframes fh-wall-light { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes fh-window-bright { 0%,100% { box-shadow: inset 0 0 20px 5px #fff0d0, 0 0 10px 2px rgba(255,255,200,0.2); opacity:0.85 } 50% { box-shadow: inset 0 0 40px 15px #fff8e8, 0 0 30px 8px rgba(255,255,200,0.5); opacity:1 } }
@keyframes fh-table-still { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes fh-figure-left { 0%,100% { transform: rotate(0) translateY(0) } 25% { transform: rotate(-3deg) translateY(-1px) } 50% { transform: rotate(2deg) translateY(0) } 75% { transform: rotate(-1deg) translateY(-1px) } }
@keyframes fh-figure-right { 0%,100% { transform: rotate(0) translateY(0) } 25% { transform: rotate(2deg) translateY(-1px) } 50% { transform: rotate(-3deg) translateY(0) } 75% { transform: rotate(1deg) translateY(-1px) } }
@keyframes fh-letter-float { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(5deg) } }

/* herne-oak-plot - dark, dim night exterior */
.scn-herne-oak-plot {
  background: linear-gradient(180deg, #0a0a14 0%, #1a1a2e 100%), radial-gradient(ellipse at 70% 20%, #2a2a4e 0%, transparent 80%);
}
.scn-herne-oak-plot .sky-night {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(0deg, #151528 0%, #0a0a14 100%);
  animation: ho-sky-pulse 20s ease-in-out infinite alternate;
}
.scn-herne-oak-plot .oak-tree {
  position:absolute; bottom:30%; left:50%; width:90px; height:80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 15px 5px rgba(0,0,0,0.7);
  animation: ho-oak-sway 14s ease-in-out infinite alternate;
}
.scn-herne-oak-plot .moon {
  position:absolute; top:12%; right:20%; width:30px; height:30px;
  background: radial-gradient(circle, #d0d8e8 0%, #a0a8c0 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px #b0b8d0, 0 0 60px 25px rgba(176,184,208,0.3);
  animation: ho-moon-glow 10s ease-in-out infinite alternate;
}
.scn-herne-oak-plot .figure-cloak {
  position:absolute; bottom:28%; left:35%; width:20px; height:48px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ho-figure-creep 8s ease-in-out infinite;
}
.scn-herne-oak-plot .lantern {
  position:absolute; bottom:33%; left:42%; width:8px; height:12px;
  background: radial-gradient(ellipse at 50% 50%, #b09040 0%, #705820 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px 6px #806030, 0 0 20px 10px rgba(128,96,48,0.4);
  animation: ho-lantern-swing 4s ease-in-out infinite alternate;
}
.scn-herne-oak-plot .ground {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #0a0a14 0%, #1a1a2e 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: ho-ground-shimmer 18s ease-in-out infinite alternate;
}
@keyframes ho-sky-pulse { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes ho-oak-sway { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(3deg) } }
@keyframes ho-moon-glow { 0%,100% { box-shadow: 0 0 20px 10px #b0b8d0, 0 0 40px 20px rgba(176,184,208,0.2); opacity:0.9 } 50% { box-shadow: 0 0 40px 20px #c0c8e0, 0 0 80px 30px rgba(192,200,224,0.4); opacity:1 } }
@keyframes ho-figure-creep { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(6px) translateY(0) rotate(-2deg) } 75% { transform: translateX(9px) translateY(-1px) rotate(1deg) } }
@keyframes ho-lantern-swing { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes ho-ground-shimmer { 0%,100% { opacity:0.7 } 50% { opacity:0.85 } }

/* mrs-page-plotting - bright interior, calm mood */
.scn-mrs-page-plotting {
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 100%), radial-gradient(ellipse at 50% 50%, #fff8ec 0%, transparent 70%);
}
.scn-mrs-page-plotting .wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(135deg, #e8dcc8 0%, #d8c8b0 100%);
  animation: mp-wall-glow 16s ease-in-out infinite alternate;
}
.scn-mrs-page-plotting .window {
  position:absolute; top:18%; left:65%; width:20%; height:28%;
  background: radial-gradient(ellipse at 50% 40%, #fff8f0 0%, #f0e0c8 70%);
  border-radius: 10%;
  box-shadow: inset 0 0 20px 5px #fff0d0, 0 0 10px 3px rgba(255,255,200,0.2);
  animation: mp-window-light 9s ease-in-out infinite alternate;
}
.scn-mrs-page-plotting .chair {
  position:absolute; bottom:22%; left:30%; width:28px; height:40px;
  background: linear-gradient(180deg, #b8a080 0%, #907858 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: mp-chair-settle 12s ease-in-out infinite;
}
.scn-mrs-page-plotting .table {
  position:absolute; bottom:20%; left:15%; right:15%; height:5%;
  background: linear-gradient(180deg, #c8b898 0%, #a08868 100%);
  border-radius: 4px;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.15);
  animation: mp-table-steady 18s ease-in-out infinite alternate;
}
.scn-mrs-page-plotting .mrs-page {
  position:absolute; bottom:22%; left:35%; width:20px; height:44px;
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a888 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mp-figure-pace 6s ease-in-out infinite;
}
.scn-mrs-page-plotting .fan {
  position:absolute; bottom:32%; right:35%; width:14px; height:20px;
  background: linear-gradient(135deg, #e0c8a0 0%, #c0a880 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  transform-origin: bottom center;
  animation: mp-fan-wave 4s ease-in-out infinite alternate;
}
.scn-mrs-page-plotting .letter {
  position:absolute; bottom:28%; left:45%; width:12px; height:8px;
  background: linear-gradient(180deg, #f0e8d8 0%, #d0c0a0 100%);
  border-radius: 3px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.2);
  animation: mp-letter-lift 7s ease-in-out infinite alternate;
}
@keyframes mp-wall-glow { 0%,100% { opacity:0.85 } 50% { opacity:1 } }
@keyframes mp-window-light { 0%,100% { opacity:0.8; box-shadow: inset 0 0 15px 3px #fff0d0, 0 0 8px 2px rgba(255,255,200,0.15) } 50% { opacity:1; box-shadow: inset 0 0 30px 10px #fff8e8, 0 0 20px 5px rgba(255,255,200,0.3) } }
@keyframes mp-chair-settle { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(1deg) } }
@keyframes mp-table-steady { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes mp-figure-pace { 0%,100% { transform: rotate(0) translateY(0) } 25% { transform: rotate(-2deg) translateY(-1px) } 50% { transform: rotate(1deg) translateY(0) } 75% { transform: rotate(-1deg) translateY(-1px) } }
@keyframes mp-fan-wave { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } }
@keyframes mp-letter-lift { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(3deg) } }

.scn-fairies-enter {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #1a0a00 60%, #0a0500 100%);
  box-shadow: inset 0 0 60px #4a2a0a;
}
.scn-fairies-enter .bg-fire { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, #3a1a0a 0%, transparent 70%); }
.scn-fairies-enter .wall-left { position:absolute; bottom:0; left:0; width:35%; height:100%; background: linear-gradient(90deg, #1a0a00 0%, #2a1a0a 100%); border-radius: 0 40% 0 0 / 0 60% 0 0; }
.scn-fairies-enter .wall-right { position:absolute; bottom:0; right:0; width:35%; height:100%; background: linear-gradient(270deg, #1a0a00 0%, #2a1a0a 100%); border-radius: 40% 0 0 0 / 60% 0 0 0; }
.scn-fairies-enter .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.8); }
.scn-fairies-enter .fireplace { position:absolute; bottom:25%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: #2a1a0a; border-radius: 10% 10% 5% 5%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6), 0 0 30px rgba(200,100,40,0.4); }
.scn-fairies-enter .flame { position:absolute; bottom:25%; left:50%; width:20px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse, #d08040 0%, #a05020 50%, transparent 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; filter: blur(2px); }
.scn-fairies-enter .flame-1 { animation: fe-flame1 1.5s ease-in-out infinite alternate; }
.scn-fairies-enter .flame-2 { width:14px; height:30px; animation: fe-flame2 1.8s ease-in-out infinite alternate; left:48%; }
.scn-fairies-enter .figure { position:absolute; bottom:25%; width:16px; height:50px; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-fairies-enter .figure-left { left:20%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%); animation: fe-run-left 1.6s ease-in-out infinite; }
.scn-fairies-enter .figure-right { right:20%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%); animation: fe-run-right 1.8s ease-in-out infinite; }
@keyframes fe-flame1 { 0% { transform: translateX(-50%) scaleY(0.8) rotate(-5deg); opacity:0.9; } 50% { transform: translateX(-50%) scaleY(1.1) rotate(3deg); opacity:1; } 100% { transform: translateX(-50%) scaleY(0.9) rotate(-2deg); opacity:0.85; } }
@keyframes fe-flame2 { 0% { transform: translateX(-50%) scaleY(0.7) rotate(4deg); opacity:0.8; } 50% { transform: translateX(-50%) scaleY(1.0) rotate(-4deg); opacity:0.95; } 100% { transform: translateX(-50%) scaleY(0.8) rotate(2deg); opacity:0.9; } }
@keyframes fe-run-left { 0% { transform: translateX(0) rotate(-5deg); } 25% { transform: translateX(10px) rotate(5deg); } 50% { transform: translateX(20px) rotate(-3deg); } 75% { transform: translateX(30px) rotate(4deg); } 100% { transform: translateX(40px) rotate(0deg); } }
@keyframes fe-run-right { 0% { transform: translateX(0) rotate(5deg); } 25% { transform: translateX(-10px) rotate(-5deg); } 50% { transform: translateX(-20px) rotate(3deg); } 75% { transform: translateX(-30px) rotate(-4deg); } 100% { transform: translateX(-40px) rotate(0deg); } }

.scn-item-fairy-tapers {
  background: linear-gradient(180deg, #0a1630 0%, #14203a 40%, #1a2a4a 70%, #0d1a2a 100%);
  box-shadow: inset 0 0 80px rgba(100,150,200,0.15);
}
.scn-item-fairy-tapers .sky-moon { position:absolute; inset:0; background: radial-gradient(ellipse at 70% 20%, #1a2a4a 0%, transparent 60%); }
.scn-item-fairy-tapers .moon { position:absolute; top:8%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #e0f0ff 0%, #b0c0d0 100%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(180,200,230,0.3), 0 0 80px 20px rgba(150,180,220,0.15); animation: ft-moon-glow 6s ease-in-out infinite alternate; }
.scn-item-fairy-tapers .tree { position:absolute; bottom:0; width:40px; height:60%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; }
.scn-item-fairy-tapers .tree-left { left:10%; }
.scn-item-fairy-tapers .tree-right { right:10%; transform: scaleX(-1); }
.scn-item-fairy-tapers .fairy { position:absolute; width:14px; height:30px; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; background: linear-gradient(180deg, #c0d0e0 0%, #8090a0 100%); }
.scn-item-fairy-tapers .fairy-a { bottom:40%; left:30%; animation: ft-fairy-a 8s ease-in-out infinite; }
.scn-item-fairy-tapers .fairy-b { bottom:50%; right:25%; animation: ft-fairy-b 9s ease-in-out infinite; animation-delay: -2s; }
.scn-item-fairy-tapers .taper { position:absolute; width:4px; height:10px; background: radial-gradient(ellipse, #ffe0a0 0%, #d08040 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,220,150,0.4); }
.scn-item-fairy-tapers .taper-1 { bottom:45%; left:32%; animation: ft-taper-flicker 2.4s ease-in-out infinite alternate; }
.scn-item-fairy-tapers .taper-2 { bottom:55%; right:22%; animation: ft-taper-flicker 1.5s ease-in-out infinite alternate; animation-delay: -0.7s; }
@keyframes ft-moon-glow { 0% { box-shadow: 0 0 30px 6px rgba(180,200,230,0.2), 0 0 60px 12px rgba(150,180,220,0.1); } 50% { box-shadow: 0 0 50px 12px rgba(200,220,255,0.3), 0 0 90px 20px rgba(180,200,240,0.2); } 100% { box-shadow: 0 0 35px 8px rgba(180,200,230,0.25), 0 0 70px 15px rgba(150,180,220,0.15); } }
@keyframes ft-fairy-a { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(20px,-30px) rotate(10deg); } 50% { transform: translate(-10px,-50px) rotate(-5deg); } 75% { transform: translate(15px,-80px) rotate(8deg); } 100% { transform: translate(0,-100px) rotate(0deg); } }
@keyframes ft-fairy-b { 0% { transform: translate(0,0) rotate(0deg); } 33% { transform: translate(-25px,-20px) rotate(-8deg); } 66% { transform: translate(10px,-60px) rotate(5deg); } 100% { transform: translate(-5px,-90px) rotate(-2deg); } }
@keyframes ft-taper-flicker { 0% { opacity:0.8; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.85; transform: scale(0.95); } }

.scn-fairy-pinching {
  background: linear-gradient(180deg, #0a0a0a 0%, #1a0a00 40%, #2a1a0a 70%, #1a0a00 100%);
  box-shadow: inset 0 0 80px #3a1a0a;
}
.scn-fairy-pinching .bg-night { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, #2a1a0a 0%, transparent 70%); }
.scn-fairy-pinching .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
.scn-fairy-pinching .fire-pit { position:absolute; bottom:20%; left:50%; width:60px; height:40px; transform:translateX(-50%); background: #2a1a0a; border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 20px rgba(200,100,40,0.3); }
.scn-fairy-pinching .flame-pinch { position:absolute; bottom:22%; left:50%; width:16px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse, #d07030 0%, #a05020 50%, transparent 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; filter: blur(1px); }
.scn-fairy-pinching .pinch-1 { animation: fp-flame1 1.6s ease-in-out infinite alternate; }
.scn-fairy-pinching .pinch-2 { width:12px; height:22px; left:48%; animation: fp-flame2 1.9s ease-in-out infinite alternate; }
.scn-fairy-pinching .figure-cower { position:absolute; bottom:22%; left:50%; width:24px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fp-cower 3s ease-in-out infinite; }
.scn-fairy-pinching .fairy-pinch { position:absolute; width:10px; height:22px; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); }
.scn-fairy-pinching .fairy-p-a { bottom:30%; left:35%; animation: fp-fairy-a 5s ease-in-out infinite; }
.scn-fairy-pinching .fairy-p-b { bottom:35%; right:30%; animation: fp-fairy-b 5.5s ease-in-out infinite; animation-delay: -1.5s; }
@keyframes fp-flame1 { 0% { transform: translateX(-50%) scaleY(0.7) rotate(-3deg); opacity:0.9; } 50% { transform: translateX(-50%) scaleY(1.0) rotate(4deg); opacity:1; } 100% { transform: translateX(-50%) scaleY(0.8) rotate(-1deg); opacity:0.85; } }
@keyframes fp-flame2 { 0% { transform: translateX(-50%) scaleY(0.6) rotate(5deg); opacity:0.8; } 50% { transform: translateX(-50%) scaleY(1.1) rotate(-5deg); opacity:0.95; } 100% { transform: translateX(-50%) scaleY(0.7) rotate(2deg); opacity:0.9; } }
@keyframes fp-cower { 0% { transform: translateX(-50%) scale(1) rotate(0deg); } 50% { transform: translateX(-50%) scale(0.95) rotate(5deg); } 100% { transform: translateX(-50%) scale(1) rotate(0deg); } }
@keyframes fp-fairy-a { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(10px,-10px) rotate(15deg); } 50% { transform: translate(20px,0) rotate(-10deg); } 75% { transform: translate(30px,-5px) rotate(5deg); } 100% { transform: translate(40px,-20px) rotate(0deg); } }
@keyframes fp-fairy-b { 0% { transform: translate(0,0) rotate(0deg); } 33% { transform: translate(-15px,-8px) rotate(-12deg); } 66% { transform: translate(-30px,5px) rotate(8deg); } 100% { transform: translate(-45px,-15px) rotate(-4deg); } }

.scn-fairy-instructions {
  background: linear-gradient(180deg, #0a1a2a 0%, #14203a 30%, #1a2a4a 60%, #0d1a2a 100%);
  box-shadow: inset 0 0 60px rgba(100,140,180,0.2);
}
.scn-fairy-instructions .castle-wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%); }
.scn-fairy-instructions .castle-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); box-shadow: inset 0 8px 16px rgba(0,0,0,0.5); }
.scn-fairy-instructions .window-moon { position:absolute; top:20%; left:30%; width:60px; height:80px; background: #2a2a3a; border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; box-shadow: inset 0 0 20px rgba(100,150,200,0.3); }
.scn-fairy-instructions .window-moon::after { content:''; position:absolute; top:10px; left:10px; width:40px; height:40px; background: radial-gradient(circle, #e0f0ff 0%, #8098b0 100%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(180,210,240,0.2); }
.scn-fairy-instructions .torch { position:absolute; bottom:30%; right:20%; width:8px; height:30px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 2px; }
.scn-fairy-instructions .torch::after { content:''; position:absolute; top:-10px; left:2px; width:12px; height:20px; background: radial-gradient(ellipse, #e0a060 0%, #c08040 50%, transparent 100%); border-radius:50%; filter: blur(1px); animation: fi-torch-flicker 2.6s ease-in-out infinite alternate; }
.scn-fairy-instructions .fairy-instr { position:absolute; width:12px; height:26px; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; background: linear-gradient(180deg, #c0d0e0 0%, #8090a0 100%); }
.scn-fairy-instructions .fairy-i1 { bottom:40%; left:20%; animation: fi-fairy1 10s ease-in-out infinite; }
.scn-fairy-instructions .fairy-i2 { bottom:45%; right:15%; animation: fi-fairy2 11s ease-in-out infinite; animation-delay: -3s; }
.scn-fairy-instructions .dust { position:absolute; bottom:35%; left:10%; width:40px; height:40px; background: radial-gradient(circle, rgba(200,220,255,0.3) 0%, transparent 70%); filter: blur(4px); animation: fi-dust-drift 8s ease-in-out infinite; }
@keyframes fi-torch-flicker { 0% { opacity:0.8; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.85; transform: scale(0.9); } }
@keyframes fi-fairy1 { 0% { transform: translate(0,0) rotate(0deg); } 20% { transform: translate(30px,-20px) rotate(12deg); } 40% { transform: translate(60px,-10px) rotate(-8deg); } 60% { transform: translate(90px,-40px) rotate(5deg); } 80% { transform: translate(120px,-30px) rotate(-3deg); } 100% { transform: translate(150px,-50px) rotate(0deg); } }
@keyframes fi-fairy2 { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(-25px,-15px) rotate(-10deg); } 50% { transform: translate(-50px,5px) rotate(6deg); } 75% { transform: translate(-75px,-25px) rotate(-4deg); } 100% { transform: translate(-100px,-35px) rotate(0deg); } }
@keyframes fi-dust-drift { 0% { transform: translate(0,0) scale(1); opacity:0.5; } 50% { transform: translate(20px,-30px) scale(1.2); opacity:0.8; } 100% { transform: translate(40px,-60px) scale(0.8); opacity:0.3; } }

/* Scene 1: husband-coming-search */
.scn-husband-coming-search {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #d4b68a 40%, #8a6e4b 100%),
    radial-gradient(ellipse at 80% 50%, #f0d8b0 0%, transparent 70%);
}
.scn-husband-coming-search .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #e8d5b5 0%, #c8b094 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.15);
}
.scn-husband-coming-search .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a6e4b 0%, #5a4a32 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
}
.scn-husband-coming-search .door-frame {
  position: absolute; bottom: 30%; right: 25%; width: 80px; height: 130px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
}
.scn-husband-coming-search .door-light {
  position: absolute; bottom: 32%; right: 27%; width: 60px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, #ffe8c0 0%, #d4b68a 70%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(255,232,192,0.4);
  animation: hc-door-glow 4s ease-in-out infinite alternate;
}
.scn-husband-coming-search .figure-woman {
  position: absolute; bottom: 30%; left: 30%; 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: hc-woman 3s ease-in-out infinite;
}
.scn-husband-coming-search .shadow-husband {
  position: absolute; bottom: 30%; right: 15%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  opacity: 0.6;
  animation: hc-shadow 5s ease-in-out infinite alternate;
}
.scn-husband-coming-search .window-pane {
  position: absolute; top: 10%; left: 15%; width: 70px; height: 90px;
  background: linear-gradient(135deg, #d4e0f0 0%, #a0b8d0 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(100,150,200,0.3);
  animation: hc-window 6s ease-in-out infinite alternate;
}
.scn-husband-coming-search .curtain {
  position: absolute; top: 10%; left: 14%; width: 20px; height: 90px;
  background: linear-gradient(180deg, #b87878 0%, #8a5050 100%);
  border-radius: 4px 20px 20px 4px;
  transform-origin: top left;
  animation: hc-curtain 7s ease-in-out infinite alternate;
}
@keyframes hc-door-glow { 0% { opacity: 0.7; box-shadow: 0 0 15px 4px rgba(255,232,192,0.3); } 50% { opacity: 1; box-shadow: 0 0 30px 10px rgba(255,232,192,0.6); } 100% { opacity: 0.8; box-shadow: 0 0 20px 6px rgba(255,232,192,0.4); } }
@keyframes hc-woman { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hc-shadow { 0% { transform: scaleX(1) translateX(0); opacity: 0.5; } 50% { transform: scaleX(1.1) translateX(5px); opacity: 0.7; } 100% { transform: scaleX(1) translateX(0); opacity: 0.6; } }
@keyframes hc-window { 0% { background: linear-gradient(135deg, #d4e0f0 0%, #a0b8d0 100%); } 50% { background: linear-gradient(135deg, #e0ecf8 0%, #b0c8e0 100%); } 100% { background: linear-gradient(135deg, #d4e0f0 0%, #a0b8d0 100%); } }
@keyframes hc-curtain { 0% { transform: rotate(0); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0); } }

/* Scene 2: basket-conveyance */
.scn-basket-conveyance {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 50%, #9a8a72 100%),
    radial-gradient(ellipse at 30% 70%, #d8c8a8 0%, transparent 60%);
}
.scn-basket-conveyance .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(135deg, #b8a888 25%, #a89878 25%, #a89878 50%, #b8a888 50%, #b8a888 75%, #a89878 75%);
  background-size: 30px 30px;
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  animation: bc-floor 8s linear infinite;
}
.scn-basket-conveyance .basket-body {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 60px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: bc-basket 4s ease-in-out infinite;
}
.scn-basket-conveyance .basket-lid {
  position: absolute; bottom: 45%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 20px;
  background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
  transform-origin: bottom center;
  animation: bc-lid 2s ease-in-out infinite alternate;
}
.scn-basket-conveyance .basket-shadow {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%);
  width: 90px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: bc-shadow 4s ease-in-out infinite;
}
.scn-basket-conveyance .hand-left {
  position: absolute; bottom: 30%; left: 35%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #d4b08a 0%, #a08060 100%);
  border-radius: 8px 8px 4px 4px;
  transform-origin: top center;
  animation: bc-hand-l 3s ease-in-out infinite;
}
.scn-basket-conveyance .hand-right {
  position: absolute; bottom: 30%; right: 35%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #d4b08a 0%, #a08060 100%);
  border-radius: 8px 8px 4px 4px;
  transform-origin: top center;
  animation: bc-hand-r 3s ease-in-out infinite;
}
.scn-basket-conveyance .footstep {
  position: absolute; bottom: 12%; left: 20%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 20% 20%;
  opacity: 0.9;
  animation: bc-step 5s linear infinite;
}
@keyframes bc-floor { 0% { background-position: 0 0; } 100% { background-position: 30px 0; } }
@keyframes bc-basket { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes bc-lid { 0% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes bc-shadow { 0% { transform: translateX(-50%) scale(1); opacity: 0.3; } 50% { transform: translateX(-50%) scale(1.1); opacity: 0.5; } 100% { transform: translateX(-50%) scale(1); opacity: 0.3; } }
@keyframes bc-hand-l { 0% { transform: rotate(20deg); } 33% { transform: rotate(25deg); } 66% { transform: rotate(15deg); } 100% { transform: rotate(20deg); } }
@keyframes bc-hand-r { 0% { transform: rotate(-20deg); } 33% { transform: rotate(-25deg); } 66% { transform: rotate(-15deg); } 100% { transform: rotate(-20deg); } }
@keyframes bc-step { 0% { transform: translateX(0) scale(1); opacity: 0.9; } 25% { transform: translateX(20px) scale(1.1); opacity: 0.6; } 50% { transform: translateX(40px) scale(1); opacity: 0.3; } 75% { transform: translateX(60px) scale(0.9); opacity: 0.6; } 100% { transform: translateX(80px) scale(1); opacity: 0.9; } }

/* Scene 3: falstaff-in-basket */
.scn-falstaff-in-basket {
  background:
    linear-gradient(180deg, #c8a87a 0%, #8a6a4a 40%, #4a3a2a 100%),
    radial-gradient(ellipse at 50% 100%, #6a4a2a 0%, transparent 60%);
}
.scn-falstaff-in-basket .room-corner {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d4b8a0 0%, #9a7a5a 50%, #6a4a2a 100%);
  clip-path: polygon(0 0, 100% 0, 100% 70%, 0 100%);
  animation: fb-corner 10s ease-in-out infinite alternate;
}
.scn-falstaff-in-basket .basket-large {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 100px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 50% 50%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: fb-basket 3s ease-in-out infinite;
}
.scn-falstaff-in-basket .basket-lip {
  position: absolute; bottom: 55%; left: 50%; transform: translateX(-50%);
  width: 130px; height: 14px;
  background: linear-gradient(180deg, #9a7a5a 0%, #6a4a2a 100%);
  border-radius: 30% 30% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-falstaff-in-basket .falstaff-leg {
  position: absolute; bottom: 55%; left: 40%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%;
  transform-origin: bottom center;
  animation: fb-leg 2s ease-in-out infinite;
}
.scn-falstaff-in-basket .falstaff-arm {
  position: absolute; bottom: 65%; right: 35%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: top center;
  animation: fb-arm 2.5s ease-in-out infinite;
}
.scn-falstaff-in-basket .shadow-creep {
  position: absolute; bottom: 15%; left: 30%; width: 40px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: fb-shadow 3.5s ease-in-out infinite;
}
.scn-falstaff-in-basket .candle-glow {
  position: absolute; top: 20%; left: 60%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #ffe080 0%, #c88030 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(255,224,128,0.5);
  animation: fb-candle 2s ease-in-out infinite alternate;
}
@keyframes fb-corner { 0% { opacity: 1; } 50% { opacity: 0.9; } 100% { opacity: 1; } }
@keyframes fb-basket { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes fb-leg { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(0) translateY(2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes fb-arm { 0% { transform: rotate(-15deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-15deg); } }
@keyframes fb-shadow { 0% { transform: translateX(0) scale(1); opacity: 0.4; } 50% { transform: translateX(5px) scale(1.2); opacity: 0.6; } 100% { transform: translateX(0) scale(1); opacity: 0.4; } }
@keyframes fb-candle { 0% { transform: scale(1); opacity: 0.9; box-shadow: 0 0 20px 5px rgba(255,224,128,0.4); } 50% { transform: scale(1.05); opacity: 1; box-shadow: 0 0 40px 15px rgba(255,224,128,0.6); } 100% { transform: scale(1); opacity: 0.9; box-shadow: 0 0 20px 5px rgba(255,224,128,0.4); } }

/* Scene 4: carry-to-laundress */
.scn-carry-to-laundress {
  background:
    linear-gradient(180deg, #f0e0c8 0%, #d0b898 40%, #907060 100%),
    radial-gradient(ellipse at 70% 30%, #e0c8a8 0%, transparent 50%);
}
.scn-carry-to-laundress .laundry-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d8c8a0 0%, #b8a080 50%, #806858 100%);
  clip-path: polygon(0 0, 100% 0, 100% 60%, 0 90%);
}
.scn-carry-to-laundress .basket-wicker {
  position: absolute; bottom: 20%; left: 35%; transform: translateX(-50%);
  width: 70px; height: 50px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: cl-basket 4s ease-in-out infinite;
}
.scn-carry-to-laundress .basket-cloth {
  position: absolute; bottom: 35%; left: 33%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b898 100%);
  border-radius: 10% 10% 30% 30% / 40% 40% 50% 50%;
  transform-origin: bottom center;
  animation: cl-cloth 5s ease-in-out infinite;
}
.scn-carry-to-laundress .figure-carrier {
  position: absolute; bottom: 22%; left: 20%; 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: cl-carrier 3.5s ease-in-out infinite;
}
.scn-carry-to-laundress .figure-laundress {
  position: absolute; bottom: 25%; right: 25%; width: 26px; height: 55px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: cl-laundress 4.5s ease-in-out infinite;
}
.scn-carry-to-laundress .steam {
  position: absolute; top: 10%; right: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,255,255,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: cl-steam 6s linear infinite;
}
.scn-carry-to-laundress .soap-bubble {
  position: absolute; top: 15%; left: 50%; width: 12px; height: 12px;
  background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, rgba(200,220,255,0.2) 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: cl-bubble 8s linear infinite;
}
@keyframes cl-basket { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes cl-cloth { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes cl-carrier { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes cl-laundress { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cl-steam { 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; } }
@keyframes cl-bubble { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 100% { transform: translateY(-60px) scale(0.5); opacity: 0; } }

/* ===== slender-jointure (funny, bright interior) ===== */
.scn-slender-jointure {
  background:
    linear-gradient(180deg, #fef3d9 0%, #f7e8c4 40%, #e6d4a8 100%),
    radial-gradient(ellipse at 30% 70%, #fff8e7 0%, transparent 60%);
}
.scn-slender-jointure .room-bg {
  position:absolute; inset:0; 
  background: linear-gradient(135deg, #fdf1d0 0%, #edd9aa 60%, #d4be8c 100%);
}
.scn-slender-jointure .window-light {
  position:absolute; top:8%; left:20%; width:120px; height:140px;
  background: radial-gradient(ellipse, #fffae0 0%, #f5e2b0 70%, transparent 100%);
  border-radius: 8px; opacity:0.6;
  animation: sj-window 7s ease-in-out infinite alternate;
}
.scn-slender-jointure .chair {
  position:absolute; bottom:15%; left:35%; width:70px; height:100px;
  background: linear-gradient(135deg, #8b6f47 0%, #6b5436 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: inset 4px 4px 8px rgba(0,0,0,0.3);
  animation: sj-chair 5s ease-in-out infinite;
}
.scn-slender-jointure .money-pouch {
  position:absolute; bottom:22%; left:46%; width:24px; height:20px;
  background: radial-gradient(circle at 40% 30%, #d4a960 0%, #b8893a 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: sj-pouch 2s ease-in-out infinite;
}
.scn-slender-jointure .slender-figure {
  position:absolute; bottom:10%; left:42%; width:28px; height:60px;
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a40 60%, #1e1e30 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: sj-slender 3s ease-in-out infinite;
}
.scn-slender-jointure .shallow-figure {
  position:absolute; bottom:10%; left:55%; width:32px; height:58px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 60%, #2a1a0a 100%);
  border-radius: 45% 40% 30% 30% / 65% 60% 35% 35%;
  transform-origin: bottom center;
  animation: sj-shallow 4s ease-in-out infinite 0.5s;
}
.scn-slender-jointure .speech-blob {
  position:absolute; top:20%; left:52%; width:40px; height:30px;
  background: radial-gradient(circle at 30% 40%, #fffbd6 0%, #f0e2b8 100%);
  border-radius: 50% 50% 20% 80% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  animation: sj-blob 3s ease-in-out infinite alternate;
}
@keyframes sj-window { 0% { opacity:0.5; transform:scaleX(0.95); } 50% { opacity:0.8; transform:scaleX(1.05); } 100% { opacity:0.6; transform:scaleX(0.98); } }
@keyframes sj-chair { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(1deg); } }
@keyframes sj-pouch { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px) scale(1.05); } }
@keyframes sj-slender { 0%,100% { transform:translateX(0) rotate(-2deg); } 25% { transform:translateX(5px) rotate(2deg); } 50% { transform:translateX(0) rotate(-1deg); } 75% { transform:translateX(-4px) rotate(1deg); } }
@keyframes sj-shallow { 0%,100% { transform:translateX(0) rotate(1deg); } 33% { transform:translateX(-3px) rotate(-1deg); } 66% { transform:translateX(4px) rotate(2deg); } }
@keyframes sj-blob { 0% { transform:scale(1) rotate(0deg); border-radius: 50% 50% 20% 80% / 60% 60% 40% 40%; } 50% { transform:scale(1.2) rotate(5deg); border-radius: 60% 40% 30% 70% / 70% 50% 50% 30%; } 100% { transform:scale(0.95) rotate(-3deg); border-radius: 40% 60% 50% 50% / 50% 70% 30% 50%; } }

/* ===== slender-wooing (funny, bright interior) ===== */
.scn-slender-wooing {
  background:
    linear-gradient(180deg, #fef1d6 0%, #f5deb3 50%, #e6c88a 100%),
    radial-gradient(ellipse at 80% 30%, #fff2d6 0%, transparent 60%);
}
.scn-slender-wooing .salon-bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #fbeccf 0%, #ecd6a2 100%);
}
.scn-slender-wooing .table {
  position:absolute; bottom:20%; left:35%; width:90px; height:40px;
  background: linear-gradient(135deg, #a0845c 0%, #7e6646 100%);
  border-radius: 30% 30% 5% 5% / 50% 50% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  animation: sw-table 8s ease-in-out infinite alternate;
}
.scn-slender-wooing .candle {
  position:absolute; bottom:46%; left:46%; width:8px; height:40px;
  background: linear-gradient(180deg, #fbe3a0 0%, #d4b06a 40%, #8a6a3a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 0 16px 4px #ffd78e;
  animation: sw-candle 2s ease-in-out infinite;
}
.scn-slender-wooing .slender-figure {
  position:absolute; bottom:10%; left:35%; width:30px; height:62px;
  background: linear-gradient(180deg, #3a3a50 0%, #25253a 60%, #15152a 100%);
  border-radius: 45% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: sw-slender 3.5s ease-in-out infinite;
}
.scn-slender-wooing .anne-figure {
  position:absolute; bottom:10%; left:52%; width:26px; height:58px;
  background: linear-gradient(180deg, #7a4a3a 0%, #5a3a2a 60%, #3a2a1a 100%);
  border-radius: 45% 40% 30% 30% / 75% 70% 25% 25%;
  transform-origin: bottom center;
  animation: sw-anne 4s ease-in-out infinite 0.3s;
}
.scn-slender-wooing .gesture-hand {
  position:absolute; bottom:22%; left:44%; width:20px; height:16px;
  background: radial-gradient(circle at 50% 40%, #d0a080 0%, #b08060 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform-origin: center bottom;
  animation: sw-hand 1.5s ease-in-out infinite alternate;
}
.scn-slender-wooing .lace-frill {
  position:absolute; bottom:14%; left:48%; width:14px; height:10px;
  background: radial-gradient(circle at 50% 30%, #f2e4d6 0%, #dcc8af 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(1px);
  animation: sw-frill 6s ease-in-out infinite;
}
@keyframes sw-table { 0%,100% { transform:translateY(0) scale(1); } 50% { transform:translateY(-2px) scale(0.98); } }
@keyframes sw-candle { 0%,100% { opacity:0.9; box-shadow: 0 0 16px 4px #ffd78e; } 50% { opacity:1; box-shadow: 0 0 24px 8px #ffdfa0; } }
@keyframes sw-slender { 0%,100% { transform:translateX(0) rotate(-1deg); } 33% { transform:translateX(4px) rotate(2deg); } 66% { transform:translateX(-3px) rotate(-1deg); } }
@keyframes sw-anne { 0%,100% { transform:translateX(0) rotate(1deg); } 50% { transform:translateX(-2px) rotate(-1deg); } }
@keyframes sw-hand { 0% { transform:rotate(0deg) scale(1); } 100% { transform:rotate(15deg) scale(1.1); } }
@keyframes sw-frill { 0%,100% { transform:scale(1) rotate(0deg); } 50% { transform:scale(1.3) rotate(10deg); } }

/* ===== anne-protest (tense, bright interior) ===== */
.scn-anne-protest {
  background:
    linear-gradient(160deg, #e8dcc8 0%, #cbb89a 50%, #a68e6a 100%),
    radial-gradient(ellipse at 40% 60%, #d4c4a8 0%, transparent 70%);
}
.scn-anne-protest .chamber {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #ede0c8 0%, #d2bf9a 60%, #b8a07a 100%);
}
.scn-anne-protest .window-bars {
  position:absolute; top:10%; right:12%; width:80px; height:110px;
  border-right: 3px solid #6a5a3a;
  border-left: 3px solid #6a5a3a;
  background: repeating-linear-gradient(0deg, transparent 0px, transparent 14px, #7a6a4a 14px, #7a6a4a 16px);
  border-radius: 4px;
  opacity:0.5;
  animation: ap-bars 3s ease-in-out infinite alternate;
}
.scn-anne-protest .anne-figure {
  position:absolute; bottom:10%; left:40%; width:26px; height:60px;
  background: linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 60%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ap-anne 1.6s ease-in-out infinite;
}
.scn-anne-protest .mother-figure {
  position:absolute; bottom:10%; left:52%; width:34px; height:56px;
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a40 60%, #1a1a2a 100%);
  border-radius: 45% 40% 30% 30% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: ap-mother 2.4s ease-in-out infinite 0.2s;
}
.scn-anne-protest .turnip {
  position:absolute; bottom:15%; left:34%; width:18px; height:16px;
  background: radial-gradient(circle at 40% 30%, #b08a5a 0%, #8a6a3a 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(0,0,0,0.4);
  animation: ap-turnip 1.5s ease-in-out infinite;
}
.scn-anne-protest .shadow-stripes {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: repeating-linear-gradient(0deg, rgba(0,0,0,0.15) 0px, rgba(0,0,0,0.15) 6px, transparent 6px, transparent 12px);
  animation: ap-stripes 4s linear infinite;
}
.scn-anne-protest .flung-arm {
  position:absolute; bottom:22%; left:44%; width:8px; height:20px;
  background: linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: ap-arm 1.8s ease-in-out infinite alternate;
}
@keyframes ap-bars { 0% { opacity:0.3; transform:scaleY(1); } 50% { opacity:0.6; transform:scaleY(1.05); } 100% { opacity:0.4; transform:scaleY(0.95); } }
@keyframes ap-anne { 0%,100% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(3px) rotate(5deg); } 50% { transform:translateX(-2px) rotate(-4deg); } 75% { transform:translateX(2px) rotate(3deg); } }
@keyframes ap-mother { 0%,100% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-2px) rotate(-2deg); } }
@keyframes ap-turnip { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(15deg); } }
@keyframes ap-stripes { 0% { background-position:0 0; } 100% { background-position:0 12px; } }
@keyframes ap-arm { 0% { transform:rotate(-20deg) scaleY(1); } 100% { transform:rotate(30deg) scaleY(1.2); } }

/* ===== fenton-ring-delivery (warm, bright interior) ===== */
.scn-fenton-ring-delivery {
  background:
    linear-gradient(180deg, #fceccc 0%, #f2d8a8 50%, #e0be82 100%),
    radial-gradient(ellipse at 60% 20%, #ffefd6 0%, transparent 60%);
}
.scn-fenton-ring-delivery .warm-room {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #fbe4ba 0%, #eccd96 60%, #d6b072 100%);
}
.scn-fenton-ring-delivery .window-glow {
  position:absolute; top:6%; left:10%; width:100px; height:130px;
  background: radial-gradient(ellipse, #fff6d6 0%, #f5deb3 70%, transparent 100%);
  border-radius: 8px; opacity:0.7;
  animation: fr-window 9s ease-in-out infinite alternate;
}
.scn-fenton-ring-delivery .fenton-figure {
  position:absolute; bottom:10%; left:38%; width:30px; height:62px;
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a40 60%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: fr-fenton 4s ease-in-out infinite;
}
.scn-fenton-ring-delivery .anne-figure {
  position:absolute; bottom:10%; left:50%; width:26px; height:58px;
  background: linear-gradient(180deg, #7a4a3a 0%, #5a3a2a 60%, #3a2a1a 100%);
  border-radius: 45% 40% 30% 30% / 75% 70% 25% 25%;
  transform-origin: bottom center;
  animation: fr-anne 4.5s ease-in-out infinite 0.4s;
}
.scn-fenton-ring-delivery .ring {
  position:absolute; bottom:24%; left:46%; width:10px; height:10px;
  background: radial-gradient(circle at 50% 40%, #ffe066 0%, #d4a040 70%, #b08830 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #ffd966, 0 0 24px 6px rgba(255,217,102,0.4);
  animation: fr-ring 2s ease-in-out infinite alternate;
}
.scn-fenton-ring-delivery .breath-hearts {
  position:absolute; top:20%; left:45%; width:12px; height:12px;
  background: radial-gradient(circle, #e87878 0%, #c8554a 100%);
  border-radius: 50% 50% 0 50%;
  transform: rotate(45deg) scale(0.8);
  animation: fr-hearts 3s ease-in-out infinite;
}
.scn-fenton-ring-delivery .hem-drape {
  position:absolute; bottom:0; left:0; right:0; height:18%;
  background: linear-gradient(180deg, transparent 0%, #c8a878 30%, #a08050 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: fr-drape 7s ease-in-out infinite alternate;
}
@keyframes fr-window { 0% { opacity:0.5; transform:scaleX(0.95); } 50% { opacity:0.8; transform:scaleX(1.05); } 100% { opacity:0.7; transform:scaleX(1); } }
@keyframes fr-fenton { 0%,100% { transform:translateX(0) rotate(0deg); } 33% { transform:translateX(3px) rotate(2deg); } 66% { transform:translateX(-2px) rotate(-1deg); } }
@keyframes fr-anne { 0%,100% { transform:translateX(0) rotate(1deg); } 50% { transform:translateX(-2px) rotate(-2deg); } }
@keyframes fr-ring { 0% { transform:scale(0.9) rotate(0deg); opacity:0.7; } 50% { transform:scale(1.3) rotate(15deg); opacity:1; } 100% { transform:scale(1) rotate(-5deg); opacity:0.8; } }
@keyframes fr-hearts { 0%,100% { transform:rotate(45deg) scale(0.8); opacity:0.6; } 50% { transform:rotate(45deg) scale(1.5); opacity:1; } }
@keyframes fr-drape { 0% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-3px) scaleY(1.02); } 100% { transform:translateY(0) scaleY(0.98); } }

/* item-witch-disguise */
.scn-item-witch-disguise {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d9c49a 50%, #b89a6b 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e7 0%, transparent 70%);
}
.scn-item-witch-disguise .bg-deep { position:absolute; inset:0; background: linear-gradient(135deg, #c9b894 0%, #a88860 100%); }
.scn-item-witch-disguise .window { position:absolute; top:18%; left:30%; width:100px; height:120px; background: linear-gradient(180deg, #fff8e7 0%, #f0dbc0 100%); border-radius: 8px; box-shadow: inset 0 0 30px #fff8e7, 0 0 40px rgba(255,248,231,.3); animation: iwd-glow 4s ease-in-out infinite alternate; }
.scn-item-witch-disguise .figure { position:absolute; bottom:20%; left:50%; width:60px; height:140px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2420 0%, #1a1410 100%); border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%; animation: iwd-sway 2.5s ease-in-out infinite; }
.scn-item-witch-disguise .hat { position:absolute; bottom:65%; left:50%; width:80px; height:40px; transform:translateX(-50%) rotate(-5deg); background: linear-gradient(135deg, #3a2a20 0%, #1a1210 100%); clip-path: polygon(20% 100%, 80% 100%, 50% 0%); animation: iwd-bob 3s ease-in-out infinite; }
.scn-item-witch-disguise .cloak { position:absolute; bottom:20%; left:42%; width:70px; height:100px; background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%); border-radius: 40% 40% 30% 30%; transform: rotate(4deg); animation: iwd-drift 5s ease-in-out infinite; }
.scn-item-witch-disguise .mask { position:absolute; bottom:44%; left:50%; width:24px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #c8553d 0%, #8a3a28 70%); border-radius: 50% 50% 40% 40%; box-shadow: 0 0 8px 2px #8a3a28; animation: iwd-turn 6s ease-in-out infinite; }
.scn-item-witch-disguise .shadow-fig { position:absolute; bottom:8%; left:35%; width:120px; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 100%); filter: blur(4px); animation: iwd-shrink 3s ease-in-out infinite; }
@keyframes iwd-glow { 0% { opacity:.7; box-shadow: inset 0 0 20px #fff8e7, 0 0 30px rgba(255,248,231,.2); } 50% { opacity:1; box-shadow: inset 0 0 60px #fff8e7, 0 0 80px rgba(255,248,231,.5); } 100% { opacity:.8; box-shadow: inset 0 0 30px #fff8e7, 0 0 40px rgba(255,248,231,.3); } }
@keyframes iwd-sway { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-52%) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes iwd-bob { 0%,100% { transform: translateX(-50%) rotate(-5deg) translateY(0); } 50% { transform: translateX(-50%) rotate(-7deg) translateY(-3px); } }
@keyframes iwd-drift { 0%,100% { transform: rotate(4deg) translateX(0); } 50% { transform: rotate(6deg) translateX(4px); } }
@keyframes iwd-turn { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-48%) scale(1.05); } }
@keyframes iwd-shrink { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.85); } }

/* ford-house-basket-again */
.scn-ford-house-basket-again {
  background:
    linear-gradient(180deg, #e6d5b8 0%, #c4a87a 50%, #9c7e52 100%),
    radial-gradient(ellipse at 40% 60%, #f5edd6 0%, transparent 70%);
}
.scn-ford-house-basket-again .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #d4be96 0%, #b09670 100%); }
.scn-ford-house-basket-again .table { position:absolute; bottom:10%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #8a6e4a 0%, #6a5030 100%); border-radius: 4px; box-shadow: 0 -6px 12px rgba(0,0,0,.2); }
.scn-ford-house-basket-again .basket { position:absolute; bottom:20%; left:35%; width:90px; height:60px; background: repeating-linear-gradient(45deg, #bc9a6a 0%, #bc9a6a 4px, #a08050 4px, #a08050 8px); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 12px rgba(0,0,0,.3); animation: fhb-shake 2s ease-in-out infinite; }
.scn-ford-house-basket-again .basket-figure { position:absolute; bottom:22%; left:40%; width:30px; height:40px; background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%); border-radius: 40% 40% 30% 30%; transform: rotate(8deg); animation: fhb-curdle 3s ease-in-out infinite; }
.scn-ford-house-basket-again .lid { position:absolute; bottom:38%; left:32%; width:100px; height:12px; background: linear-gradient(135deg, #b89668 0%, #9a7a4a 100%); border-radius: 8px 8px 0 0; transform: rotate(-12deg); transform-origin: left center; animation: fhb-tilt 4s ease-in-out infinite; }
.scn-ford-house-basket-again .shadow-basket { position:absolute; bottom:12%; left:30%; width:110px; height:16px; background: radial-gradient(ellipse, rgba(0,0,0,.25) 0%, transparent 100%); filter: blur(3px); animation: fhb-spread 2.5s ease-in-out infinite; }
@keyframes fhb-shake { 0%,100% { transform: rotate(0deg); } 20% { transform: rotate(-3deg); } 40% { transform: rotate(3deg); } 60% { transform: rotate(-2deg); } 80% { transform: rotate(2deg); } }
@keyframes fhb-curdle { 0%,100% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } }
@keyframes fhb-tilt { 0%,100% { transform: rotate(-12deg); } 50% { transform: rotate(-20deg); } }
@keyframes fhb-spread { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } }

/* witch-of-brentford */
.scn-witch-of-brentford {
  background:
    linear-gradient(180deg, #d9c8a8 0%, #b89a7a 40%, #907258 100%),
    radial-gradient(ellipse at 60% 20%, #f5edd6 0%, transparent 60%);
}
.scn-witch-of-brentford .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #c4aa82 0%, #a88862 100%); }
.scn-witch-of-brentford .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: repeating-linear-gradient(90deg, #907258 0%, #907258 8px, #7a6042 8px, #7a6042 16px); border-radius: 0; }
.scn-witch-of-brentford .figure-old { position:absolute; bottom:30%; left:45%; width:50px; height:110px; background: linear-gradient(180deg, #2a2420 0%, #1a1410 100%); border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%; transform: skewX(3deg); animation: wob-creep 4s ease-in-out infinite; }
.scn-witch-of-brentford .staff { position:absolute; bottom:28%; left:52%; width:8px; height:100px; background: linear-gradient(180deg, #6a5a42 0%, #4a3a2a 100%); border-radius: 4px; transform: rotate(10deg); transform-origin: bottom; animation: wob-staff 3s ease-in-out infinite; }
.scn-witch-of-brentford .broom { position:absolute; bottom:35%; left:38%; width:60px; height:8px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 4px; transform: rotate(-25deg); animation: wob-sweep 5s ease-in-out infinite; }
.scn-witch-of-brentford .shawl { position:absolute; bottom:45%; left:42%; width:70px; height:30px; background: linear-gradient(135deg, #6a5a42 0%, #4a3a2a 100%); border-radius: 60% 60% 40% 40%; filter: blur(1px); animation: wob-drape 6s ease-in-out infinite; }
.scn-witch-of-brentford .shadow-old { position:absolute; bottom:12%; left:40%; width:100px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.25) 0%, transparent 100%); filter: blur(5px); animation: wob-lengthen 4s ease-in-out infinite; }
@keyframes wob-creep { 0%,100% { transform: skewX(3deg) translateX(0); } 25% { transform: skewX(5deg) translateX(3px); } 50% { transform: skewX(3deg) translateX(0); } 75% { transform: skewX(1deg) translateX(-3px); } }
@keyframes wob-staff { 0%,100% { transform: rotate(10deg); } 50% { transform: rotate(15deg); } }
@keyframes wob-sweep { 0%,100% { transform: rotate(-25deg) translateY(0); } 50% { transform: rotate(-30deg) translateY(-2px); } }
@keyframes wob-drape { 0%,100% { transform: translateY(0); } 50% { transform: translateY(4px); } }
@keyframes wob-lengthen { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } }

/* aftermath-plot */
.scn-aftermath-plot {
  background:
    linear-gradient(180deg, #fce4c8 0%, #f0c8a0 50%, #d9ac82 100%),
    radial-gradient(ellipse at 80% 40%, #fff0d6 0%, transparent 60%);
}
.scn-aftermath-plot .bg-fun { position:absolute; inset:0; background: linear-gradient(135deg, #ffe8c4 0%, #f0d0a8 100%); }
.scn-aftermath-plot .altar { position:absolute; bottom:15%; left:50%; width:140px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #b89068 0%, #9a7250 100%); border-radius: 8px; box-shadow: 0 -4px 8px rgba(0,0,0,.2); }
.scn-aftermath-plot .cudgel { position:absolute; bottom:50%; left:50%; width:12px; height:70px; transform:translateX(-50%) rotate(15deg); background: linear-gradient(180deg, #a08050 0%, #7a5e36 100%); border-radius: 6px; transform-origin: bottom center; box-shadow: 0 0 10px rgba(0,0,0,.2); animation: amp-swing 2s ease-in-out infinite; }
.scn-aftermath-plot .ribbon { position:absolute; bottom:55%; left:50%; width:40px; height:6px; transform:translateX(-50%) rotate(45deg); background: linear-gradient(90deg, #e08040 0%, #f0a060 50%, #e08040 100%); border-radius: 3px; animation: amp-ribbon 3s ease-in-out infinite; }
.scn-aftermath-plot .figure-jester { position:absolute; bottom:20%; left:30%; width:40px; height:100px; background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%); border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: amp-jump 1.5s ease-in-out infinite; }
.scn-aftermath-plot .shadow-fun { position:absolute; bottom:10%; left:25%; width:70px; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,.2) 0%, transparent 100%); filter: blur(3px); animation: amp-squash 1.5s ease-in-out infinite; }
@keyframes amp-swing { 0%,100% { transform: translateX(-50%) rotate(15deg); } 50% { transform: translateX(-50%) rotate(-15deg); } }
@keyframes amp-ribbon { 0%,100% { transform: translateX(-50%) rotate(45deg) translateY(0); } 25% { transform: translateX(-50%) rotate(60deg) translateY(-4px); } 75% { transform: translateX(-50%) rotate(30deg) translateY(4px); } }
@keyframes amp-jump { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-10px); } }
@keyframes amp-squash { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } }

.scn-caius-seeks-green-box {
  background: linear-gradient(180deg, #1e1a16 0%, #2d241b 60%, #1a1510 100%), radial-gradient(ellipse at 30% 80%, #4a3b2a 0%, transparent 70%);
}
.scn-caius-seeks-green-box .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a2218 0%, #3c3024 50%, #201a14 100%);
  animation: cs-wall 12s ease-in-out infinite alternate;
}
.scn-caius-seeks-green-box .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2e20 0%, #1f1810 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-caius-seeks-green-box .caius {
  position: absolute; bottom: 20%; left: 20%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2d2218 0%, #16100a 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%;
  transform-origin: bottom center;
  animation: cs-caius 4s ease-in-out infinite;
}
.scn-caius-seeks-green-box .box {
  position: absolute; bottom: 38%; left: 58%; width: 20px; height: 16px;
  background: linear-gradient(135deg, #2e5a2e 0%, #1a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 0 12px 2px rgba(46,90,46,.3);
  animation: cs-box 6s ease-in-out infinite alternate;
}
.scn-caius-seeks-green-box .closet {
  position: absolute; bottom: 24%; right: 12%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1f14 0%, #1a120a 100%);
  border-radius: 6px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
}
.scn-caius-seeks-green-box .candle {
  position: absolute; bottom: 42%; left: 40%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #f0c070 0%, #b08030 100%);
  border-radius: 2px;
  box-shadow: 0 0 16px 6px #d09840, 0 0 32px 12px rgba(208,152,64,.3);
  animation: cs-candle 1.5s ease-in-out infinite alternate;
}
@keyframes cs-wall {
  0% { opacity: .7; filter: brightness(.95); }
  50% { opacity: .85; filter: brightness(1); }
  100% { opacity: .75; filter: brightness(.9); }
}
@keyframes cs-caius {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes cs-box {
  0% { box-shadow: 0 0 8px 1px rgba(46,90,46,.2); opacity: .9; }
  50% { box-shadow: 0 0 18px 4px rgba(46,90,46,.5); opacity: 1; }
  100% { box-shadow: 0 0 10px 2px rgba(46,90,46,.25); opacity: .92; }
}
@keyframes cs-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: .8; box-shadow: 0 0 14px 4px #c08830; }
  30% { transform: scaleY(1.05) scaleX(.95); opacity: 1; box-shadow: 0 0 20px 6px #e0a040; }
  70% { transform: scaleY(.97) scaleX(1.02); opacity: .9; box-shadow: 0 0 16px 5px #c08830; }
  100% { transform: scaleY(1) scaleX(1); opacity: .85; box-shadow: 0 0 14px 4px #b08030; }
}

.scn-item-green-box {
  background: linear-gradient(180deg, #1f1b17 0%, #2e251e 40%, #1a1510 100%), radial-gradient(ellipse at 60% 20%, #3e3228 0%, transparent 60%);
}
.scn-item-green-box .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #2a2218 0%, #3c3024 50%, #1f1814 100%);
  animation: ig-wall 15s ease-in-out infinite alternate;
}
.scn-item-green-box .arch {
  position: absolute; bottom: 20%; left: 20%; width: 50%; height: 80%;
  background: transparent;
  border: 6px solid #3a2e20;
  border-bottom: none;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
  animation: ig-arch 20s ease-in-out infinite;
}
.scn-item-green-box .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2c241a 0%, #1a140e 100%);
  box-shadow: inset 0 6px 15px rgba(0,0,0,.5);
}
.scn-item-green-box .rugby {
  position: absolute; bottom: 18%; left: 30%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #2a1f14 0%, #120e0a 100%);
  border-radius: 40% 40% 50% 50% / 60% 50% 40% 50%;
  transform-origin: bottom center;
  animation: ig-rugby 5s ease-in-out infinite;
}
.scn-item-green-box .rapier {
  position: absolute; bottom: 30%; left: 35%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #a08060 0%, #605040 100%);
  border-radius: 1px;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: ig-rapier 3s ease-in-out infinite alternate;
}
.scn-item-green-box .lantern {
  position: absolute; bottom: 50%; right: 25%; width: 8px; height: 12px;
  background: radial-gradient(circle, #d0b050 0%, #a08030 100%);
  border-radius: 3px;
  box-shadow: 0 0 20px 6px #c0a040, 0 0 40px 12px rgba(192,160,64,.3);
  animation: ig-lantern 2s ease-in-out infinite alternate;
}
@keyframes ig-wall {
  0% { filter: brightness(.9); }
  50% { filter: brightness(1.05); }
  100% { filter: brightness(.92); }
}
@keyframes ig-arch {
  0% { border-color: #3a2e20; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
  50% { border-color: #4a3e2e; box-shadow: inset 0 0 40px rgba(0,0,0,.7); }
  100% { border-color: #2e2218; box-shadow: inset 0 0 25px rgba(0,0,0,.55); }
}
@keyframes ig-rugby {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(3px) rotate(1deg); }
  60% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ig-rapier {
  0% { transform: rotate(12deg) scaleY(1); }
  50% { transform: rotate(18deg) scaleY(.98); }
  100% { transform: rotate(14deg) scaleY(1); }
}
@keyframes ig-lantern {
  0% { opacity: .7; box-shadow: 0 0 16px 4px #a08030; }
  50% { opacity: 1; box-shadow: 0 0 28px 8px #d0b050; }
  100% { opacity: .8; box-shadow: 0 0 18px 5px #b09040; }
}

.scn-simple-discovered {
  background: linear-gradient(180deg, #1a1612 0%, #2a2018 50%, #120e0a 100%), radial-gradient(ellipse at 70% 60%, #3a2a1e 0%, transparent 70%);
}
.scn-simple-discovered .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #221c14 0%, #342a1e 50%, #1a1410 100%);
  animation: sd-wall 10s ease-in-out infinite alternate;
}
.scn-simple-discovered .closet {
  position: absolute; bottom: 10%; right: 20%; width: 45px; height: 85px;
  background: linear-gradient(180deg, #2a1f14 0%, #1a120a 100%);
  border-radius: 8px;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.7), 0 0 20px rgba(0,0,0,.5);
  animation: sd-closet 8s ease-in-out infinite;
}
.scn-simple-discovered .door {
  position: absolute; bottom: 10%; right: 25%; width: 20px; height: 85px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e160e 100%);
  border-radius: 4px 0 0 4px;
  transform-origin: left center;
  animation: sd-door 5s ease-in-out infinite alternate;
}
.scn-simple-discovered .caius {
  position: absolute; bottom: 12%; left: 28%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #2d2218 0%, #14100a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 40% 50%;
  transform-origin: bottom center;
  animation: sd-caius 4s ease-in-out infinite;
}
.scn-simple-discovered .simple {
  position: absolute; bottom: 10%; left: 40%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #2a1e14 0%, #120e0a 100%);
  border-radius: 40% 50% 50% 40% / 50% 60% 50% 40%;
  transform-origin: bottom center;
  animation: sd-simple 4s ease-in-out infinite reverse;
}
.scn-simple-discovered .rug {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a2016 100%);
  border-radius: 50% / 100% 100% 0 0;
  transform: scaleX(1.1);
  box-shadow: inset 0 4px 8px rgba(0,0,0,.4);
  animation: sd-rug 12s ease-in-out infinite;
}
@keyframes sd-wall {
  0% { filter: brightness(.85); }
  50% { filter: brightness(1); }
  100% { filter: brightness(.88); }
}
@keyframes sd-closet {
  0% { box-shadow: inset 0 6px 12px rgba(0,0,0,.7), 0 0 20px rgba(0,0,0,.4); }
  50% { box-shadow: inset 0 8px 16px rgba(0,0,0,.8), 0 0 30px rgba(0,0,0,.6); }
  100% { box-shadow: inset 0 4px 10px rgba(0,0,0,.65), 0 0 20px rgba(0,0,0,.45); }
}
@keyframes sd-door {
  0% { transform: rotateY(0deg); opacity: .9; }
  50% { transform: rotateY(-15deg); opacity: .8; }
  100% { transform: rotateY(0deg); opacity: .95; }
}
@keyframes sd-caius {
  0% { transform: translateX(0) rotate(-3deg); }
  25% { transform: translateX(5px) rotate(2deg); }
  50% { transform: translateX(10px) rotate(-1deg); }
  75% { transform: translateX(5px) rotate(3deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes sd-simple {
  0% { transform: translateX(0) rotate(2deg); }
  20% { transform: translateX(-4px) rotate(-1deg); }
  50% { transform: translateX(-8px) rotate(3deg); }
  80% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes sd-rug {
  0% { transform: scaleX(1.1) translateY(0); }
  50% { transform: scaleX(1.05) translateY(-2px); }
  100% { transform: scaleX(1.1) translateY(0); }
}

.scn-caius-writes-challenge {
  background: linear-gradient(180deg, #1e1a16 0%, #2d241b 50%, #16120e 100%), radial-gradient(ellipse at 40% 60%, #3e3228 0%, transparent 70%);
}
.scn-caius-writes-challenge .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #2a2218 0%, #3c3024 50%, #1f1814 100%);
  animation: cw-wall 14s ease-in-out infinite alternate;
}
.scn-caius-writes-challenge .desk {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 10px;
  box-shadow: 0 8px 16px rgba(0,0,0,.6);
}
.scn-caius-writes-challenge .caius {
  position: absolute; bottom: 25%; left: 28%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #2d2218 0%, #14100a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 40% 50%;
  transform-origin: bottom center;
  animation: cw-caius 4s ease-in-out infinite;
}
.scn-caius-writes-challenge .paper {
  position: absolute; bottom: 28%; left: 42%; width: 24px; height: 18px;
  background: linear-gradient(180deg, #d8c8a0 0%, #b8a880 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  transform: rotate(-2deg);
  animation: cw-paper 8s ease-in-out infinite alternate;
}
.scn-caius-writes-challenge .ink {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 4px rgba(0,0,0,.5);
}
.scn-caius-writes-challenge .candle {
  position: absolute; bottom: 40%; left: 35%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #f0c070 0%, #b08030 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px #d09840, 0 0 40px 14px rgba(208,152,64,.3);
  animation: cw-candle 1.8s ease-in-out infinite alternate;
}
@keyframes cw-wall {
  0% { filter: brightness(.88); }
  50% { filter: brightness(1.02); }
  100% { filter: brightness(.9); }
}
@keyframes cw-caius {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes cw-paper {
  0% { transform: rotate(-2deg) translateY(0); opacity: .95; }
  50% { transform: rotate(-1deg) translateY(-1px); opacity: .98; }
  100% { transform: rotate(-3deg) translateY(0); opacity: .92; }
}
@keyframes cw-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: .75; box-shadow: 0 0 16px 4px #b08030; }
  30% { transform: scaleY(1.06) scaleX(.94); opacity: 1; box-shadow: 0 0 24px 6px #e0a040; }
  70% { transform: scaleY(.96) scaleX(1.03); opacity: .88; box-shadow: 0 0 18px 5px #c08830; }
  100% { transform: scaleY(1) scaleX(1); opacity: .8; box-shadow: 0 0 16px 4px #a07020; }
}

/* bears-in-town */
.scn-bears-in-town {
  background: linear-gradient(180deg, #f9e4b7 0%, #f5d0a0 30%, #d9b88a 100%), radial-gradient(ellipse at 50% 0%, #fff7e0 0%, transparent 60%);
}
.scn-bears-in-town .sky { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #b3d9ff 0%, #e6f0ff 60%, transparent); animation: bit-sky 14s ease-in-out infinite alternate; }
.scn-bears-in-town .clouds { position:absolute; top:12%; left:0; width:100%; height:20px; background:rgba(255,255,255,.7); border-radius:50%; filter:blur(8px); animation: bit-clouds 40s linear infinite; }
.scn-bears-in-town .bldg-left { position:absolute; bottom:40%; left:5%; width:40%; height:55%; background:linear-gradient(180deg, #c4a882 0%, #b09772 100%); border-radius:4% 4% 0 0; box-shadow:inset 0 -10px 20px rgba(0,0,0,.15); }
.scn-bears-in-town .bldg-right { position:absolute; bottom:40%; right:5%; width:35%; height:50%; background:linear-gradient(180deg, #b89e7a 0%, #a38763 100%); border-radius:4% 4% 0 0; box-shadow:inset 0 -10px 20px rgba(0,0,0,.2); }
.scn-bears-in-town .street { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(0deg, #8b7355 0%, #a0876a 40%, transparent); }
.scn-bears-in-town .bear { position:absolute; bottom:32%; left:30%; width:80px; height:70px; background:linear-gradient(180deg, #3d2b1f 0%, #241a12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bit-bear-walk 3s ease-in-out infinite; }
.scn-bears-in-town .man { position:absolute; bottom:34%; left:55%; width:20px; height:40px; background:linear-gradient(180deg, #5a3d2b 0%, #3a261a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bit-man-walk 4s ease-in-out infinite; }

@keyframes bit-sky { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes bit-clouds { 0% { transform: translateX(-100px); } 100% { transform: translateX(120vw); } }
@keyframes bit-bear-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(15px) translateY(-2px) rotate(0deg); } 50% { transform: translateX(30px) translateY(0) rotate(2deg); } 75% { transform: translateX(15px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes bit-man-walk { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(-8px) translateY(-1px) rotate(0deg); } 50% { transform: translateX(-16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(-8px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }

/* sackerson-bear */
.scn-sackerson-bear {
  background: linear-gradient(180deg, #f4d9a8 0%, #e8c68a 40%, #d4a76a 100%), radial-gradient(ellipse at 30% 80%, #fce4b0 0%, transparent 50%);
}
.scn-sackerson-bear .sky { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #c7e0ff 0%, transparent); animation: sb-sky 12s ease-in-out infinite alternate; }
.scn-sackerson-bear .arena { position:absolute; bottom:15%; left:10%; width:80%; height:75%; background:radial-gradient(ellipse at 50% 60%, #ab8a63 0%, #7d6243 100%); border-radius:50%; box-shadow:inset 0 20px 40px rgba(0,0,0,.3); animation: sb-arena 20s ease-in-out infinite; }
.scn-sackerson-bear .crowd-left { position:absolute; bottom:50%; left:2%; width:15%; height:30%; background: linear-gradient(180deg, #3d2b1f 0%, #1a120c 100%); border-radius:40% 40% 20% 20%; animation: sb-crowd 3s ease-in-out infinite; }
.scn-sackerson-bear .crowd-right { position:absolute; bottom:50%; right:2%; width:15%; height:30%; background: linear-gradient(180deg, #3d2b1f 0%, #1a120c 100%); border-radius:40% 40% 20% 20%; animation: sb-crowd 3s ease-in-out 1.5s infinite; }
.scn-sackerson-bear .bear { position:absolute; bottom:30%; left:38%; width:90px; height:80px; background:linear-gradient(180deg, #2a1f13 0%, #140e08 100%); border-radius:45% 55% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: sb-bear 5s ease-in-out infinite; }
.scn-sackerson-bear .post { position:absolute; bottom:28%; left:55%; width:8px; height:50px; background:linear-gradient(180deg, #5c4633 0%, #3b2d20 100%); border-radius:4px; animation: sb-post 7s ease-in-out infinite; }
.scn-sackerson-bear .chain { position:absolute; bottom:48%; left:48%; width:40px; height:4px; background:#7a6b5b; border-radius:2px; transform-origin: left center; animation: sb-chain 2s ease-in-out infinite alternate; }

@keyframes sb-sky { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes sb-arena { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes sb-crowd { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes sb-bear { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-4px) rotate(1deg); } 50% { transform: translateY(0) rotate(3deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes sb-post { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes sb-chain { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }

/* page-insists-dinner */
.scn-page-insists-dinner {
  background: linear-gradient(180deg, #ffe9c8 0%, #f7d9b0 60%, #dbb58a 100%), radial-gradient(ellipse at 50% 100%, #fff3df 0%, transparent 70%);
}
.scn-page-insists-dinner .doorway { position:absolute; bottom:20%; left:20%; width:60%; height:70%; background:linear-gradient(135deg, #b58c6a 0%, #8a6a4e 100%); border-radius:40% 40% 0 0 / 30% 30% 0 0; box-shadow:inset 0 20px 40px rgba(0,0,0,.2); animation: pid-doorway 10s ease-in-out infinite alternate; }
.scn-page-insists-dinner .interior-dim { position:absolute; bottom:23%; left:25%; width:50%; height:60%; background:radial-gradient(ellipse at 30% 50%, #c9a87c 0%, #9a7f5f 100%); border-radius:20% 20% 0 0; filter: blur(8px); }
.scn-page-insists-dinner .table { position:absolute; bottom:28%; left:30%; width:40%; height:18%; background:linear-gradient(180deg, #8a7055 0%, #6f583f 100%); border-radius:40% 40% 20% 20%; box-shadow:0 4px 8px rgba(0,0,0,.3); animation: pid-table 6s ease-in-out infinite; }
.scn-page-insists-dinner .chair-a { position:absolute; bottom:20%; left:32%; width:12%; height:30%; background:linear-gradient(180deg, #5f4a38 0%, #3f3024 100%); border-radius:20% 20% 10% 10%; transform-origin: bottom; animation: pid-chair 4s ease-in-out infinite; }
.scn-page-insists-dinner .chair-b { position:absolute; bottom:20%; right:32%; width:12%; height:30%; background:linear-gradient(180deg, #5f4a38 0%, #3f3024 100%); border-radius:20% 20% 10% 10%; transform-origin: bottom; animation: pid-chair 4s ease-in-out 2s infinite; }
.scn-page-insists-dinner .figure-a { position:absolute; bottom:25%; left:28%; width:18px; height:40px; background:linear-gradient(180deg, #3d2e20 0%, #1f160e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pid-figure-a 3.5s ease-in-out infinite; }
.scn-page-insists-dinner .figure-b { position:absolute; bottom:25%; right:28%; width:22px; height:44px; background:linear-gradient(180deg, #4b3827 0%, #2b1f14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pid-figure-b 4.2s ease-in-out infinite; }

@keyframes pid-doorway { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes pid-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pid-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes pid-figure-a { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-3px) translateY(-1px) rotate(-3deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes pid-figure-b { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(5px) translateY(-2px) rotate(5deg); } 60% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }

/* evans-sends-simple */
.scn-evans-sends-simple {
  background: linear-gradient(180deg, #f0dbb5 0%, #e0c69e 50%, #c9af87 100%), radial-gradient(ellipse at 20% 80%, #fff3e0 0%, transparent 60%);
}
.scn-evans-sends-simple .sky { position:absolute; inset:0 0 45% 0; background:linear-gradient(180deg, #a8d1f0 0%, transparent); animation: ess-sky 15s ease-in-out infinite alternate; }
.scn-evans-sends-simple .building { position:absolute; bottom:40%; left:5%; width:30%; height:50%; background:linear-gradient(180deg, #b5977a 0%, #9d8065 100%); border-radius:5% 5% 0 0; box-shadow:inset 0 -10px 20px rgba(0,0,0,.15); }
.scn-evans-sends-simple .sign { position:absolute; bottom:55%; left:22%; width:40px; height:20px; background:linear-gradient(180deg, #d4b48a 0%, #b8956e 100%); border-radius:4px; transform-origin: bottom left; animation: ess-sign 6s ease-in-out infinite alternate; }
.scn-evans-sends-simple .figure-evans { position:absolute; bottom:35%; left:22%; width:24px; height:50px; background:linear-gradient(180deg, #3d2b1f 0%, #241a12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ess-evans 5s ease-in-out infinite; }
.scn-evans-sends-simple .figure-simple { position:absolute; bottom:35%; left:38%; width:18px; height:38px; background:linear-gradient(180deg, #2d1f14 0%, #170e08 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ess-simple 4s ease-in-out infinite; }
.scn-evans-sends-simple .street { position:absolute; bottom:0; left:0; right:0; height:45%; background:linear-gradient(0deg, #7c684c 0%, #a78b6e 40%, transparent); }

@keyframes ess-sky { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes ess-sign { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes ess-evans { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(3deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ess-simple { 0% { transform: translateY(0) translateX(0); } 30% { transform: translateY(-2px) translateX(4px); } 60% { transform: translateY(0) translateX(0); } 100% { transform: translateY(-1px) translateX(2px); } }

.scn-boarding-above-deck { background: linear-gradient(180deg, #6ab0e6 0%, #4a8fc4 40%, #2a6a94 100%), radial-gradient(ellipse at 30% 100%, #4a8fc4 0%, transparent 60%); }
.scn-boarding-above-deck .sky    { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #8ec8f0 0%, #4a8fc4 100%); animation: bad-sky 12s ease-in-out infinite alternate; }
.scn-boarding-above-deck .sea    { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a6a8a 0%, #1a4a6a 100%), repeating-linear-gradient(90deg, transparent 0px, transparent 12px, rgba(255,255,255,0.08) 12px, rgba(255,255,255,0.08) 14px); animation: bad-sea 8s ease-in-out infinite alternate; }
.scn-boarding-above-deck .deck   { position:absolute; bottom:22%; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 8px 12px rgba(0,0,0,0.5); }
.scn-boarding-above-deck .railing{ position:absolute; bottom:38%; left:5%; right:5%; height:4%; background: linear-gradient(90deg, #4a2a1a 0%, #6a3a2a 50%, #4a2a1a 100%); border-radius: 2px; box-shadow: 0 -2px 4px rgba(0,0,0,0.3); animation: bad-rail 6s ease-in-out infinite; }
.scn-boarding-above-deck .figure.fatman{ position:absolute; bottom:26%; left:30%; width:36px; height:48px; background: radial-gradient(ellipse at 50% 30%, #c8a06a 0%, #a0784a 70%, #5a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bad-fatman 3s ease-in-out infinite; }
.scn-boarding-above-deck .barrel { position:absolute; bottom:24%; left:60%; width:26px; height:30px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.6); animation: bad-barrel 5s ease-in-out infinite; }
.scn-boarding-above-deck .flag   { position:absolute; top:12%; right:20%; width:30px; height:20px; background: linear-gradient(180deg, #c8553d 0%, #a03a2a 100%); clip-path: polygon(0 0, 100% 0, 75% 50%, 100% 100%, 0 100%); transform-origin: top left; animation: bad-flag 2s ease-in-out infinite alternate; }
.scn-boarding-above-deck .cloud-a{ position:absolute; top:10%; left:10%; width:80px; height:20px; background: rgba(255,255,255,0.4); border-radius: 50%; filter: blur(8px); animation: bad-cloud 40s linear infinite; }
.scn-boarding-above-deck .cloud-b{ position:absolute; top:18%; right:5%; width:60px; height:15px; background: rgba(255,255,255,0.3); border-radius: 50%; filter: blur(6px); animation: bad-cloud 50s linear infinite reverse; animation-delay: -20s; }
@keyframes bad-sky   { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes bad-sea   { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes bad-rail  { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(0.5deg) } 75% { transform: rotate(-0.5deg) } }
@keyframes bad-fatman{ 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(0) translateY(-4px) rotate(0deg) } 75% { transform: translateX(-4px) translateY(-2px) rotate(-1deg) } }
@keyframes bad-barrel{ 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes bad-flag  { 0% { transform: rotate(0deg) scaleX(1) } 100% { transform: rotate(15deg) scaleX(0.8) } }
@keyframes bad-cloud { 0% { transform: translateX(-60px) } 100% { transform: translateX(140vw) } }

.scn-husbands-approaching { background: linear-gradient(180deg, #f0d080 0%, #d0a050 40%, #b08030 100%), radial-gradient(ellipse at 50% 0%, #f0e0a0 0%, transparent 60%); }
.scn-husbands-approaching .sky    { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #f0e0a0 0%, #d0b060 100%); animation: hap-sky 20s ease-in-out infinite alternate; }
.scn-husbands-approaching .sun    { position:absolute; top:5%; left:50%; width:40px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, #ffe080 0%, #f0c040 70%); border-radius:50%; box-shadow: 0 0 60px 20px #f0c040, 0 0 120px 40px rgba(240,192,64,0.3); animation: hap-sun 30s linear infinite; }
.scn-husbands-approaching .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8a8a4a 0%, #5a5a2a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; }
.scn-husbands-approaching .bush   { position:absolute; bottom:12%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 100%, #4a7a2a 0%, #2a5a1a 100%); border-radius:50%; filter: blur(2px); }
.scn-husbands-approaching .bush.left { left:15%; animation: hap-bush 8s ease-in-out infinite; }
.scn-husbands-approaching .bush.right{ right:20%; width:50px; height:35px; animation: hap-bush 10s ease-in-out infinite reverse; }
.scn-husbands-approaching .woman  { position:absolute; bottom:14%; width:24px; height:44px; background: linear-gradient(180deg, #b0586a 0%, #7a3840 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-husbands-approaching .woman.left { left:35%; animation: hap-woman-l 4s ease-in-out infinite; }
.scn-husbands-approaching .woman.right{ left:48%; animation: hap-woman-r 4s ease-in-out infinite 0.5s; }
.scn-husbands-approaching .man    { position:absolute; bottom:10%; left:70%; 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: hap-man 6s ease-in-out infinite; }
@keyframes hap-sky    { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes hap-sun    { 0% { transform:translateX(-50%) rotate(0deg) } 100% { transform:translateX(-50%) rotate(360deg) } }
@keyframes hap-bush   { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1) } }
@keyframes hap-woman-l{ 0%,100% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-3px) rotate(0deg) } 60% { transform: translateY(-1px) rotate(2deg) } }
@keyframes hap-woman-r{ 0%,100% { transform: translateY(0) rotate(2deg) } 30% { transform: translateY(-4px) rotate(0deg) } 60% { transform: translateY(-2px) rotate(-2deg) } }
@keyframes hap-man    { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(-2px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(-5px) translateY(-4px) rotate(0deg) } 75% { transform: translateX(-2px) translateY(-2px) rotate(-1deg) } }

.scn-horns-warning { background: linear-gradient(180deg, #4a8ab0 0%, #2a5a7a 40%, #1a3a4a 100%), radial-gradient(ellipse at 60% 100%, #2a5a7a 0%, transparent 70%); }
.scn-horns-warning .sky    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a9ac0 0%, #2a5a7a 100%); animation: hw-sky 15s ease-in-out infinite alternate; }
.scn-horns-warning .sun.light{ position:absolute; top:8%; left:70%; width:30px; height:30px; background: radial-gradient(circle, #ffe0a0 0%, #d0a040 70%); border-radius:50%; box-shadow: 0 0 40px 10px #d0a040, 0 0 80px 20px rgba(208,160,64,0.4); animation: hw-sun 25s linear infinite; }
.scn-horns-warning .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a6a4a 0%, #2a4a2a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-horns-warning .tree   { position:absolute; bottom:20%; left:10%; width:20px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom; animation: hw-tree 4s ease-in-out infinite; }
.scn-horns-warning .tree::before{ content:''; position:absolute; top:-20px; left:-10px; width:40px; height:30px; background: radial-gradient(ellipse at 50% 100%, #2a5a1a 0%, #1a3a0a 100%); border-radius:50%; }
.scn-horns-warning .figure.nym{ position:absolute; bottom:18%; left:45%; width:22px; 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: hw-nym 2s ease-in-out infinite; }
.scn-horns-warning .horn   { position:absolute; bottom:28%; left:52%; width:16px; height:8px; background: linear-gradient(90deg, #c8a06a 0%, #8a6a3a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; transform: rotate(-20deg); transform-origin: left center; animation: hw-horn 1.5s ease-in-out infinite alternate; }
.scn-horns-warning .bird   { position:absolute; top:15%; right:15%; width:16px; height:8px; background: #1a1a2a; border-radius: 50%; clip-path: polygon(0 50%, 100% 0, 100% 100%); transform-origin: center; animation: hw-bird 3s ease-in-out infinite; }
.scn-horns-warning .shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%); animation: hw-shadow 10s ease-in-out infinite alternate; }
@keyframes hw-sky   { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes hw-sun   { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(180deg) scale(1.1) } 100% { transform: rotate(360deg) scale(1) } }
@keyframes hw-tree  { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } }
@keyframes hw-nym   { 0%,100% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-3px) rotate(2deg) } 60% { transform: translateY(-1px) rotate(-2deg) } 80% { transform: translateY(-4px) rotate(1deg) } }
@keyframes hw-horn  { 0% { transform: rotate(-25deg) scaleY(1) } 100% { transform: rotate(-15deg) scaleY(0.9) } }
@keyframes hw-bird  { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-8px) rotate(-10deg) } }
@keyframes hw-shadow{ 0% { opacity:0.3 } 100% { opacity:0.7 } }

.scn-corpral-nyms-humour { background: linear-gradient(180deg, #f0e070 0%, #d0b050 40%, #b09030 100%), radial-gradient(ellipse at 30% 100%, #e0c060 0%, transparent 60%); }
.scn-corpral-nyms-humour .sky    { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f8e888 0%, #e0c060 100%); animation: cnh-sky 18s ease-in-out infinite alternate; }
.scn-corpral-nyms-humour .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #b0a060 0%, #8a7a4a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-corpral-nyms-humour .figure.falstaff{ position:absolute; bottom:18%; left:25%; width:40px; height:56px; background: radial-gradient(ellipse at 50% 20%, #d8b078 0%, #a08050 70%, #6a4a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cnh-falstaff 3s ease-in-out infinite; }
.scn-corpral-nyms-humour .figure.nym   { position:absolute; bottom:20%; left:55%; width:20px; height:38px; background: linear-gradient(180deg, #3a3a5a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cnh-nym 2.5s ease-in-out infinite 0.3s; }
.scn-corpral-nyms-humour .hat    { position:absolute; bottom:42%; left:23%; width:30px; height:14px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 0 0; transform: rotate(-5deg); animation: cnh-hat 4s ease-in-out infinite; }
.scn-corpral-nyms-humour .mug    { position:absolute; bottom:16%; left:42%; width:16px; height:20px; background: linear-gradient(180deg, #c8a06a 0%, #a0784a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; animation: cnh-mug 2s ease-in-out infinite alternate; }
.scn-corpral-nyms-humour .table  { position:absolute; bottom:10%; left:30%; right:30%; height:6%; background: linear-gradient(90deg, #7a5a3a 0%, #9a7a5a 50%, #7a5a3a 100%); border-radius: 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: cnh-table 6s ease-in-out infinite; }
@keyframes cnh-sky    { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cnh-falstaff{ 0%,100% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-4px) rotate(1deg) } 50% { transform: translateX(4px) translateY(-2px) rotate(0deg) } 75% { transform: translateY(-3px) rotate(-1deg) } }
@keyframes cnh-nym    { 0%,100% { transform: translateY(0) rotate(2deg) } 30% { transform: translateY(-3px) rotate(-1deg) } 60% { transform: translateX(-3px) translateY(-1px) rotate(1deg) } 80% { transform: translateY(-4px) rotate(-2deg) } }
@keyframes cnh-hat    { 0%,100% { transform: rotate(-8deg) } 50% { transform: rotate(-2deg) } }
@keyframes cnh-mug    { 0% { transform: translateY(0) rotate(0deg) } 100% { transform: translateY(-2px) rotate(10deg) } }
@keyframes cnh-table  { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }

/* mistress-ford-arrives */
.scn-mistress-ford-arrives {
  background:
    linear-gradient(180deg, #ffe6b0 0%, #ffcc80 40%, #f9a825 100%),
    radial-gradient(circle at 80% 20%, #fff4e0 0%, transparent 70%);
}
.scn-mistress-ford-arrives .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b3d9ff 0%, #cce5ff 100%);
  animation: mfa-sky 12s ease-in-out infinite alternate;
}
.scn-mistress-ford-arrives .sun {
  position: absolute; top: 15%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe082 0%, #ffb300 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #ffb300, 0 0 80px 30px rgba(255,179,0,0.3);
  animation: mfa-sun 6s ease-in-out infinite alternate;
}
.scn-mistress-ford-arrives .path {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #d2b48c 0%, #c4a882 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 5px 10px rgba(0,0,0,0.1);
  animation: mfa-path 15s ease-in-out infinite alternate;
}
.scn-mistress-ford-arrives .bush-left {
  position: absolute; bottom: 40%; left: 10%; width: 70px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #6b8e23 0%, #4a7c1a 70%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.2);
  animation: mfa-bush 18s ease-in-out infinite alternate;
}
.scn-mistress-ford-arrives .bush-right {
  position: absolute; bottom: 40%; right: 15%; width: 80px; height: 45px;
  background: radial-gradient(ellipse at 50% 100%, #6b8e23 0%, #4a7c1a 70%);
  border-radius: 60% 40% 10% 10%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.2);
  animation: mfa-bush 14s ease-in-out infinite alternate-reverse;
}
.scn-mistress-ford-arrives .figure-1 {
  position: absolute; bottom: 33%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #8b4513 0%, #5c2e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mfa-walk1 4s ease-in-out infinite;
}
.scn-mistress-ford-arrives .figure-2 {
  position: absolute; bottom: 33%; right: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #8b4513 0%, #5c2e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mfa-walk2 4s ease-in-out infinite;
}
.scn-mistress-ford-arrives .flower-1 {
  position: absolute; bottom: 38%; left: 30%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ff69b4 0%, #c8507a 80%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #ff69b4;
  animation: mfa-flower 3s ease-in-out infinite alternate;
}
.scn-mistress-ford-arrives .flower-2 {
  position: absolute; bottom: 38%; right: 30%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ff69b4 0%, #c8507a 80%);
  border-radius: 50%;
  box-shadow: 0 0 4px 2px #ff69b4;
  animation: mfa-flower 2.5s ease-in-out infinite alternate-reverse;
}
@keyframes mfa-sky    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes mfa-sun    { 0% { transform: scale(0.95) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes mfa-path   { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mfa-bush   { 0% { transform: scale(1) } 50% { transform: scale(1.03) rotate(1deg) } 100% { transform: scale(1) } }
@keyframes mfa-walk1  { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes mfa-walk2  { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 25% { transform: translateX(-8px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(-16px) translateY(0) rotate(1deg) } 75% { transform: translateX(-24px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(-32px) translateY(0) rotate(0) } }
@keyframes mfa-flower { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }

/* knighted-nonsense */
.scn-knighted-nonsense {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e0c9a6 40%, #d19c5e 100%),
    radial-gradient(circle at 30% 40%, #fff8e1 0%, transparent 70%);
}
.scn-knighted-nonsense .wall {
  position: absolute; inset: 0 0 20% 0;
  background: repeating-linear-gradient(90deg, #d4b896 0px, #d4b896 4px, #c4a882 4px, #c4a882 8px);
  animation: knn-wall 2s linear infinite;
}
.scn-knighted-nonsense .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #6b4226 0%, #4a2e1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 8px 15px rgba(0,0,0,0.3);
  animation: knn-table 10s ease-in-out infinite alternate;
}
.scn-knighted-nonsense .helmet {
  position: absolute; bottom: 40%; left: 25%; width: 40px; height: 35px;
  background: linear-gradient(180deg, #a0a0a0 0%, #707070 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3), 0 5px 10px rgba(0,0,0,0.2);
  animation: knn-helmet 3s ease-in-out infinite alternate;
}
.scn-knighted-nonsense .helmet::after {
  content: ""; position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
  width: 20px; height: 15px;
  background: linear-gradient(180deg, #ff6347 0%, #c8553d 100%);
  border-radius: 50% 50% 0 0;
  animation: knn-plume 2s ease-in-out infinite alternate;
}
.scn-knighted-nonsense .figure-knight {
  position: absolute; bottom: 22%; left: 28%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #8b4513 0%, #5c2e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: knn-bow 5s ease-in-out infinite;
}
.scn-knighted-nonsense .scroll {
  position: absolute; bottom: 28%; left: 48%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 3px 6px rgba(0,0,0,0.2);
  animation: knn-scroll 4s ease-in-out infinite alternate;
}
.scn-knighted-nonsense .sword {
  position: absolute; bottom: 30%; left: 60%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 20% 20% 0 0;
  transform-origin: bottom center;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: knn-sword 2s ease-in-out infinite alternate;
}
@keyframes knn-wall  { 0% { background-position: 0 0 } 100% { background-position: 8px 0 } }
@keyframes knn-table  { 0% { transform: scale(1) } 50% { transform: scale(0.98) translateY(2px) } 100% { transform: scale(1) } }
@keyframes knn-helmet { 0% { transform: rotate(-2deg) } 50% { transform: rotate(0deg) scale(1.02) } 100% { transform: rotate(2deg) } }
@keyframes knn-plume  { 0% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(5deg) } 100% { transform: translateX(-50%) rotate(-5deg) } }
@keyframes knn-bow    { 0% { transform: rotate(0deg) } 25% { transform: rotate(-15deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(15deg) } 100% { transform: rotate(0deg) } }
@keyframes knn-scroll { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes knn-sword  { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-3px) } 100% { transform: rotate(0deg) translateY(0) } }

/* whale-ashore */
.scn-whale-ashore {
  background:
    linear-gradient(180deg, #a4d8f0 0%, #7ec8e3 40%, #5fa8d3 100%),
    radial-gradient(circle at 70% 60%, #cce5ff 0%, transparent 60%);
}
.scn-whale-ashore .sky-whale {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%);
  animation: waa-sky 20s ease-in-out infinite alternate;
}
.scn-whale-ashore .sea {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5fa8d3 0%, #2e6b8a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: waa-sea 10s ease-in-out infinite alternate;
}
.scn-whale-ashore .sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c2b280 0%, #a08c5c 100%);
  border-radius: 30% 20% 0 0 / 20% 15% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.15);
}
.scn-whale-ashore .whale-body {
  position: absolute; bottom: 25%; left: 30%; width: 120px; height: 60px;
  background: radial-gradient(ellipse at 40% 50%, #4a6fa5 0%, #2c4a6e 100%);
  border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.3), inset 0 -10px 15px rgba(0,0,0,0.2);
  animation: waa-whale 6s ease-in-out infinite;
}
.scn-whale-ashore .oil-slick {
  position: absolute; bottom: 28%; left: 35%; width: 80px; height: 15px;
  background: radial-gradient(ellipse at 50% 50%, rgba(50,50,50,0.8) 0%, rgba(30,30,30,0.4) 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: waa-oil 8s ease-in-out infinite alternate;
}
.scn-whale-ashore .figure-revenger {
  position: absolute; bottom: 22%; right: 25%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #5c3a1e 0%, #3a2010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: waa-figure 5s ease-in-out infinite;
}
.scn-whale-ashore .gull {
  position: absolute; top: 15%; right: 20%; width: 20px; height: 12px;
  background: linear-gradient(180deg, #ffffff 0%, #d0d0d0 100%);
  border-radius: 50% 50% 0 0;
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: waa-gull 15s linear infinite;
}
@keyframes waa-sky    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes waa-sea    { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes waa-whale  { 0% { transform: scale(1) rotate(0deg) } 25% { transform: scale(0.98) rotate(-2deg) } 50% { transform: scale(1) rotate(0deg) } 75% { transform: scale(0.99) rotate(2deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes waa-oil    { 0% { transform: scaleX(1) opacity:0.6 } 50% { transform: scaleX(1.2) opacity:0.8 } 100% { transform: scaleX(1) opacity:0.6 } }
@keyframes waa-figure { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(5px) rotate(0deg) } 50% { transform: translateX(10px) rotate(3deg) } 75% { transform: translateX(5px) rotate(0deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes waa-gull   { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }

/* twin-letters */
.scn-twin-letters {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e0c9a6 40%, #d19c5e 100%),
    radial-gradient(circle at 50% 70%, #fff8e1 0%, transparent 60%);
}
.scn-twin-letters .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 60%;
  background: linear-gradient(180deg, #6b4226 0%, #4a2e1a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.3);
  animation: tle-desk 12s ease-in-out infinite alternate;
}
.scn-twin-letters .letter-a {
  position: absolute; bottom: 30%; left: 20%; width: 50px; height: 35px;
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%);
  border: 2px solid #a08060;
  border-radius: 5% 10% 5% 5%;
  box-shadow: 3px 3px 6px rgba(0,0,0,0.2);
  animation: tle-letter 6s ease-in-out infinite;
}
.scn-twin-letters .letter-b {
  position: absolute; bottom: 30%; right: 20%; width: 50px; height: 35px;
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%);
  border: 2px solid #a08060;
  border-radius: 10% 5% 5% 5%;
  box-shadow: -3px 3px 6px rgba(0,0,0,0.2);
  animation: tle-letter 6s ease-in-out infinite 2s;
}
.scn-twin-letters .quill {
  position: absolute; bottom: 35%; left: 50%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #e0e0e0 0%, #a0a0a0 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform-origin: bottom center;
  animation: tle-quill 2s ease-in-out infinite alternate;
}
.scn-twin-letters .hand {
  position: absolute; bottom: 28%; left: 45%; width: 22px; height: 30px;
  background: linear-gradient(180deg, #d2a679 0%, #b88563 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: tle-hand 4s ease-in-out infinite;
}
.scn-twin-letters .inkpot {
  position: absolute; bottom: 20%; left: 48%; width: 15px; height: 18px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: tle-inkpot 8s ease-in-out infinite alternate;
}
@keyframes tle-desk   { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes tle-letter { 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 tle-quill  { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes tle-hand   { 0% { transform: translateX(0) } 25% { transform: translateX(5px) } 50% { transform: translateX(0) } 75% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes tle-inkpot { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

.scn-buck-basket-ready {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #cbb59a 40%, #a0846c 100%),
    radial-gradient(ellipse at 70% 20%, #f5edd0 0%, transparent 60%);
}
.scn-buck-basket-ready .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(180,160,130,0.2) 45%, rgba(80,60,40,0.15) 55%);
  animation: bb-shadowsway 6s ease-in-out infinite alternate;
}
.scn-buck-basket-ready .window-streak {
  position: absolute; top: 8%; left: 15%; width: 40px; height: 180px;
  background: linear-gradient(180deg, rgba(255,240,210,0.6), rgba(200,180,150,0.1) 60%, transparent);
  border-radius: 2px; transform: skewX(-6deg);
  box-shadow: 2px 0 12px rgba(255,230,180,0.3);
  animation: bb-streak 9s ease-in-out infinite;
}
.scn-buck-basket-ready .basket {
  position: absolute; bottom: 18%; left: 35%; width: 120px; height: 80px;
  background: linear-gradient(45deg, #8b6f4c 0%, #a48356 30%, #7a5e3e 70%, #5e452b 100%);
  border-radius: 12% 12% 8% 8% / 20% 20% 10% 10%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3), 0 8px 16px rgba(0,0,0,0.4);
  transform: rotate(-1deg);
  animation: bb-basket 4s ease-in-out infinite alternate;
}
.scn-buck-basket-ready .basket-lid {
  position: absolute; bottom: calc(18% + 78px); left: 35%; width: 120px; height: 18px;
  background: linear-gradient(180deg, #a8885a, #7a5e3e);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.2);
  transform-origin: bottom center;
  animation: bb-lid 2s ease-in-out infinite alternate;
}
.scn-buck-basket-ready .servant-left {
  position: absolute; bottom: 18%; left: 18%; width: 40px; height: 120px;
  background: linear-gradient(180deg, #4a3e30 0%, #3a2e20 60%, #2a1e10 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: bb-servant 7s ease-in-out infinite;
}
.scn-buck-basket-ready .servant-right {
  position: absolute; bottom: 18%; right: 22%; width: 38px; height: 110px;
  background: linear-gradient(180deg, #3e3224 0%, #2e2214 60%, #1e1208 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
  animation: bb-servant 7s ease-in-out infinite reverse;
}
.scn-buck-basket-ready .table-edge {
  position: absolute; bottom: 22%; left: 20%; right: 20%; height: 8px;
  background: linear-gradient(90deg, transparent, #6a5a44 20%, #8a7a64 50%, #6a5a44 80%, transparent);
  border-radius: 2px;
  opacity: 0.5;
}
@keyframes bb-shadowsway {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes bb-streak {
  0%, 100% { opacity: 0.3; transform: scaleX(1) skewX(-6deg); }
  50% { opacity: 0.8; transform: scaleX(1.2) skewX(-4deg); }
}
@keyframes bb-basket {
  0% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(-0.5deg) translateY(1px); }
}
@keyframes bb-lid {
  0% { transform: rotateX(0deg); }
  50% { transform: rotateX(15deg); }
  100% { transform: rotateX(-5deg); }
}
@keyframes bb-servant {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(1px); }
}

.scn-robin-comes {
  background:
    linear-gradient(180deg, #f5edd0 0%, #e8d8b8 40%, #d4c0a0 100%),
    radial-gradient(ellipse at 50% 30%, #fff6e0 0%, transparent 60%);
}
.scn-robin-comes .bg-cottage {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(200,180,150,0.15) 30%, transparent 50%, rgba(160,140,110,0.1) 70%);
}
.scn-robin-comes .doorway {
  position: absolute; bottom: 0; left: 40%; width: 100px; height: 200px;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.2);
}
.scn-robin-comes .robin-figure {
  position: absolute; bottom: 0; left: 42%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #b87860 0%, #a06850 50%, #784828 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rc-enter 5s ease-in-out infinite;
}
.scn-robin-comes .robin-cap {
  position: absolute; bottom: 85px; left: 42%; width: 36px; height: 16px;
  background: linear-gradient(180deg, #c88848 0%, #a06830 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: rc-cap 5s ease-in-out infinite;
}
.scn-robin-comes .stool {
  position: absolute; bottom: 0; left: 60%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 10% 10% 20% 20% / 10% 10% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
}
.scn-robin-comes .jug {
  position: absolute; bottom: 40px; left: 62%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #c8b898 0%, #a08868 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: rc-jug 8s ease-in-out infinite;
}
@keyframes rc-enter {
  0% { transform: translateX(-10px) rotate(-2deg) scale(0.95); }
  25% { transform: translateX(0px) rotate(0deg) scale(1); }
  50% { transform: translateX(8px) rotate(1deg) scale(0.98); }
  75% { transform: translateX(-4px) rotate(-1deg) scale(1.02); }
  100% { transform: translateX(-10px) rotate(-2deg) scale(0.95); }
}
@keyframes rc-cap {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes rc-jug {
  0%, 100% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg) translateY(-1px); }
}

.scn-doublet-and-hose-promise {
  background:
    linear-gradient(180deg, #fff0d0 0%, #f0dbb0 40%, #dcc498 100%),
    radial-gradient(ellipse at 60% 20%, #ffeecc 0%, transparent 50%);
}
.scn-doublet-and-hose-promise .bg-workshop {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(180,160,130,0.12) 40%, transparent 60%);
}
.scn-doublet-and-hose-promise .doublet {
  position: absolute; top: 20%; left: 25%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #b06848 0%, #904830 30%, #703820 70%, #502818 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%;
  transform: rotate(-5deg);
  box-shadow: 4px 4px 12px rgba(0,0,0,0.2);
  animation: dh-doublet 6s ease-in-out infinite alternate;
}
.scn-doublet-and-hose-promise .tape-measure {
  position: absolute; top: 35%; left: 40%; width: 120px; height: 6px;
  background: linear-gradient(90deg, #d0b060 20%, #e8c870 40%, #f0d880 60%, #e0c068 80%);
  border-radius: 3px;
  transform: rotate(20deg) translateY(-10px);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: dh-tape 9s ease-in-out infinite;
}
.scn-doublet-and-hose-promise .boy-silhouette {
  position: absolute; bottom: 10%; left: 50%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dh-boy 4s ease-in-out infinite;
}
.scn-doublet-and-hose-promise .boy-arm {
  position: absolute; bottom: 50%; left: 55%; width: 25px; height: 8px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(-30deg);
  transform-origin: left center;
  animation: dh-arm 4s ease-in-out infinite;
}
.scn-doublet-and-hose-promise .scissors {
  position: absolute; top: 50%; right: 20%; width: 20px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #a0a0a0 0%, #707070 50%, #505050 100%);
  border-radius: 50% 50% 0 0 / 50% 50% 0 0;
  transform: rotate(15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: dh-scissors 7s ease-in-out infinite alternate;
}
@keyframes dh-doublet {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(4px); }
  100% { transform: rotate(-3deg) translateX(-2px); }
}
@keyframes dh-tape {
  0%, 100% { transform: rotate(20deg) translateY(-10px) scaleX(1); }
  50% { transform: rotate(25deg) translateY(-14px) scaleX(1.1); }
}
@keyframes dh-boy {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes dh-arm {
  0% { transform: rotate(-30deg); }
  50% { transform: rotate(-20deg); }
  100% { transform: rotate(-35deg); }
}
@keyframes dh-scissors {
  0% { transform: rotate(15deg) scale(1); }
  50% { transform: rotate(25deg) scale(1.05); }
  100% { transform: rotate(10deg) scale(0.98); }
}

.scn-falstaff-caught-heavenly-jewel {
  background:
    linear-gradient(180deg, #f8e8c0 0%, #e8d0a0 30%, #c8a880 70%, #a08060 100%),
    radial-gradient(ellipse at 40% 60%, #ffe8a0 0%, transparent 50%);
}
.scn-falstaff-caught-heavenly-jewel .bg-sunroom {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,200,100,0.15) 30%, transparent 60%, rgba(150,100,50,0.1) 80%);
}
.scn-falstaff-caught-heavenly-jewel .falstaff-form {
  position: absolute; bottom: 10%; left: 30%; width: 70px; height: 130px;
  background: linear-gradient(180deg, #503018 0%, #402410 60%, #301408 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  box-shadow: 6px 0 18px rgba(0,0,0,0.3);
  animation: fc-falstaff 6s ease-in-out infinite;
}
.scn-falstaff-caught-heavenly-jewel .mistress-form {
  position: absolute; bottom: 15%; left: 50%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #a08060 0%, #806040 60%, #604020 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(3deg);
  box-shadow: -4px 0 12px rgba(0,0,0,0.2);
  animation: fc-mistress 6s ease-in-out infinite reverse;
}
.scn-falstaff-caught-heavenly-jewel .golden-halo {
  position: absolute; top: 20%; left: 35%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(255,200,80,0.4) 0%, rgba(255,180,60,0.2) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: fc-halo 8s ease-in-out infinite alternate;
}
.scn-falstaff-caught-heavenly-jewel .jewel-glow {
  position: absolute; bottom: 55%; left: 48%; width: 16px; height: 16px;
  background: radial-gradient(circle, #ffd090 0%, #e8a860 60%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px rgba(255,208,144,0.5), 0 0 48px 16px rgba(255,200,80,0.3);
  animation: fc-jewel 3s ease-in-out infinite alternate;
}
.scn-falstaff-caught-heavenly-jewel .curtain-left {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(135deg, #a08050 0%, #806040 50%, #604020 100%);
  border-radius: 0 40% 0 0;
  opacity: 0.7;
  animation: fc-curtain 12s ease-in-out infinite alternate;
}
.scn-falstaff-caught-heavenly-jewel .curtain-right {
  position: absolute; top: 0; right: 0; width: 30%; height: 100%;
  background: linear-gradient(225deg, #a08050 0%, #806040 50%, #604020 100%);
  border-radius: 40% 0 0 0;
  opacity: 0.7;
  animation: fc-curtain 12s ease-in-out infinite alternate-reverse;
}
@keyframes fc-falstaff {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(6px); }
  100% { transform: rotate(-3deg) translateX(-2px); }
}
@keyframes fc-mistress {
  0% { transform: rotate(3deg) translateX(0); }
  50% { transform: rotate(-1deg) translateX(-4px); }
  100% { transform: rotate(1deg) translateX(2px); }
}
@keyframes fc-halo {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.95); }
}
@keyframes fc-jewel {
  0% { transform: scale(0.9); opacity: 0.8; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(1); opacity: 0.9; }
}
@keyframes fc-curtain {
  0% { transform: scaleX(0.95); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(0.98); }
}

.scn-marriage-proposal-to-anne { background: linear-gradient(180deg, #f7e4c0 0%, #f0c880 40%, #dba550 100%), radial-gradient(ellipse at 50% 100%, #dba550 0%, transparent 70%); }
.scn-marriage-proposal-to-anne .sky    { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #f7e4c0 0%, #f0c880 80%); animation: mp-sky 12s ease-in-out infinite alternate; }
.scn-marriage-proposal-to-anne .arch   { position:absolute; bottom:35%; left:50%; width:80px; height:120px; transform:translate(-50%,0); background: linear-gradient(180deg, #c8a87c 0%, #a08058 100%); border-radius:50% 50% 0 0/60% 60% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.2); animation: mp-arch 8s ease-in-out infinite alternate; }
.scn-marriage-proposal-to-anne .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #b8a060 0%, #8a7840 100%); border-radius:20% 40% 0 0/30% 50% 0 0; animation: mp-ground 10s ease-in-out infinite alternate; }
.scn-marriage-proposal-to-anne .anne   { position:absolute; bottom:30%; left:35%; width:20px; height:38px; background: linear-gradient(180deg, #b08050 0%, #704030 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin: bottom center; animation: mp-anne 4s ease-in-out infinite; }
.scn-marriage-proposal-to-anne .suitor { position:absolute; bottom:30%; left:50%; width:22px; height:40px; background: linear-gradient(180deg, #a07040 0%, #684830 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin: bottom center; animation: mp-suitor 4s ease-in-out infinite reverse; }
.scn-marriage-proposal-to-anne .ring   { position:absolute; bottom:44%; left:44%; width:8px; height:6px; background: radial-gradient(circle, #ffd080 0%, #e8a030 70%); border-radius:50%; box-shadow: 0 0 14px 4px rgba(255,208,128,.7); animation: mp-ring 3s ease-in-out infinite; }
.scn-marriage-proposal-to-anne .flowers{ position:absolute; bottom:40%; left:28%; width:30px; height:20px; background: repeating-linear-gradient(90deg, #b06030 0px, #b06030 3px, #d08050 3px, #d08050 6px); border-radius:50%; filter: blur(2px); animation: mp-flowers 6s ease-in-out infinite; }
.scn-marriage-proposal-to-anne .glow   { position:absolute; inset:10% 10% auto auto; width:120px; height:120px; background: radial-gradient(circle, rgba(255,230,160,.3) 0%, transparent 70%); border-radius:50%; animation: mp-glow 8s ease-in-out infinite alternate; }
@keyframes mp-sky    { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes mp-arch   { 0% { transform:translate(-50%,0) scale(1) } 50% { transform:translate(-50%,-2px) scale(1.02) } 100% { transform:translate(-50%,0) scale(1) } }
@keyframes mp-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes mp-anne   { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 25% { transform:translateX(6px) translateY(-1px) rotate(2deg) } 50% { transform:translateX(12px) translateY(0) rotate(-2deg) } 75% { transform:translateX(6px) translateY(-1px) rotate(1deg) } 100% { transform:translateX(0) translateY(0) rotate(0) } }
@keyframes mp-suitor { 0% { transform:translateX(0) translateY(0) rotate(2deg) } 25% { transform:translateX(-4px) translateY(-1px) rotate(-1deg) } 50% { transform:translateX(-8px) translateY(0) rotate(2deg) } 75% { transform:translateX(-4px) translateY(-1px) rotate(-1deg) } 100% { transform:translateX(0) translateY(0) rotate(0) } }
@keyframes mp-ring   { 0% { box-shadow: 0 0 10px 2px rgba(255,208,128,.5); opacity:.7 } 50% { box-shadow: 0 0 20px 6px rgba(255,208,128,.9); opacity:1 } 100% { box-shadow: 0 0 12px 3px rgba(255,208,128,.6); opacity:.8 } }
@keyframes mp-flowers{ 0% { transform:scale(1) rotate(0deg) } 50% { transform:scale(1.05) rotate(3deg) } 100% { transform:scale(1) rotate(0deg) } }
@keyframes mp-glow   { 0% { transform:scale(1); opacity:.3 } 50% { transform:scale(1.1); opacity:.5 } 100% { transform:scale(1); opacity:.3 } }

.scn-evans-knocks-at-page { background: linear-gradient(180deg, #f0d8b0 0%, #dba050 50%, #b88540 100%), radial-gradient(ellipse at 50% 80%, #b88540 0%, transparent 60%); }
.scn-evans-knocks-at-page .sky     { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #f0d8b0 0%, #e8c070 100%); animation: ek-sky 15s ease-in-out infinite alternate; }
.scn-evans-knocks-at-page .wall    { position:absolute; bottom:35%; left:10%; right:10%; height:50%; background: linear-gradient(135deg, #c8a070 0%, #a08058 100%); border-radius:8% 8% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: ek-wall 10s ease-in-out infinite alternate; }
.scn-evans-knocks-at-page .door    { position:absolute; bottom:38%; left:50%; width:60px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #7a5a40 0%, #5a3a20 100%); border-radius:6% 6% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: ek-door 8s ease-in-out infinite; }
.scn-evans-knocks-at-page .knocker { position:absolute; bottom:65%; left:50%; transform:translateX(-50%); width:12px; height:16px; background: radial-gradient(circle, #d0a060 0%, #a07840 70%); border-radius:40%; box-shadow: 0 0 8px 2px rgba(160,120,64,.5); animation: ek-knocker 3s ease-in-out infinite; }
.scn-evans-knocks-at-page .evans   { position:absolute; bottom:36%; left:30%; width:20px; height:36px; background: linear-gradient(180deg, #b08050 0%, #6a4830 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin: bottom center; animation: ek-evans 4s ease-in-out infinite; }
.scn-evans-knocks-at-page .lantern { position:absolute; bottom:38%; left:22%; width:8px; height:8px; background: radial-gradient(circle, #ffe080 0%, #d0a040 70%); border-radius:50%; box-shadow: 0 0 18px 6px rgba(255,224,128,.6); animation: ek-lantern 5s ease-in-out infinite alternate; }
.scn-evans-knocks-at-page .step    { position:absolute; bottom:32%; left:40%; right:40%; height:6px; background: linear-gradient(90deg, #a08860 0%, #c0a870 50%, #a08860 100%); border-radius:20%; animation: ek-step 10s ease-in-out infinite; }
.scn-evans-knocks-at-page .bush    { position:absolute; bottom:30%; left:5%; width:50px; height:30px; background: radial-gradient(ellipse at 50% 100%, #6a8a4a 0%, #4a6a2a 70%); border-radius:50%; filter: blur(3px); animation: ek-bush 12s ease-in-out infinite alternate; }
@keyframes ek-sky    { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ek-wall   { 0% { transform:scale(1) } 50% { transform:scale(1.01) } 100% { transform:scale(1) } }
@keyframes ek-door   { 0% { transform:translateX(-50%) } 50% { transform:translateX(-50%) translateY(-2px) } 100% { transform:translateX(-50%) } }
@keyframes ek-knocker{ 0% { transform:translateX(-50%) rotate(0deg) } 30% { transform:translateX(-50%) rotate(-6deg) } 60% { transform:translateX(-50%) rotate(6deg) } 100% { transform:translateX(-50%) rotate(0deg) } }
@keyframes ek-evans  { 0% { transform:translateX(0) translateY(0) rotate(0deg) } 20% { transform:translateX(4px) translateY(-1px) rotate(2deg) } 40% { transform:translateX(8px) translateY(0) rotate(-1deg) } 60% { transform:translateX(4px) translateY(-1px) rotate(1deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes ek-lantern{ 0% { box-shadow: 0 0 12px 3px rgba(255,224,128,.4); opacity:.8 } 50% { box-shadow: 0 0 24px 8px rgba(255,224,128,.9); opacity:1 } 100% { box-shadow: 0 0 14px 4px rgba(255,224,128,.5); opacity:.85 } }
@keyframes ek-step   { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.03) } 100% { transform:scaleX(1) } }
@keyframes ek-bush   { 0% { transform:scale(1) translateY(0) } 50% { transform:scale(1.05) translateY(-2px) } 100% { transform:scale(1) translateY(0) } }

.scn-page-greets-the-group { background: linear-gradient(180deg, #f7e0b0 0%, #e8c070 40%, #c89850 100%), radial-gradient(ellipse at 50% 100%, #c89850 0%, transparent 60%); }
.scn-page-greets-the-group .sky     { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f7e0b0 0%, #e8c070 100%); animation: pg-sky 14s ease-in-out infinite alternate; }
.scn-page-greets-the-group .ground  { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b8a060 0%, #8a7840 100%); border-radius:30% 20% 0 0/40% 30% 0 0; animation: pg-ground 12s ease-in-out infinite alternate; }
.scn-page-greets-the-group .page    { position:absolute; bottom:35%; left:50%; width:24px; height:42px; transform:translateX(-50%); background: linear-gradient(180deg, #c08050 0%, #7a5030 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin: bottom center; animation: pg-page 4s ease-in-out infinite; }
.scn-page-greets-the-group .shallow { position:absolute; bottom:33%; left:35%; width:22px; height:40px; background: linear-gradient(180deg, #a07040 0%, #684830 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin: bottom center; animation: pg-shallow 5s ease-in-out infinite; }
.scn-page-greets-the-group .slender { position:absolute; bottom:34%; left:60%; width:18px; height:36px; background: linear-gradient(180deg, #b08050 0%, #6a4830 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin: bottom center; animation: pg-slender 4.5s ease-in-out infinite reverse; }
.scn-page-greets-the-group .trees   { position:absolute; bottom:28%; left:5%; right:5%; height:40%; background: repeating-linear-gradient(135deg, #5a7a3a 0px, #5a7a3a 15px, #4a6a2a 15px, #4a6a2a 30px); border-radius:50% 50% 0 0/70% 70% 0 0; filter: blur(6px); animation: pg-trees 18s ease-in-out infinite alternate; }
.scn-page-greets-the-group .path    { position:absolute; bottom:22%; left:40%; right:40%; height:8px; background: linear-gradient(90deg, #c0a060 0%, #d0b070 50%, #c0a060 100%); border-radius:40%; animation: pg-path 8s ease-in-out infinite; }
@keyframes pg-sky    { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes pg-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes pg-page   { 0% { transform:translateX(-50%) translateY(0) rotate(0deg) } 25% { transform:translateX(-50%) translateY(-1px) rotate(3deg) } 50% { transform:translateX(-50%) translateY(0) rotate(-2deg) } 75% { transform:translateX(-50%) translateY(-1px) rotate(1deg) } 100% { transform:translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes pg-shallow{ 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 30% { transform:translateX(6px) translateY(-1px) rotate(2deg) } 60% { transform:translateX(12px) translateY(0) rotate(-1deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes pg-slender{ 0% { transform:translateX(0) translateY(0) rotate(1deg) } 30% { transform:translateX(-6px) translateY(-1px) rotate(-2deg) } 60% { transform:translateX(-12px) translateY(0) rotate(1deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes pg-trees  { 0% { transform:scale(1) translateY(0); opacity:.8 } 50% { transform:scale(1.02) translateY(-3px); opacity:1 } 100% { transform:scale(1) translateY(0); opacity:.8 } }
@keyframes pg-path   { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.05) } 100% { transform:scaleX(1) } }

.scn-greyhound-gossip { background: linear-gradient(180deg, #f0d8a0 0%, #e0b860 50%, #c89840 100%), radial-gradient(ellipse at 50% 100%, #c89840 0%, transparent 60%); }
.scn-greyhound-gossip .sky      { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0d8a0 0%, #e0b860 100%); animation: gg-sky 16s ease-in-out infinite alternate; }
.scn-greyhound-gossip .ground   { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b89850 0%, #8a7838 100%); border-radius:30% 50% 0 0/40% 60% 0 0; animation: gg-ground 14s ease-in-out infinite alternate; }
.scn-greyhound-gossip .figure-a { position:absolute; bottom:35%; left:35%; width:22px; height:40px; background: linear-gradient(180deg, #b08050 0%, #6a4830 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin: bottom center; animation: gg-fig-a 5s ease-in-out infinite; }
.scn-greyhound-gossip .figure-b { position:absolute; bottom:35%; left:55%; width:22px; height:40px; background: linear-gradient(180deg, #a07040 0%, #684830 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin: bottom center; animation: gg-fig-b 5s ease-in-out infinite reverse; }
.scn-greyhound-gossip .greyhound{ position:absolute; bottom:30%; left:45%; width:30px; height:18px; background: linear-gradient(135deg, #c8b090 0%, #a08868 100%); border-radius:50% 50% 60% 40%/70% 70% 30% 30%; transform-origin: bottom center; animation: gg-dog 6s ease-in-out infinite; }
.scn-greyhound-gossip .tree     { position:absolute; bottom:28%; left:5%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 0%, #6a8a4a 0%, #4a6a2a 70%); border-radius:50%; filter: blur(4px); animation: gg-tree 20s ease-in-out infinite alternate; }
.scn-greyhound-gossip .bench    { position:absolute; bottom:32%; left:30%; width:40px; height:12px; background: linear-gradient(90deg, #7a5a40 0%, #9a7a58 50%, #7a5a40 100%); border-radius:20%; box-shadow: 0 4px 6px rgba(0,0,0,.3); animation: gg-bench 8s ease-in-out infinite; }
@keyframes gg-sky    { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes gg-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes gg-fig-a  { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 25% { transform:translateX(6px) translateY(-1px) rotate(2deg) } 50% { transform:translateX(12px) translateY(0) rotate(-2deg) } 75% { transform:translateX(6px) translateY(-1px) rotate(1deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes gg-fig-b  { 0% { transform:translateX(0) translateY(0) rotate(2deg) } 25% { transform:translateX(-6px) translateY(-1px) rotate(-1deg) } 50% { transform:translateX(-12px) translateY(0) rotate(2deg) } 75% { transform:translateX(-6px) translateY(-1px) rotate(-1deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes gg-dog    { 0% { transform:translateX(0) translateY(0) rotate(-3deg) } 30% { transform:translateX(10px) translateY(-2px) rotate(2deg) } 60% { transform:translateX(20px) translateY(0) rotate(-1deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes gg-tree   { 0% { transform:scale(1) translateY(0); opacity:.7 } 50% { transform:scale(1.03) translateY(-4px); opacity:1 } 100% { transform:scale(1) translateY(0); opacity:.7 } }
@keyframes gg-bench  { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.04) } 100% { transform:scaleX(1) } }

/* umpires-chosen – warm, sunlit, three figures and a notebook */
.scn-umpires-chosen {
  background:
    linear-gradient(180deg, #ffd28a 0%, #e6b060 40%, #c88540 100%),
    radial-gradient(ellipse at 50% 30%, #ffeaad 0%, transparent 80%);
}
.scn-umpires-chosen .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffeac2 0%, #ffd28a 100%);
  animation: upc-sky 12s ease-in-out infinite alternate;
}
.scn-umpires-chosen .sun {
  position: absolute; top: 8%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff0b0 0%, #ffcc55 50%, transparent 70%);
  box-shadow: 0 0 40px 20px rgba(255,204,85,0.5);
  border-radius: 50%;
  animation: upc-sun 8s ease-in-out infinite;
}
.scn-umpires-chosen .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b88540 0%, #7a5a2a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-umpires-chosen .figure {
  position: absolute; bottom: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-umpires-chosen .figure-1 { left: 20%; animation: upc-fig1 6s ease-in-out infinite; }
.scn-umpires-chosen .figure-2 { left: 45%; animation: upc-fig2 7s ease-in-out infinite 0.5s; }
.scn-umpires-chosen .figure-3 { left: 70%; animation: upc-fig3 5s ease-in-out infinite 1s; }
.scn-umpires-chosen .notebook {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 22px;
  background: linear-gradient(135deg, #e8d8b0 0%, #c8b080 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: upc-book 10s ease-in-out infinite alternate;
}
.scn-umpires-chosen .quill {
  position: absolute; bottom: 40%; left: 52%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #f5e8d0 0%, #d0c0a0 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform: rotate(15deg);
  animation: upc-quill 3s ease-in-out infinite;
}
@keyframes upc-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes upc-sun { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(0.95); } }
@keyframes upc-fig1 { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(1px) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes upc-fig2 { 0% { transform: translateY(0) rotate(1deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(2px) rotate(1deg); } 75% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes upc-fig3 { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 75% { transform: translateY(1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes upc-book { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 2px 6px rgba(0,0,0,0.4); } 50% { transform: translateX(-50%) scale(1.02); box-shadow: 0 4px 12px rgba(0,0,0,0.5); } 100% { transform: translateX(-50%) scale(0.98); box-shadow: 0 1px 4px rgba(0,0,0,0.3); } }
@keyframes upc-quill { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }

/* purse-picking-denied – tense, sunlit, two figures confront */
.scn-purse-picking-denied {
  background:
    linear-gradient(180deg, #fce3b0 0%, #dba860 50%, #a07030 100%),
    radial-gradient(ellipse at 50% 100%, #dba860 0%, transparent 70%);
}
.scn-purse-picking-denied .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ffe8c0 0%, #fce3b0 100%);
  animation: ppd-sky 8s ease-in-out infinite alternate;
}
.scn-purse-picking-denied .sun {
  position: absolute; top: 5%; left: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff5cc 0%, #ffdd77 60%, transparent 80%);
  box-shadow: 0 0 30px 15px rgba(255,221,119,0.6);
  border-radius: 50%;
  animation: ppd-sun 6s ease-in-out infinite;
}
.scn-purse-picking-denied .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #a07030 0%, #6b4a1e 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
}
.scn-purse-picking-denied .figure-left {
  position: absolute; bottom: 20%; left: 25%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1a150e 0%, #0d0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ppd-left 1.5s ease-in-out infinite;
}
.scn-purse-picking-denied .figure-right {
  position: absolute; bottom: 20%; right: 25%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1a150e 0%, #0d0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ppd-right 1.8s ease-in-out infinite 0.3s;
}
.scn-purse-picking-denied .purse {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 16px; height: 14px;
  background: linear-gradient(180deg, #c08050 0%, #8a5a30 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 0 2px #6b3a1a;
  animation: ppd-purse 2s ease-in-out infinite alternate;
}
.scn-purse-picking-denied .sword {
  position: absolute; bottom: 35%; left: 60%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 2px;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: ppd-sword 1.6s ease-in-out infinite;
}
@keyframes ppd-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ppd-sun { 0% { transform: scale(1); } 50% { transform: scale(1.08); } 100% { transform: scale(0.95); } }
@keyframes ppd-left { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(0deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ppd-right { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-4px) rotate(0deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes ppd-purse { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.1) translateY(-2px); } 100% { transform: translateX(-50%) scale(0.95); } }
@keyframes ppd-sword { 0% { transform: rotate(-30deg) translateX(0); } 50% { transform: rotate(-40deg) translateX(-2px); } 100% { transform: rotate(-25deg) translateX(0); } }

/* drunk-and-cashiered – funny, sunlit, drunk with Scarlet and John */
.scn-drunk-and-cashiered {
  background:
    linear-gradient(180deg, #ffe6b0 0%, #f0c070 50%, #c89840 100%),
    radial-gradient(ellipse at 50% 80%, #f0c070 0%, transparent 60%);
}
.scn-drunk-and-cashiered .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fff0d0 0%, #ffe6b0 100%);
  animation: dac-sky 10s ease-in-out infinite alternate;
}
.scn-drunk-and-cashiered .sun {
  position: absolute; top: 10%; left: 40%; width: 55px; height: 55px;
  background: radial-gradient(circle, #fff7dd 0%, #ffeeaa 60%, transparent 80%);
  box-shadow: 0 0 35px 18px rgba(255,238,170,0.5);
  border-radius: 50%;
  animation: dac-sun 4s ease-in-out infinite;
}
.scn-drunk-and-cashiered .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #c89840 0%, #8a6a28 100%);
  border-radius: 40% 60% 0 0 / 30% 50% 0 0;
}
.scn-drunk-and-cashiered .drunk {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 24px; height: 46px;
  background: linear-gradient(180deg, #c8553d 0%, #8a3a2a 100%); /* terracotta red */
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dac-drunk 1.8s linear infinite;
}
.scn-drunk-and-cashiered .scarlet {
  position: absolute; bottom: 25%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #702243 0%, #4a152c 100%); /* mulberry, no bright red */
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dac-scarlet 2s ease-in-out infinite alternate;
}
.scn-drunk-and-cashiered .john {
  position: absolute; bottom: 25%; right: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); /* blue-gray */
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dac-john 2.4s ease-in-out infinite alternate 0.2s;
}
.scn-drunk-and-cashiered .tankard {
  position: absolute; bottom: 35%; left: 48%; transform: translateX(-50%);
  width: 14px; height: 18px;
  background: linear-gradient(180deg, #d0a870 0%, #b08050 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 -4px 0 #8a5a30;
  animation: dac-tankard 1.5s ease-in-out infinite alternate;
}
@keyframes dac-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes dac-sun { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(5deg); } 100% { transform: scale(0.95) rotate(-5deg); } }
@keyframes dac-drunk { 0% { transform: translateX(-50%) rotate(-5deg) translateY(0); } 25% { transform: translateX(-45%) rotate(0deg) translateY(-3px); } 50% { transform: translateX(-50%) rotate(8deg) translateY(2px); } 75% { transform: translateX(-55%) rotate(0deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(-5deg) translateY(0); } }
@keyframes dac-scarlet { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(-3deg); } 100% { transform: translateY(0) rotate(3deg); } }
@keyframes dac-john { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(4deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes dac-tankard { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(15deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(-10deg); } }

/* drunken-knaves – funny, sunlit, three knaves with a bottle */
.scn-drunken-knaves {
  background:
    linear-gradient(180deg, #fceac0 0%, #e8b060 40%, #b88030 100%),
    radial-gradient(ellipse at 70% 20%, #fceac0 0%, transparent 60%);
}
.scn-drunken-knaves .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fdf3da 0%, #fceac0 100%);
  animation: dkn-sky 9s ease-in-out infinite alternate;
}
.scn-drunken-knaves .sun {
  position: absolute; top: 6%; left: 65%; width: 45px; height: 45px;
  background: radial-gradient(circle, #fffbe0 0%, #ffdd99 60%, transparent 80%);
  box-shadow: 0 0 25px 12px rgba(255,221,153,0.5);
  border-radius: 50%;
  animation: dkn-sun 5s ease-in-out infinite;
}
.scn-drunken-knaves .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #b88030 0%, #7a5a20 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-drunken-knaves .knave {
  position: absolute; bottom: 22%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-drunken-knaves .knave-1 { left: 25%; animation: dkn-knave1 2.1s ease-in-out infinite; }
.scn-drunken-knaves .knave-2 { left: 45%; animation: dkn-knave2 1.8s ease-in-out infinite 0.2s; }
.scn-drunken-knaves .knave-3 { left: 65%; animation: dkn-knave3 1.6s ease-in-out infinite 0.4s; }
.scn-drunken-knaves .bottle {
  position: absolute; bottom: 32%; left: 38%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #c8b080 0%, #8a6a40 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(30deg);
  animation: dkn-bottle 2s ease-in-out infinite alternate;
}
@keyframes dkn-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes dkn-sun { 0% { transform: scale(1); } 50% { transform: scale(1.06) rotate(10deg); } 100% { transform: scale(0.94) rotate(-5deg); } }
@keyframes dkn-knave1 { 0% { transform: translateX(0) rotate(-4deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(-3px) rotate(-6deg); } 75% { transform: translateX(4px) rotate(4deg); } 100% { transform: translateX(0) rotate(-4deg); } }
@keyframes dkn-knave2 { 0% { transform: translateX(0) rotate(5deg); } 25% { transform: translateX(-4px) rotate(-2deg); } 50% { transform: translateX(6px) rotate(7deg); } 75% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(5deg); } }
@keyframes dkn-knave3 { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(5deg); } 50% { transform: translateX(-2px) rotate(-8deg); } 75% { transform: translateX(4px) rotate(3deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes dkn-bottle { 0% { transform: rotate(30deg) scale(1); } 50% { transform: rotate(45deg) scale(1.1) translateX(-2px); } 100% { transform: rotate(20deg) scale(0.95); } }

.scn-street-mistress-page {
  background: linear-gradient(180deg, #b8d4e8 0%, #f5e8c8 40%, #e0c898 100%), radial-gradient(ellipse at 30% 20%, #fff5e0 0%, transparent 60%);
}
.scn-street-mistress-page .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #c5dff0 0%, #ffe8c0 100%); animation: st1-sky 20s ease-in-out infinite alternate; }
.scn-street-mistress-page .street { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #b09070 0%, #806050 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); animation: st1-glow 8s ease-in-out infinite alternate; }
.scn-street-mistress-page .house-left { position:absolute; bottom:30%; left:5%; width:30%; height:50%; background: linear-gradient(135deg, #d4b89a 0%, #b39272 100%); border-radius: 4% 4% 0 0; box-shadow: 5px 0 15px rgba(0,0,0,0.2); }
.scn-street-mistress-page .house-right { position:absolute; bottom:30%; right:5%; width:30%; height:50%; background: linear-gradient(225deg, #ceb292 0%, #a88868 100%); border-radius: 4% 4% 0 0; box-shadow: -5px 0 15px rgba(0,0,0,0.2); }
.scn-street-mistress-page .window-glow { position:absolute; bottom:40%; left:15%; width:12%; height:18%; background: radial-gradient(circle, #ffdfa0 0%, #e0b060 70%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 30px 8px #e0b060, 0 0 60px 16px rgba(224,176,96,0.3); animation: st1-glow 4s ease-in-out infinite alternate; }
.scn-street-mistress-page .figure-mistress { position:absolute; bottom:25%; left:40%; width:8%; height:30%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: st1-walk 6s ease-in-out infinite; }
.scn-street-mistress-page .figure-robin { position:absolute; bottom:25%; left:50%; width:5%; height:18%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: st1-walk 6s ease-in-out infinite reverse; }
.scn-street-mistress-page .lamp { position:absolute; bottom:30%; left:45%; width:4%; height:8%; background: radial-gradient(circle, #ffe080 0%, #b08040 100%); border-radius: 50%; box-shadow: 0 0 20px 6px #ffd060; animation: st1-lamp 3s ease-in-out infinite alternate; }
@keyframes st1-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes st1-glow { 0% { box-shadow: 0 0 20px 4px #e0b060, 0 0 40px 8px rgba(224,176,96,0.2); opacity:0.8 } 50% { box-shadow: 0 0 40px 12px #ffdfa0, 0 0 80px 20px rgba(255,223,160,0.4); opacity:1 } 100% { box-shadow: 0 0 25px 5px #e0b060, 0 0 50px 10px rgba(224,176,96,0.25); opacity:0.85 } }
@keyframes st1-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes st1-lamp { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(0.95) } }

.scn-weather-cock-boy {
  background: linear-gradient(180deg, #b8c8d8 0%, #e8d8b0 50%, #d0b890 100%), radial-gradient(ellipse at 80% 30%, #fff0d0 0%, transparent 60%);
}
.scn-weather-cock-boy .sky-tense { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0c4d4 0%, #ffe0a0 100%); animation: wc1-flicker 3s ease-in-out infinite alternate; }
.scn-weather-cock-boy .street-hard { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #a08060 0%, #705040 100%); box-shadow: inset 0 5px 20px rgba(0,0,0,0.5); animation: wc1-shadow 2s ease-in-out infinite alternate; }
.scn-weather-cock-boy .rooftop { position:absolute; bottom:40%; left:15%; width:70%; height:15%; background: linear-gradient(135deg, #c0a080 0%, #a08060 100%); clip-path: polygon(0% 100%, 10% 0%, 90% 0%, 100% 100%); }
.scn-weather-cock-boy .weathercock { position:absolute; bottom:55%; left:50%; width:2%; height:12%; background: #604040; transform: translateX(-50%); animation: wc1-rotate 1.6s ease-in-out infinite alternate; }
.scn-weather-cock-boy .weathercock::after { content:''; position:absolute; top:-8px; left:50%; width:20px; height:20px; border-top: 4px solid #806050; border-right: 4px solid #806050; border-radius:0 8px 0 0; transform: translateX(-50%) rotate(45deg); }
.scn-weather-cock-boy .window-sharp { position:absolute; bottom:35%; left:35%; width:12%; height:20%; background: radial-gradient(circle, #ffe090 0%, #d0a050 100%); box-shadow: 0 0 15px 5px #ffd070, 0 0 30px 10px rgba(255,208,112,0.3); animation: wc1-glow 1.5s ease-in-out infinite alternate; }
.scn-weather-cock-boy .figure-ford { position:absolute; bottom:20%; left:30%; width:7%; height:28%; background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wc1-shift 1.5s ease-in-out infinite alternate; }
.scn-weather-cock-boy .figure-page { position:absolute; bottom:20%; left:55%; width:7%; height:28%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wc1-shift 1.5s ease-in-out infinite alternate-reverse; }
@keyframes wc1-flicker { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes wc1-shadow { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes wc1-rotate { 0% { transform: translateX(-50%) rotate(-8deg) } 50% { transform: translateX(-50%) rotate(5deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes wc1-glow { 0% { box-shadow: 0 0 10px 2px #ffd070, 0 0 20px 4px rgba(255,208,112,0.2); opacity:0.8 } 50% { box-shadow: 0 0 25px 8px #ffe090, 0 0 50px 16px rgba(255,224,144,0.5); opacity:1 } 100% { box-shadow: 0 0 15px 4px #ffd070, 0 0 30px 8px rgba(255,208,112,0.3); opacity:0.9 } }
@keyframes wc1-shift { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(4px) translateY(-3px) } 100% { transform: translateX(-2px) translateY(0) } }

.scn-falstaff-boy-with-her {
  background: linear-gradient(180deg, #8a7a6a 0%, #b09878 40%, #a08060 100%), radial-gradient(ellipse at 40% 60%, #d0b090 0%, transparent 70%);
}
.scn-falstaff-boy-with-her .sky-desat { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #b0a090 0%, #d0c0b0 100%); animation: fs1-slow 12s ease-in-out infinite alternate; }
.scn-falstaff-boy-with-her .ground-deep { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #706050 0%, #403020 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); }
.scn-falstaff-boy-with-her .wall-back { position:absolute; bottom:30%; left:20%; width:60%; height:50%; background: linear-gradient(135deg, #a09080 0%, #807060 100%); border-radius: 6% 6% 2% 2%; box-shadow: 0 0 30px rgba(0,0,0,0.3); }
.scn-falstaff-boy-with-her .figure-falstaff { position:absolute; bottom:15%; left:30%; width:14%; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fs1-lurch 7s ease-in-out infinite; }
.scn-falstaff-boy-with-her .figure-robin-small { position:absolute; bottom:20%; left:50%; width:5%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fs1-sneak 5s ease-in-out infinite; }
.scn-falstaff-boy-with-her .doorway { position:absolute; bottom:30%; left:55%; width:12%; height:30%; background: #403020; border-radius: 0 0 50% 50% / 0 0 20% 20%; box-shadow: inset 0 0 20px #1a0a00; }
.scn-falstaff-boy-with-her .window-curtain { position:absolute; bottom:35%; left:25%; width:10%; height:20%; background: radial-gradient(circle, #b09070 0%, #806050 100%); box-shadow: 0 0 15px 5px rgba(128,96,80,0.4); animation: fs1-drape 6s ease-in-out infinite alternate; }
@keyframes fs1-slow { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes fs1-lurch { 0% { transform: translateX(0) rotate(-2deg) } 33% { transform: translateX(-5px) rotate(3deg) } 66% { transform: translateX(3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes fs1-sneak { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(6px) translateY(-1px) } 50% { transform: translateX(12px) translateY(0) } 75% { transform: translateX(6px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes fs1-drape { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(0.95) } }

.scn-search-clock-cue {
  background: linear-gradient(180deg, #6a5a4a 0%, #8a7a6a 50%, #5a4a3a 100%), radial-gradient(ellipse at 30% 40%, #b09878 0%, transparent 60%);
}
.scn-search-clock-cue .bg-interior { position:absolute; inset:0; background: linear-gradient(135deg, #5a4a3a 0%, #806050 50%, #4a3a2a 100%); }
.scn-search-clock-cue .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #705040 0%, #403020 100%); box-shadow: inset 0 5px 20px rgba(0,0,0,0.5); }
.scn-search-clock-cue .window-beam { position:absolute; top:10%; right:10%; width:20%; height:60%; background: linear-gradient(135deg, rgba(255,200,100,0.4) 0%, transparent 70%); clip-path: polygon(0% 0%, 100% 10%, 100% 90%, 0% 100%); animation: cl1-sweep 12s ease-in-out infinite alternate; }
.scn-search-clock-cue .clock-case { position:absolute; top:15%; left:35%; width:30%; height:50%; background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 5px 20px rgba(0,0,0,0.6); }
.scn-search-clock-cue .pendulum { position:absolute; top:45%; left:50%; width:4%; height:20%; background: #8a7030; border-radius: 0 0 50% 50%; transform: translateX(-50%); transform-origin: top center; animation: cl1-swing 2s ease-in-out infinite alternate; }
.scn-search-clock-cue .figure-ford { position:absolute; bottom:30%; left:20%; width:8%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cl1-twitch 4s ease-in-out infinite; }
.scn-search-clock-cue .table { position:absolute; bottom:25%; left:60%; width:15%; height:8%; background: linear-gradient(180deg, #6a5030 0%, #4a3020 100%); border-radius: 4px; box-shadow: 0 2px 10px rgba(0,0,0,0.4); }
.scn-search-clock-cue .candle { position:absolute; bottom:30%; left:63%; width:3%; height:12%; background: linear-gradient(180deg, #ffe0a0 0%, #d0a040 80%); border-radius: 50% 50% 0 0; box-shadow: 0 0 20px 6px #ffd060, 0 0 40px 12px rgba(255,208,96,0.3); animation: cl1-flicker 1.5s ease-in-out infinite alternate; }
@keyframes cl1-sweep { 0% { opacity:0.3; transform: rotate(-5deg) } 50% { opacity:0.7; transform: rotate(3deg) } 100% { opacity:0.4; transform: rotate(-2deg) } }
@keyframes cl1-swing { 0% { transform: translateX(-50%) rotate(-10deg) } 50% { transform: translateX(-50%) rotate(10deg) } 100% { transform: translateX(-50%) rotate(-8deg) } }
@keyframes cl1-twitch { 0% { transform: translateX(0) rotate(0) } 20% { transform: translateX(3px) rotate(2deg) } 40% { transform: translateX(-2px) rotate(-1deg) } 60% { transform: translateX(4px) rotate(1deg) } 80% { transform: translateX(-1px) rotate(0) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cl1-flicker { 0% { box-shadow: 0 0 15px 4px #ffd060, 0 0 30px 8px rgba(255,208,96,0.2); opacity:0.8 } 50% { box-shadow: 0 0 25px 8px #ffe080, 0 0 50px 16px rgba(255,224,128,0.5); opacity:1 } 100% { box-shadow: 0 0 18px 5px #ffd060, 0 0 35px 10px rgba(255,208,96,0.3); opacity:0.85 } }

/* Scene: fenton-woos-anne (warm, bright-interior) */
.scn-fenton-woos-anne {
  background: linear-gradient(180deg, #e8d4b8 0%, #c8a882 50%, #a0815a 100%), radial-gradient(ellipse at 30% 60%, #f2d7a6 0%, transparent 60%);
}
.scn-fenton-woos-anne .room-wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #d4b890 0%, #b89a72 100%);
  border-radius: 10% 10% 0 0 / 5% 5% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.2);
  animation: fwa-wall 12s ease-in-out infinite alternate;
}
.scn-fenton-woos-anne .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a321a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.5);
  animation: fwa-floor 15s ease-in-out infinite;
}
.scn-fenton-woos-anne .window {
  position: absolute;
  top: 15%;
  left: 25%;
  width: 30%;
  height: 40%;
  background: linear-gradient(135deg, #b8d0e0 0%, #e0f0ff 40%, #f0f8ff 100%);
  border-radius: 4% 4% 8% 8% / 6% 6% 12% 12%;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.4), 0 0 20px rgba(255,230,180,0.6);
  animation: fwa-window 8s ease-in-out infinite alternate;
}
.scn-fenton-woos-anne .light-beam {
  position: absolute;
  top: 20%;
  left: 30%;
  width: 20%;
  height: 50%;
  background: linear-gradient(135deg, rgba(255,240,200,0.5) 0%, rgba(255,220,160,0.1) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(8px);
  animation: fwa-beam 6s ease-in-out infinite alternate;
}
.scn-fenton-woos-anne .table {
  position: absolute;
  bottom: 30%;
  left: 35%;
  width: 30%;
  height: 12%;
  background: linear-gradient(180deg, #8a6030 0%, #5a3a1a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: fwa-table 10s ease-in-out infinite;
}
.scn-fenton-woos-anne .figure-fenton {
  position: absolute;
  bottom: 32%;
  left: 30%;
  width: 10%;
  height: 35%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fwa-fenton 4s ease-in-out infinite;
}
.scn-fenton-woos-anne .figure-anne {
  position: absolute;
  bottom: 32%;
  right: 30%;
  width: 9%;
  height: 33%;
  background: linear-gradient(180deg, #6a5040 0%, #3a2820 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fwa-anne 5s ease-in-out infinite alternate;
}
.scn-fenton-woos-anne .hearth-glow {
  position: absolute;
  bottom: 20%;
  left: 10%;
  width: 15%;
  height: 30%;
  background: radial-gradient(ellipse at center, #ffaa40 0%, #ff8030 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: fwa-hearth 3s ease-in-out infinite alternate;
}
@keyframes fwa-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes fwa-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes fwa-window { 0% { box-shadow: inset 0 0 20px rgba(255,255,200,0.2), 0 0 15px rgba(255,230,180,0.3) } 50% { box-shadow: inset 0 0 40px rgba(255,255,200,0.6), 0 0 30px rgba(255,230,180,0.8) } 100% { box-shadow: inset 0 0 25px rgba(255,255,200,0.3), 0 0 20px rgba(255,230,180,0.5) } }
@keyframes fwa-beam { 0% { opacity:0.6; transform: rotate(0deg) } 50% { opacity:0.9; transform: rotate(3deg) } 100% { opacity:0.5; transform: rotate(-2deg) } }
@keyframes fwa-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fwa-fenton { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fwa-anne { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-4px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fwa-hearth { 0% { opacity:0.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.6; transform: scale(0.95) } }

/* Scene: fentons-true-love (warm, bright-interior) */
.scn-fentons-true-love {
  background: linear-gradient(90deg, #c8a882 0%, #d6b894 30%, #b8906a 70%, #a87a54 100%), radial-gradient(ellipse at 50% 80%, #f0d8b0 0%, transparent 60%);
}
.scn-fentons-true-love .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4b890 0%, #ba9878 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
  animation: ftl-wall 15s ease-in-out infinite alternate;
}
.scn-fentons-true-love .floor-tiles {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%);
  background-size: 30px 30px, 30px 30px;
  background-image: repeating-linear-gradient(90deg, transparent, transparent 30px, rgba(0,0,0,0.1) 31px), repeating-linear-gradient(0deg, transparent, transparent 30px, rgba(0,0,0,0.1) 31px);
  border-radius: 15% 15% 0 0 / 8% 8% 0 0;
  animation: ftl-floor 12s ease-in-out infinite;
}
.scn-fentons-true-love .arch-column {
  position: absolute;
  top: 10%;
  left: 45%;
  width: 10%;
  height: 70%;
  background: linear-gradient(90deg, #a88a62 0%, #c0a080 30%, #b09070 70%, #907050 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.3), inset 4px 0 8px rgba(255,255,200,0.2);
  animation: ftl-column 8s ease-in-out infinite alternate;
}
.scn-fentons-true-love .figure-fenton-left {
  position: absolute;
  bottom: 25%;
  left: 20%;
  width: 12%;
  height: 38%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ftl-fenton 5s ease-in-out infinite;
}
.scn-fentons-true-love .figure-anne-right {
  position: absolute;
  bottom: 25%;
  right: 20%;
  width: 10%;
  height: 36%;
  background: linear-gradient(180deg, #6a5040 0%, #3a2820 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ftl-anne 6s ease-in-out infinite alternate;
}
.scn-fentons-true-love .table-center {
  position: absolute;
  bottom: 25%;
  left: 35%;
  width: 30%;
  height: 12%;
  background: linear-gradient(180deg, #8a6030 0%, #5a3a1a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: ftl-table 10s ease-in-out infinite;
}
.scn-fentons-true-love .candle {
  position: absolute;
  bottom: 33%;
  left: 48.5%;
  width: 3%;
  height: 15%;
  background: linear-gradient(180deg, #f0e0c0 0%, #e8c080 70%, #b08040 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: ftl-candle 4s ease-in-out infinite alternate;
}
.scn-fentons-true-love .candle-halo {
  position: absolute;
  bottom: 32%;
  left: 48%;
  width: 6%;
  height: 10%;
  background: radial-gradient(circle, #ffd060 0%, #ffb040 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ftl-halo 2s ease-in-out infinite alternate;
}
@keyframes ftl-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ftl-floor { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.01) } 100% { transform: scaleX(1) } }
@keyframes ftl-column { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) scaleX(1.005) } 100% { transform: scaleY(1) } }
@keyframes ftl-fenton { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ftl-anne { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ftl-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ftl-candle { 0% { transform: scaleY(0.95) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes ftl-halo { 0% { opacity:0.6; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.7; transform: scale(1) } }

/* Scene: slender-comes (funny, bright-interior) */
.scn-slender-comes {
  background: linear-gradient(135deg, #d4b890 0%, #c0a07a 50%, #a88a6a 100%), radial-gradient(circle at 40% 50%, #f0d8b0 0%, transparent 60%);
}
.scn-slender-comes .tavern-wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8ac88 0%, #b0906a 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.2);
  border-radius: 10% 10% 0 0 / 5% 5% 0 0;
  animation: slc-wall 14s ease-in-out infinite alternate;
}
.scn-slender-comes .doorway {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 30%;
  height: 60%;
  background: linear-gradient(90deg, #a0805a 0%, #b09070 20%, #c0a080 50%, #a0805a 80%, #907050 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3), 0 4px 12px rgba(0,0,0,0.4);
  animation: slc-doorway 10s ease-in-out infinite;
}
.scn-slender-comes .floor-planks {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a321a 100%);
  background-image: repeating-linear-gradient(90deg, transparent, transparent 40px, rgba(0,0,0,0.1) 41px);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: slc-floor 12s ease-in-out infinite alternate;
}
.scn-slender-comes .figure-slender {
  position: absolute;
  bottom: 28%;
  left: 40%;
  width: 6%;
  height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: slc-slender 4s ease-in-out infinite;
}
.scn-slender-comes .figure-shallow {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 8%;
  height: 28%;
  background: linear-gradient(180deg, #5a3a20 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: slc-shallow 5s ease-in-out infinite alternate;
}
.scn-slender-comes .figure-quickly {
  position: absolute;
  bottom: 28%;
  left: 58%;
  width: 7%;
  height: 26%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a12 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: slc-quickly 6s ease-in-out infinite;
}
.scn-slender-comes .lamp-swing {
  position: absolute;
  top: 10%;
  left: 45%;
  width: 10%;
  height: 12%;
  background: radial-gradient(circle at 50% 30%, #f0d060 0%, #c08020 60%, transparent 100%);
  border-radius: 30% 30% 50% 50%;
  filter: blur(6px);
  transform-origin: top center;
  animation: slc-lamp 3s ease-in-out infinite alternate;
}
@keyframes slc-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes slc-doorway { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes slc-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes slc-slender { 0% { transform: translateY(0) rotate(-4deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(4deg) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes slc-shallow { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes slc-quickly { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes slc-lamp { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }

/* Scene: slender-woos-clumsily (funny, bright-interior) */
.scn-slender-woos-clumsily {
  background: linear-gradient(180deg, #d4b890 0%, #c0a07a 40%, #a88a6a 100%), radial-gradient(ellipse at 50% 80%, #f0d8b0 0%, transparent 70%);
}
.scn-slender-woos-clumsily .chamber-wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #c8ac88 0%, #b0906a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
  border-radius: 8% 8% 0 0 / 4% 4% 0 0;
  animation: swc-wall 16s ease-in-out infinite alternate;
}
.scn-slender-woos-clumsily .bench {
  position: absolute;
  bottom: 28%;
  left: 25%;
  width: 50%;
  height: 10%;
  background: linear-gradient(180deg, #8a6030 0%, #5a3a1a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: swc-bench 10s ease-in-out infinite;
}
.scn-slender-woos-clumsily .figure-slender-clumsy {
  position: absolute;
  bottom: 32%;
  left: 35%;
  width: 8%;
  height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: swc-slender-clumsy 4s ease-in-out infinite;
}
.scn-slender-woos-clumsily .figure-anne-listening {
  position: absolute;
  bottom: 32%;
  right: 30%;
  width: 9%;
  height: 34%;
  background: linear-gradient(180deg, #6a5040 0%, #3a2820 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: swc-anne 5s ease-in-out infinite alternate;
}
.scn-slender-woos-clumsily .table-small {
  position: absolute;
  bottom: 22%;
  left: 55%;
  width: 20%;
  height: 14%;
  background: linear-gradient(180deg, #7a5030 0%, #4a2a10 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: swc-table 12s ease-in-out infinite;
}
.scn-slender-woos-clumsily .tankard {
  position: absolute;
  bottom: 24%;
  left: 62%;
  width: 5%;
  height: 10%;
  background: linear-gradient(180deg, #c0a070 0%, #907050 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: swc-tankard 3s ease-in-out infinite alternate;
}
.scn-slender-woos-clumsily .shadow {
  position: absolute;
  bottom: 0;
  left: 30%;
  width: 40%;
  height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  filter: blur(10px);
  animation: swc-shadow 7s ease-in-out infinite alternate;
}
@keyframes swc-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes swc-bench { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes swc-slender-clumsy { 0% { transform: translateY(0) rotate(-5deg) scale(1) } 25% { transform: translateY(-3px) rotate(3deg) scale(1.02) } 50% { transform: translateY(0) rotate(5deg) scale(1) } 75% { transform: translateY(-2px) rotate(-3deg) scale(0.98) } 100% { transform: translateY(0) rotate(0deg) scale(1) } }
@keyframes swc-anne { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes swc-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes swc-tankard { 0% { transform: rotate(-5deg) scale(0.95) } 50% { transform: rotate(5deg) scale(1.05) } 100% { transform: rotate(-3deg) scale(1) } }
@keyframes swc-shadow { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.5; transform: scaleX(1.1) } 100% { opacity:0.4; transform: scaleX(1) } }

.scn-anne-page-enters {
  background: linear-gradient(135deg, #fef9e7 0%, #ffe0b2 50%, #ffcc80 100%),
              radial-gradient(ellipse at 20% 50%, #fff3e0, transparent 60%);
}
.scn-anne-page-enters .doorway { position:absolute; left:20%; top:0; width:60%; height:55%; background:#8d6e63; border-radius:40% 40% 0 0; animation:aep-door 15s ease infinite; }
.scn-anne-page-enters .sunbeam { position:absolute; left:35%; top:-10%; width:30%; height:60%; background: linear-gradient(180deg, rgba(255,243,224,0.3), transparent); transform:rotate(15deg); border-radius:40%; animation:aep-beam 12s ease-in-out infinite alternate; }
.scn-anne-page-enters .figure-anne { position:absolute; bottom:18%; left:45%; width:16px; height:36px; border-radius:50% 50% 40% 40%/60% 60% 40% 40%; background:#5d4037; animation:aep-walka 4s ease-in-out infinite; transform-origin:bottom; }
.scn-anne-page-enters .figure-ford { position:absolute; bottom:16%; left:55%; width:20px; height:32px; border-radius:50% 50% 40% 40%/60% 60% 40% 40%; background:#4e342e; animation:aep-walkb 5s ease-in-out infinite 1s; transform-origin:bottom; }
.scn-anne-page-enters .figure-page { position:absolute; bottom:18%; left:35%; width:18px; height:30px; border-radius:50% 50% 40% 40%/60% 60% 40% 40%; background:#6d4c41; animation:aep-walkc 4.5s ease-in-out infinite 0.5s; transform-origin:bottom; }
.scn-anne-page-enters .table { position:absolute; bottom:10%; left:30%; width:40%; height:12%; background:#3e2723; border-radius:5%; box-shadow:0 -4px 8px rgba(0,0,0,0.3); animation:aep-table 20s ease infinite; }
.scn-anne-page-enters .wine-cup { position:absolute; bottom:20%; left:60%; width:8px; height:12px; background:#d7ccc8; border-radius:0 0 4px 4px; box-shadow:0 0 6px #bcaaa4; animation:aep-wine 3s ease-in-out infinite; }
@keyframes aep-door { 0%,100% { filter:brightness(1); } 50% { filter:brightness(0.9); } }
@keyframes aep-beam { 0% { opacity:0.6; transform:rotate(13deg); } 50% { opacity:1; } 100% { opacity:0.7; transform:rotate(17deg); } }
@keyframes aep-walka { 0%,100% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(3px) rotate(2deg); } 50% { transform:translateX(6px) rotate(-1deg); } 75% { transform:translateX(3px) rotate(1deg); } }
@keyframes aep-walkb { 0%,100% { transform:translateX(0) rotate(0); } 33% { transform:translateX(-2px) rotate(-1deg); } 66% { transform:translateX(2px) rotate(1deg); } }
@keyframes aep-walkc { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes aep-table { 0%,100% { transform:scaleY(1); } 50% { transform:scaleY(0.98); } }
@keyframes aep-wine { 0%,100% { transform:rotate(-3deg); } 50% { transform:rotate(3deg); } }

.scn-book-of-songs {
  background: linear-gradient(180deg, #4e342e 0%, #3e2723 50%, #2c1a14 100%),
              radial-gradient(ellipse at 50% 80%, #5d4037 0%, transparent 70%);
}
.scn-book-of-songs .wall { position:absolute; inset:0 0 0 0; background:linear-gradient(180deg, #3e2723, #2c1a14); }
.scn-book-of-songs .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background:#3e2723; border-top:2px solid #4e342e; }
.scn-book-of-songs .shelf { position:absolute; top:20%; left:5%; width:30%; height:5%; background:#5d4037; box-shadow:0 4px 6px rgba(0,0,0,0.5); animation:bs-shelf 30s linear infinite; }
.scn-book-of-songs .figure-left { position:absolute; bottom:12%; left:20%; width:18px; height:38px; border-radius:50% 50% 40% 40%/60% 60% 40% 40%; background:#1b0e0a; animation:bs-bounce 2s ease-in-out infinite; transform-origin:bottom; }
.scn-book-of-songs .figure-right { position:absolute; bottom:12%; left:50%; width:20px; height:40px; border-radius:50% 50% 40% 40%/60% 60% 40% 40%; background:#2c1a14; animation:bs-bounce 2.5s ease-in-out infinite 0.3s; transform-origin:bottom; }
.scn-book-of-songs .book { position:absolute; bottom:16%; left:40%; width:12px; height:8px; background:#8d6e63; border-radius:2px; transform:rotate(15deg); animation:bs-book 4s ease-in-out infinite; }
.scn-book-of-songs .candle { position:absolute; bottom:30%; left:70%; width:4px; height:14px; background:#d7ccc8; border-radius:2px; animation:bs-candle 3s ease-in-out infinite; }
.scn-book-of-songs .glow { position:absolute; bottom:30%; left:70%; width:40px; height:40px; background:radial-gradient(circle, rgba(255,183,77,0.3), transparent); border-radius:50%; transform:translate(-50%, 50%); animation:bs-glow 3s ease-in-out infinite alternate; }
@keyframes bs-shelf { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-1px); } }
@keyframes bs-bounce { 0%,100% { transform:translateY(0) rotate(0deg); } 30% { transform:translateY(-3px) rotate(2deg); } 60% { transform:translateY(-1px) rotate(-2deg); } }
@keyframes bs-book { 0%,100% { transform:rotate(15deg) translateX(0); } 50% { transform:rotate(-15deg) translateX(4px); } }
@keyframes bs-candle { 0%,100% { transform:scaleY(1); opacity:0.9; } 50% { transform:scaleY(0.95); opacity:1; } }
@keyframes bs-glow { 0% { opacity:0.5; transform:translate(-50%, 50%) scale(1); } 100% { opacity:0.9; transform:translate(-50%, 50%) scale(1.3); } }

.scn-tender-for-anne {
  background: linear-gradient(180deg, #1a0f0a 0%, #3e1f0a 50%, #6b3a1f 100%),
              radial-gradient(ellipse at 50% 90%, #d84315 0%, transparent 60%);
}
.scn-tender-for-anne .hearth { position:absolute; bottom:15%; left:10%; width:30%; height:40%; background:#1a0f0a; border-radius:20% 20% 5% 5%; box-shadow:inset 0 0 20px #d84315; animation:tfa-hearth 6s ease-in-out infinite; }
.scn-tender-for-anne .mantel { position:absolute; bottom:55%; left:8%; width:34%; height:4%; background:#4e342e; box-shadow:0 4px 6px rgba(0,0,0,0.5); }
.scn-tender-for-anne .figure-slender { position:absolute; bottom:15%; left:50%; width:16px; height:40px; border-radius:50% 50% 40% 40%/60% 60% 40% 40%; background:#2c1a14; animation:tfa-nod 4s ease-in-out infinite; transform-origin:bottom; }
.scn-tender-for-anne .figure-mistress { position:absolute; bottom:14%; left:65%; width:20px; height:34px; border-radius:50% 50% 40% 40%/60% 60% 40% 40%; background:#4e342e; animation:tfa-nod 4.5s ease-in-out infinite 0.5s; transform-origin:bottom; }
.scn-tender-for-anne .chair { position:absolute; bottom:12%; left:48%; width:30px; height:35px; background:#3e2723; border-radius:5px; box-shadow:0 4px 8px rgba(0,0,0,0.6); animation:tfa-chair 20s ease infinite; }
.scn-tender-for-anne .fireglow { position:absolute; bottom:15%; left:10%; width:30%; height:40%; background:radial-gradient(ellipse, rgba(255,138,80,0.4), transparent); border-radius:20%; animation:tfa-fire 3s ease-in-out infinite alternate; }
.scn-tender-for-anne .rug { position:absolute; bottom:5%; left:30%; width:50%; height:10%; background: linear-gradient(90deg, #4e342e, #3e2723, #4e342e); border-radius:50% / 100% 100% 0 0; opacity:0.6; animation:tfa-rug 15s linear infinite; }
@keyframes tfa-hearth { 0%,100% { box-shadow:inset 0 0 20px #d84315; } 50% { box-shadow:inset 0 0 30px #ff8a50; } }
@keyframes tfa-nod { 0%,100% { transform:rotate(0deg); } 25% { transform:rotate(3deg); } 50% { transform:rotate(-2deg); } 75% { transform:rotate(1deg); } }
@keyframes tfa-chair { 0%,100% { transform:rotate(0); } 50% { transform:rotate(1deg); } }
@keyframes tfa-fire { 0% { opacity:0.6; } 100% { opacity:0.9; } }
@keyframes tfa-rug { 0% { background-position:0% 50%; } 100% { background-position:100% 50%; } }

.scn-marriage-question {
  background: linear-gradient(180deg, #2c1a14 0%, #3e2723 50%, #4e342e 100%),
              radial-gradient(ellipse at 30% 60%, #6d4c41, transparent 50%);
}
.scn-marriage-question .desk { position:absolute; bottom:10%; left:20%; width:60%; height:12%; background:#4e342e; border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,0.5); animation:mq-desk 30s ease infinite; }
.scn-marriage-question .candle { position:absolute; bottom:20%; left:25%; width:4px; height:20px; background:#d7ccc8; border-radius:2px; animation:mq-candle 3s ease-in-out infinite; }
.scn-marriage-question .figure-anne { position:absolute; bottom:16%; left:35%; width:14px; height:34px; border-radius:50% 50% 40% 40%/60% 60% 40% 40%; background:#5d4037; animation:mq-anne 5s ease-in-out infinite; transform-origin:bottom; }
.scn-marriage-question .figure-suitor { position:absolute; bottom:15%; left:55%; width:18px; height:38px; border-radius:50% 50% 40% 40%/60% 60% 40% 40%; background:#3e2723; animation:mq-suitor 4s ease-in-out infinite 0.3s; transform-origin:bottom; }
.scn-marriage-question .scroll { position:absolute; bottom:18%; left:45%; width:20px; height:6px; background:#d7ccc8; border-radius:2px; transform:rotate(-5deg); animation:mq-scroll 6s ease-in-out infinite; }
.scn-marriage-question .inkwell { position:absolute; bottom:20%; left:65%; width:10px; height:12px; background:#2c1a14; border-radius:50% 50% 10% 10%; box-shadow:inset 0 2px 4px #000; animation:mq-ink 8s linear infinite; }
.scn-marriage-question .stool { position:absolute; bottom:8%; left:50%; width:24px; height:18px; background:#3e2723; border-radius:4px; animation:mq-stool 20s ease infinite; }
.scn-marriage-question .floor { position:absolute; bottom:0; left:0; right:0; height:8%; background:#2c1a14; border-top:2px solid #4e342e; }
@keyframes mq-desk { 0%,100% { transform:scale(1); } 50% { transform:scale(1.02); } }
@keyframes mq-candle { 0%,100% { transform:scaleY(1) rotate(0); opacity:0.9; } 50% { transform:scaleY(1.05) rotate(2deg); opacity:1; } }
@keyframes mq-anne { 0%,100% { transform:rotate(0deg); } 25% { transform:rotate(2deg) translateX(2px); } 50% { transform:rotate(-1deg) translateX(-1px); } 75% { transform:rotate(1deg) translateX(1px); } }
@keyframes mq-suitor { 0%,100% { transform:rotate(0); } 33% { transform:rotate(3deg); } 66% { transform:rotate(-3deg); } }
@keyframes mq-scroll { 0%,100% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-3deg) translateY(-2px); } }
@keyframes mq-ink { 0% { background-position:0% 50%; } 100% { background-position:100% 50%; } }
@keyframes mq-stool { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-1px); } }

/* good-knot-dinner — sunlit calm interior */
.scn-good-knot-dinner {
  background:
    linear-gradient(180deg, #f9e7c2 0%, #e4c88a 40%, #c8a56a 100%),
    radial-gradient(ellipse at 30% 70%, #ffe0a0 0%, transparent 60%);
}
.scn-good-knot-dinner .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f5dba8 0%, #dbb87c 100%);
  box-shadow: inset 0 0 60px #b8955a;
  animation: gkd-wall 12s ease-in-out infinite alternate;
}
.scn-good-knot-dinner .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #8a6e4a 0%, #5a4428 100%);
  border-radius: 0 0 10% 10%;
}
.scn-good-knot-dinner .table {
  position: absolute; bottom: 28%; left: 20%; right: 20%; height: 14%;
  background: linear-gradient(180deg, #b8925a 0%, #8a6e3a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,.3);
  transform: perspective(400px) rotateX(3deg);
  animation: gkd-table 8s ease-in-out infinite;
}
.scn-good-knot-dinner .plate-1,
.scn-good-knot-dinner .plate-2 {
  position: absolute; bottom: 31%; width: 28px; height: 26px;
  background: radial-gradient(circle, #ece4d0 0%, #c8b890 70%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
}
.scn-good-knot-dinner .plate-1 { left: 30%; }
.scn-good-knot-dinner .plate-2 { left: 42%; }
.scn-good-knot-dinner .candle {
  position: absolute; bottom: 34%; left: 36%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 100%);
  border-radius: 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: gkd-candle 2s ease-in-out infinite alternate;
}
.scn-good-knot-dinner .glow {
  position: absolute; bottom: 35%; left: 35%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe080 0%, #f0c050 40%, transparent 70%);
  box-shadow: 0 0 40px 10px #e0a030;
  border-radius: 50%;
  animation: gkd-glow 3s ease-in-out infinite alternate;
}
.scn-good-knot-dinner .figure-left,
.scn-good-knot-dinner .figure-right {
  position: absolute; bottom: 20%; width: 24px; height: 54px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-good-knot-dinner .figure-left { left: 14%; transform-origin: bottom center; animation: gkd-sway 6s ease-in-out infinite; }
.scn-good-knot-dinner .figure-right { right: 14%; transform-origin: bottom center; animation: gkd-sway 6s ease-in-out infinite reverse; }
@keyframes gkd-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes gkd-table { 0%,100% { transform: perspective(400px) rotateX(3deg) translateY(0) } 50% { transform: perspective(400px) rotateX(2deg) translateY(-1px) } }
@keyframes gkd-candle { 0% { transform: rotate(-1deg) scaleY(1) } 50% { transform: rotate(1deg) scaleY(1.02) } 100% { transform: rotate(0deg) scaleY(.98) } }
@keyframes gkd-glow { 0% { opacity:.7; transform: scale(.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.8; transform: scale(1) } }
@keyframes gkd-sway { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }

/* page-and-caius-rival — sunlit calm garden */
.scn-page-and-caius-rival {
  background:
    linear-gradient(180deg, #9fc8e8 0%, #c0dff0 40%, #e0f0e0 100%),
    radial-gradient(ellipse at 50% 20%, #f8f8f0 0%, transparent 70%);
}
.scn-page-and-caius-rival .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #a0c8e8 0%, #c8e0f0 100%);
  animation: pcr-sky 14s ease-in-out infinite alternate;
}
.scn-page-and-caius-rival .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 42%;
  background: linear-gradient(180deg, #7a9a6a 0%, #4a6a3a 100%);
  border-radius: 30% 50% 0 0;
}
.scn-page-and-caius-rival .tree-left,
.scn-page-and-caius-rival .tree-right {
  position: absolute; bottom: 20%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #3a5a2a 0%, #2a3a1a 100%);
  border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%;
}
.scn-page-and-caius-rival .tree-left { left: 8%; animation: pcr-sway 10s ease-in-out infinite; }
.scn-page-and-caius-rival .tree-right { right: 10%; animation: pcr-sway 12s ease-in-out infinite reverse; }
.scn-page-and-caius-rival .figure {
  position: absolute; bottom: 16%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-page-and-caius-rival .page { left: 30%; animation: pcr-bob 5s ease-in-out infinite; }
.scn-page-and-caius-rival .caius { left: 42%; animation: pcr-bob 6s ease-in-out infinite 1s; }
.scn-page-and-caius-rival .slender { left: 54%; animation: pcr-bob 7s ease-in-out infinite 2s; }
.scn-page-and-caius-rival .shadow {
  position: absolute; bottom: 14%; left: 30%; right: 10%; height: 14%;
  background: radial-gradient(ellipse, rgba(0,0,0,.15) 0%, transparent 100%);
  animation: pcr-shadow 8s ease-in-out infinite alternate;
}
@keyframes pcr-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes pcr-sway { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes pcr-bob { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes pcr-shadow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.2 } }

/* monster-to-show — tense sunlit reveal */
.scn-monster-to-show {
  background:
    linear-gradient(180deg, #f8e8c8 0%, #d8b898 40%, #a87858 100%),
    radial-gradient(ellipse at 40% 60%, #ffe0a0 0%, transparent 60%);
}
.scn-monster-to-show .bg-light {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #fce8c0 0%, #e0c098 100%);
  animation: mts-light 8s ease-in-out infinite alternate;
}
.scn-monster-to-show .bg-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #6a4a3a 0%, #2a1a12 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.5);
}
.scn-monster-to-show .monster {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  clip-path: polygon(20% 0%, 80% 0%, 70% 30%, 90% 50%, 60% 70%, 70% 100%, 30% 100%, 40% 70%, 10% 50%, 30% 30%);
  box-shadow: 0 0 60px rgba(0,0,0,.4);
  animation: mts-loom 6s ease-in-out infinite;
}
.scn-monster-to-show .monster-shadow {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 20%;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%);
  animation: mts-shadow 6s ease-in-out infinite alternate;
}
.scn-monster-to-show .arm {
  position: absolute; bottom: 35%; left: 25%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 80% 0 20% 20% / 60% 20% 40% 40%;
  transform-origin: 20% 50%;
  animation: mts-arm 4s ease-in-out infinite;
}
.scn-monster-to-show .hand {
  position: absolute; bottom: 36%; left: 18%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-10deg);
  animation: mts-hand 4s ease-in-out infinite;
}
.scn-monster-to-show .dust {
  position: absolute; bottom: 50%; left: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,200,150,.3) 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(8px);
  animation: mts-dust 3s ease-in-out infinite alternate;
}
@keyframes mts-light { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes mts-loom { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) translateY(-4px) } }
@keyframes mts-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.2 } }
@keyframes mts-arm { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-8deg) } }
@keyframes mts-hand { 0%,100% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-15deg) translateX(4px) } }
@keyframes mts-dust { 0% { opacity:.2; transform: translate(0,0) scale(.8) } 100% { opacity:.6; transform: translate(10px,-6px) scale(1.2) } }

/* drink-pipe-wine — dark sunlit tavern */
.scn-drink-pipe-wine {
  background:
    linear-gradient(180deg, #2a1a10 0%, #3a2218 40%, #4a3020 100%),
    radial-gradient(ellipse at 30% 50%, #8a5a3a 0%, transparent 60%);
}
.scn-drink-pipe-wine .wall-dark {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2818 0%, #1a1008 100%);
  box-shadow: inset 0 0 40px #0a0500;
}
.scn-drink-pipe-wine .table-rough {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 18%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 12% 12% 6% 6%;
  box-shadow: 0 6px 16px rgba(0,0,0,.6);
  transform: perspective(300px) rotateX(5deg);
}
.scn-drink-pipe-wine .wine-bottle {
  position: absolute; bottom: 28%; left: 28%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #5a2a1a 0%, #2a1008 100%);
  border-radius: 30% 30% 15% 15% / 40% 40% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: dpw-bottle 3s ease-in-out infinite alternate;
}
.scn-drink-pipe-wine .pipe {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 8px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 20% 80% 80% 20% / 40% 80% 40% 20%;
  transform-origin: 20% 50%;
  animation: dpw-pipe 4s ease-in-out infinite;
}
.scn-drink-pipe-wine .hand-left,
.scn-drink-pipe-wine .hand-right {
  position: absolute; bottom: 26%; width: 16px; height: 22px;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
}
.scn-drink-pipe-wine .hand-left { left: 22%; transform-origin: bottom center; animation: dpw-hand-left 5s ease-in-out infinite; }
.scn-drink-pipe-wine .hand-right { right: 22%; transform-origin: bottom center; animation: dpw-hand-right 5s ease-in-out infinite 1s; }
.scn-drink-pipe-wine .wine-spill {
  position: absolute; bottom: 12%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #8a1a0a 0%, #5a1008 100%);
  border-radius: 40% 60% 20% 20% / 80% 80% 20% 20%;
  opacity: .6;
  animation: dpw-spill 6s ease-in-out infinite alternate;
}
.scn-drink-pipe-wine .shadow-figure {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 70%);
  animation: dpw-shadow 7s ease-in-out infinite alternate;
}
@keyframes dpw-bottle { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) translateY(-1px) } }
@keyframes dpw-pipe { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(8deg) } }
@keyframes dpw-hand-left { 0%,100% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.02) } }
@keyframes dpw-hand-right { 0%,100% { transform: rotate(5deg) scaleY(1) } 50% { transform: rotate(-5deg) scaleY(.98) } }
@keyframes dpw-spill { 0% { opacity:.4; transform: scaleX(1) } 50% { opacity:.7; transform: scaleX(1.1) } 100% { opacity:.5; transform: scaleX(.9) } }
@keyframes dpw-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-sword-skill { background: linear-gradient(180deg, #7ec8e3 0%, #b5d8e8 40%, #f9d976 100%), radial-gradient(ellipse at 50% 0%, #fff5c0 0%, transparent 70%); }
.scn-sword-skill .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #8fd0e8 0%, #cce3f0 50%, transparent 100%); animation: sds-sky 20s ease-in-out infinite alternate; }
.scn-sword-skill .sun { position:absolute; top:10%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #fff5c0 0%, #f9d976 40%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(249,217,118,.5); animation: sds-sun 8s ease-in-out infinite; }
.scn-sword-skill .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #7ca45a 0%, #5a7a3a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; animation: sds-ground 12s ease-in-out infinite alternate; }
.scn-sword-skill .figure { position:absolute; bottom:35%; left:40%; width:40px; height:80px; background: linear-gradient(180deg, #2a2a3a 0%, #12121a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sds-figure 4s ease-in-out infinite; }
.scn-sword-skill .sword { position:absolute; bottom:40%; left:47%; width:8px; height:90px; background: linear-gradient(180deg, #c0c0c0 0%, #808080 50%, #404040 100%); border-radius: 4px 4px 2px 2px; transform: rotate(30deg); transform-origin: bottom center; animation: sds-sword 1.5s ease-in-out infinite; box-shadow: 0 0 4px rgba(192,192,192,.6); }
.scn-sword-skill .shadow-a, .scn-sword-skill .shadow-b, .scn-sword-skill .shadow-c, .scn-sword-skill .shadow-d { position:absolute; bottom:30%; width:12px; height:20px; background: rgba(30,30,20,.4); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; animation: sds-shadow 6s ease-in-out infinite; }
.scn-sword-skill .shadow-a { left:55%; animation-delay: 0s; }
.scn-sword-skill .shadow-b { left:62%; animation-delay: 1.5s; }
.scn-sword-skill .shadow-c { left:69%; animation-delay: 3s; }
.scn-sword-skill .shadow-d { left:76%; animation-delay: 4.5s; }
@keyframes sds-sky { 0% { opacity:0.85; transform: translateY(0); } 50% { opacity:1; transform: translateY(-4px); } 100% { opacity:0.9; transform: translateY(2px); } }
@keyframes sds-sun { 0%,100% { transform: scale(1) translate(0,0); box-shadow: 0 0 40px 20px rgba(249,217,118,.5); } 50% { transform: scale(1.08) translate(2px,-1px); box-shadow: 0 0 60px 30px rgba(249,217,118,.7); } }
@keyframes sds-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes sds-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(3deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sds-sword { 0% { transform: rotate(30deg) scaleY(1); } 25% { transform: rotate(50deg) scaleY(1.02); } 50% { transform: rotate(20deg) scaleY(0.98); } 75% { transform: rotate(40deg) scaleY(1.01); } 100% { transform: rotate(30deg) scaleY(1); } }
@keyframes sds-shadow { 0% { transform: translateX(0) scale(1); opacity:0.4; } 25% { transform: translateX(8px) scale(0.9); opacity:0.2; } 50% { transform: translateX(0) scale(1.1); opacity:0.5; } 75% { transform: translateX(-6px) scale(0.95); opacity:0.3; } 100% { transform: translateX(0) scale(1); opacity:0.4; } }

.scn-ford-plans-disguise { background: linear-gradient(180deg, #2a1f1a 0%, #4a3528 30%, #6b4a3a 100%), radial-gradient(ellipse at 50% 100%, #4a3528 0%, transparent 60%); }
.scn-ford-plans-disguise .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a2a1e 0%, #4a3528 60%, transparent 100%); animation: fpd-wall 15s ease-in-out infinite alternate; }
.scn-ford-plans-disguise .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a1e 0%, #1a120a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; animation: fpd-floor 18s ease-in-out infinite alternate; }
.scn-ford-plans-disguise .table { position:absolute; bottom:18%; left:35%; width:90px; height:40px; background: linear-gradient(180deg, #5a3a28 0%, #3a2212 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: fpd-table 8s ease-in-out infinite; }
.scn-ford-plans-disguise .candle { position:absolute; bottom:25%; left:45%; width:8px; height:18px; background: linear-gradient(180deg, #c8a060 0%, #8a6030 100%); border-radius: 3px; box-shadow: 0 0 20px 6px #c8a060; animation: fpd-candle 3s ease-in-out infinite alternate; }
.scn-ford-plans-disguise .candle::after { content:''; position:absolute; top:-8px; left:2px; width:4px; height:8px; background: radial-gradient(circle, #ffd080 0%, #c08040 100%); border-radius: 50%; box-shadow: 0 0 12px 4px #ffd080; animation: fpd-flame 1.5s ease-in-out infinite alternate; }
.scn-ford-plans-disguise .falstaff { position:absolute; bottom:12%; left:30%; width:55px; height:90px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fpd-falstaff 6s ease-in-out infinite; }
.scn-ford-plans-disguise .pistol { position:absolute; bottom:10%; left:52%; width:35px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #12121a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fpd-pistol 6s ease-in-out infinite 0.5s; }
.scn-ford-plans-disguise .blade { position:absolute; bottom:15%; left:50%; width:6px; height:60px; background: linear-gradient(180deg, #a0a0a0 0%, #606060 50%, #303030 100%); border-radius: 3px; transform: rotate(15deg); transform-origin: bottom; box-shadow: 0 0 6px rgba(160,160,160,.4); animation: fpd-blade 7s ease-in-out infinite; }
@keyframes fpd-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes fpd-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fpd-table { 0%,100% { transform: translateX(0); } 50% { transform: translateX(2px); } }
@keyframes fpd-candle { 0% { box-shadow: 0 0 15px 4px #c8a060; } 50% { box-shadow: 0 0 25px 8px #c8a060; } 100% { box-shadow: 0 0 18px 5px #c8a060; } }
@keyframes fpd-flame { 0% { transform: translateY(0) scale(1); opacity:0.9; } 50% { transform: translateY(-2px) scale(1.1); opacity:1; } 100% { transform: translateY(0) scale(0.95); opacity:0.8; } }
@keyframes fpd-falstaff { 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 fpd-pistol { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-2px) rotate(-2deg); } 60% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fpd-blade { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }

.scn-falstaff-refuses-pistol { background: linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #3a2a22 100%), radial-gradient(ellipse at 50% 100%, #2a1e1a 0%, transparent 70%); }
.scn-falstaff-refuses-pistol .room-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1e18 0%, #3a2a20 60%, transparent 100%); animation: frp-wall 20s ease-in-out infinite alternate; }
.scn-falstaff-refuses-pistol .room-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a20 0%, #1a120a 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; animation: frp-floor 12s ease-in-out infinite alternate; }
.scn-falstaff-refuses-pistol .big-figure { position:absolute; bottom:15%; left:25%; width:60px; height:100px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 35% 35% / 60% 60% 30% 30%; transform-origin: bottom center; animation: frp-big 5s ease-in-out infinite; }
.scn-falstaff-refuses-pistol .small-figure { position:absolute; bottom:12%; left:55%; width:40px; height:80px; background: linear-gradient(180deg, #222236 0%, #0e0e1e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: frp-small 5s ease-in-out infinite 0.5s; }
.scn-falstaff-refuses-pistol .desk { position:absolute; bottom:10%; left:40%; width:50px; height:30px; background: linear-gradient(180deg, #5a3a28 0%, #3a2212 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.7); animation: frp-desk 8s ease-in-out infinite; }
.scn-falstaff-refuses-pistol .lantern { position:absolute; bottom:28%; left:50%; width:10px; height:16px; background: linear-gradient(180deg, #d08050 0%, #a06030 100%); border-radius: 3px; box-shadow: 0 0 20px 6px #d08050; animation: frp-lantern 3.5s ease-in-out infinite alternate; }
.scn-falstaff-refuses-pistol .lantern::after { content:''; position:absolute; top:-6px; left:3px; width:4px; height:6px; background: radial-gradient(circle, #ffb060 0%, #d08050 100%); border-radius: 50%; box-shadow: 0 0 8px 3px #ffb060; animation: frp-flame 1.8s ease-in-out infinite alternate; }
.scn-falstaff-refuses-pistol .stress-lines { position:absolute; top:20%; left:40%; width:30%; height:2px; background: repeating-linear-gradient(90deg, rgba(200,100,60,.6) 0px, rgba(200,100,60,.6) 4px, transparent 4px, transparent 8px); animation: frp-stress 2s ease-in-out infinite; }
@keyframes frp-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes frp-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes frp-big { 0% { transform: translateX(0) rotate(0); } 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 frp-small { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-3px) rotate(-1.5deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes frp-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(1px); } }
@keyframes frp-lantern { 0% { box-shadow: 0 0 15px 4px #d08050; } 50% { box-shadow: 0 0 28px 8px #d08050; } 100% { box-shadow: 0 0 18px 5px #d08050; } }
@keyframes frp-flame { 0% { transform: translateY(0) scale(1); opacity:0.9; } 50% { transform: translateY(-1.5px) scale(1.08); opacity:1; } 100% { transform: translateY(0) scale(0.95); opacity:0.8; } }
@keyframes frp-stress { 0% { opacity:0.3; } 50% { opacity:0.8; } 100% { opacity:0.3; } }

.scn-quickly-comes-to-falstaff { background: linear-gradient(180deg, #2a1e14 0%, #4a3420 40%, #6a4a30 100%), radial-gradient(ellipse at 50% 100%, #4a3420 0%, transparent 60%); }
.scn-quickly-comes-to-falstaff .back-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a18 0%, #4a3a24 60%, transparent 100%); animation: qcf-wall 16s ease-in-out infinite alternate; }
.scn-quickly-comes-to-falstaff .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a24 0%, #2a1a0e 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; animation: qcf-floor 14s ease-in-out infinite alternate; }
.scn-quickly-comes-to-falstaff .door-arc { position:absolute; bottom:5%; left:15%; width:60px; height:110px; background: linear-gradient(180deg, #1a1210 0%, #2a1a12 100%); border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%; box-shadow: inset -4px 0 10px rgba(0,0,0,.6); animation: qcf-door 10s ease-in-out infinite; }
.scn-quickly-comes-to-falstaff .door-arc::after { content:''; position:absolute; top:20%; left:8px; width:4px; height:60px; background: #a08050; border-radius: 2px; box-shadow: 2px 0 4px rgba(0,0,0,.4); }
.scn-quickly-comes-to-falstaff .seated-figure { position:absolute; bottom:12%; left:50%; width:50px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 35% 35% / 60% 60% 30% 30%; transform-origin: bottom center; animation: qcf-seated 7s ease-in-out infinite; }
.scn-quickly-comes-to-falstaff .entering-figure { position:absolute; bottom:12%; left:22%; width:40px; height:85px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: qcf-entering 8s ease-in-out infinite 1s; }
.scn-quickly-comes-to-falstaff .warm-glow { position:absolute; top:60%; left:40%; width:120px; height:120px; background: radial-gradient(circle, rgba(200,160,100,.4) 0%, transparent 70%); border-radius: 50%; animation: qcf-glow 5s ease-in-out infinite alternate; }
.scn-quickly-comes-to-falstaff .chair { position:absolute; bottom:0; left:55%; width:40px; height:45px; background: linear-gradient(180deg, #5a3a28 0%, #3a2212 100%); border-radius: 4px 4px 8px 8px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: qcf-chair 9s ease-in-out infinite; }
@keyframes qcf-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes qcf-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes qcf-door { 0% { transform: rotateY(0); } 50% { transform: rotateY(-15deg); } 100% { transform: rotateY(0); } }
@keyframes qcf-seated { 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 qcf-entering { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(0); } 75% { transform: translateX(4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes qcf-glow { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.05); } 100% { opacity:0.5; transform: scale(0.98); } }
@keyframes qcf-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }

/* Scene: eleven-o-clock */
.scn-eleven-o-clock {
  background: linear-gradient(180deg, #0c0a1a 0%, #1a1a3e 60%, #2a2248 100%), radial-gradient(ellipse at 70% 60%, rgba(200,160,80,.15) 0%, transparent 60%);
}
.scn-eleven-o-clock .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #1a1828 0%, #2a2238 50%, #1a1828 100%);
  animation: eoc-wall 12s ease-in-out infinite alternate;
}
.scn-eleven-o-clock .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,.6);
  animation: eoc-floor 8s ease-in-out infinite alternate;
}
.scn-eleven-o-clock .clock {
  position: absolute; top: 12%; left: 50%; width: 70px; height: 70px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c8a060 0%, #8a6a3a 60%, #4a3a1a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 20px rgba(0,0,0,.5), inset 0 0 10px rgba(0,0,0,.3);
  animation: eoc-clock 2s steps(60) infinite;
}
.scn-eleven-o-clock .figure {
  position: absolute; bottom: 30%; left: 38%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eoc-figure 5s ease-in-out infinite alternate;
}
.scn-eleven-o-clock .candle {
  position: absolute; bottom: 30%; left: 55%; width: 6px; height: 24px;
  background: linear-gradient(180deg, #e8d088 0%, #4a3a1a 100%);
  border-radius: 3px;
}
.scn-eleven-o-clock .candle::after {
  content: ''; position: absolute; top: -8px; left: -2px; width: 10px; height: 12px;
  background: radial-gradient(circle, #ffe080 0%, #f0a030 40%, transparent 70%);
  border-radius: 50%;
  animation: eoc-flame 1.6s ease-in-out infinite alternate;
}
.scn-eleven-o-clock .window {
  position: absolute; top: 15%; right: 12%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #4a5a8a 0%, #2a3a6a 100%);
  border: 3px solid #3a2a1a;
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(200,180,255,.3);
  animation: eoc-window 30s linear infinite alternate;
}
.scn-eleven-o-clock .shadow {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 6px;
  background: rgba(0,0,0,.4);
  filter: blur(4px);
  border-radius: 50%;
  animation: eoc-shadow 5s ease-in-out infinite alternate;
}
@keyframes eoc-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes eoc-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes eoc-clock { 0% { transform: translateX(-50%) rotate(0deg) } 100% { transform: translateX(-50%) rotate(360deg) } }
@keyframes eoc-figure { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes eoc-flame { 0% { transform: scaleY(1) translateY(0)} 50% { transform: scaleY(1.3) translateY(-2px)} 100% { transform: scaleY(1) translateY(0)} }
@keyframes eoc-window { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes eoc-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }

/* Scene: field-near-windsor */
.scn-field-near-windsor {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #98fb98 80%, #6b8e23 100%), radial-gradient(ellipse at 80% 20%, rgba(255,255,200,.4) 0%, transparent 50%);
}
.scn-field-near-windsor .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #a0d8ef 0%, #c0e4f0 100%);
  animation: fnw-sky 20s ease-in-out infinite alternate;
}
.scn-field-near-windsor .sun {
  position: absolute; top: 8%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8b0 0%, #ffd700 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(255,215,0,.5);
  animation: fnw-sun 8s ease-in-out infinite alternate;
}
.scn-field-near-windsor .tree {
  position: absolute; bottom: 30%; left: 15%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #2e5a1e 0%, #1a3a0e 100%);
  border-radius: 40% 40% 10% 10% / 80% 80% 20% 20%;
  box-shadow: inset -10px 0 15px rgba(0,0,0,.2);
  animation: fnw-tree 12s ease-in-out infinite alternate;
}
.scn-field-near-windsor .figure-caius {
  position: absolute; bottom: 28%; left: 40%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fnw-caius 4s ease-in-out infinite;
}
.scn-field-near-windsor .figure-rugby {
  position: absolute; bottom: 28%; left: 52%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: fnw-rugby 3.5s ease-in-out infinite 0.2s;
}
.scn-field-near-windsor .cloud1 {
  position: absolute; top: 12%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.7) 0%, rgba(255,255,255,.2) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: fnw-drift-a 40s linear infinite;
}
.scn-field-near-windsor .cloud2 {
  position: absolute; top: 20%; right: 30%; width: 60px; height: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.1) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: fnw-drift-b 50s linear infinite reverse;
}
.scn-field-near-windsor .bird {
  position: absolute; top: 15%; left: 60%; width: 12px; height: 6px;
  background: #2a2a1a;
  border-radius: 50%;
  clip-path: polygon(0 50%, 30% 0, 60% 50%, 100% 0, 100% 100%, 60% 50%, 30% 100%, 0 50%);
  animation: fnw-bird 12s ease-in-out infinite;
}
@keyframes fnw-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes fnw-sun { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(1) } }
@keyframes fnw-tree { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes fnw-caius { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(3px) rotate(0) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-3px) rotate(0) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes fnw-rugby { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-2px) rotate(0) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(2px) rotate(0) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes fnw-drift-a { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes fnw-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }
@keyframes fnw-bird { 0%,100% { transform: translate(0,0) } 50% { transform: translate(20px,-10px) } }

/* Scene: doctor-rages */
.scn-doctor-rages {
  background: linear-gradient(180deg, #f0e68c 0%, #deb887 40%, #8b7355 100%), radial-gradient(ellipse at 50% 80%, rgba(255,200,100,.3) 0%, transparent 60%);
}
.scn-doctor-rages .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c4a882 0%, #9b7e5c 100%);
  box-shadow: inset 0 15px 25px rgba(0,0,0,.2);
}
.scn-doctor-rages .caius {
  position: absolute; bottom: 35%; left: 30%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dr-caius 1.5s ease-in-out infinite alternate;
}
.scn-doctor-rages .rugby {
  position: absolute; bottom: 35%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: dr-rugby 1.5s ease-in-out infinite alternate 0.2s;
}
.scn-doctor-rages .rapier {
  position: absolute; bottom: 45%; left: 32%; width: 2px; height: 50px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  transform-origin: bottom center;
  animation: dr-rapier 1.8s ease-in-out infinite alternate;
  box-shadow: 0 0 6px 2px rgba(255,255,200,.6);
}
.scn-doctor-rages .dust-a {
  position: absolute; bottom: 30%; left: 40%; width: 10px; height: 10px;
  background: rgba(200,180,150,.4);
  border-radius: 50%;
  filter: blur(3px);
  animation: dr-dust 2.4s ease-out infinite;
}
.scn-doctor-rages .dust-b {
  position: absolute; bottom: 28%; left: 45%; width: 8px; height: 8px;
  background: rgba(200,180,150,.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: dr-dust 1.8s ease-out infinite 0.6s;
}
.scn-doctor-rages .cloud {
  position: absolute; top: 10%; right: 15%; width: 70px; height: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.15) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: fnw-drift-a 35s linear infinite;
}
@keyframes dr-caius { 0% { transform: translateX(0) rotate(5deg) } 50% { transform: translateX(8px) rotate(-3deg) } 100% { transform: translateX(0) rotate(5deg) } }
@keyframes dr-rugby { 0% { transform: translateX(0) rotate(-5deg) } 50% { transform: translateX(-6px) rotate(3deg) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes dr-rapier { 0% { transform: rotate(-15deg) } 100% { transform: rotate(20deg) } }
@keyframes dr-dust { 0% { transform: scale(1) translateY(0); opacity:1 } 100% { transform: scale(3) translateY(-20px); opacity:0 } }

/* Scene: bully-host-arrives */
.scn-bully-host-arrives {
  background: linear-gradient(180deg, #deb887 0%, #c4a882 40%, #8b7355 100%), radial-gradient(ellipse at 30% 70%, rgba(255,180,80,.15) 0%, transparent 60%);
}
.scn-bully-host-arrives .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #5a3a2a 0%, #7a5a3a 50%, #5a3a2a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
}
.scn-bully-host-arrives .door {
  position: absolute; bottom: 25%; left: 50%; width: 70px; height: 110px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #3a2212 0%, #5a3a2a 50%, #3a2212 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 15px rgba(0,0,0,.5), 2px 0 8px rgba(0,0,0,.3);
  animation: bha-door 6s ease-in-out infinite alternate;
}
.scn-bully-host-arrives .host {
  position: absolute; bottom: 25%; left: 30%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bha-walk-a 4s ease-in-out infinite;
}
.scn-bully-host-arrives .shallow {
  position: absolute; bottom: 25%; left: 38%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: bha-walk-b 4.5s ease-in-out infinite 0.3s;
}
.scn-bully-host-arrives .slender {
  position: absolute; bottom: 25%; left: 46%; width: 16px; height: 48px;
  background: linear-gradient(180deg, #3a4a6a 0%, #1a2a4a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: bha-walk-c 5s ease-in-out infinite 0.6s;
}
.scn-bully-host-arrives .page {
  position: absolute; bottom: 25%; left: 54%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bha-walk-d 3.8s ease-in-out infinite 0.8s;
}
.scn-bully-host-arrives .sign {
  position: absolute; top: 10%; right: 20%; width: 30px; height: 20px;
  background: #2a1a0a;
  border: 2px solid #c0a060;
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: bha-sway 6s ease-in-out infinite alternate;
}
.scn-bully-host-arrives .lantern {
  position: absolute; top: 18%; right: 22%; width: 8px; height: 14px;
  background: #3a2a1a;
  border-radius: 2px;
}
.scn-bully-host-arrives .lantern::after {
  content: ''; position: absolute; top: 2px; left: 2px; width: 4px; height: 6px;
  background: radial-gradient(circle, #ffe080 0%, #f0a030 60%);
  border-radius: 1px;
  animation: bha-glow 3s ease-in-out infinite alternate;
}
@keyframes bha-door { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.05) } 100% { transform: translateX(-50%) scaleX(1) } }
@keyframes bha-walk-a { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-4px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes bha-walk-b { 0% { transform: translateY(0) rotate(1deg) } 25% { transform: translateY(-5px) rotate(-1deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-5px) rotate(-2deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes bha-walk-c { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-6px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-6px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes bha-walk-d { 0% { transform: translateY(0) rotate(2deg) } 25% { transform: translateY(-3px) rotate(-1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-3px) rotate(0) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes bha-sway { 0% { transform: rotate(-5deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(-5deg) } }
@keyframes bha-glow { 0% { opacity:.6; box-shadow: 0 0 8px 2px rgba(255,208,96,.5) } 50% { opacity:1; box-shadow: 0 0 16px 6px rgba(255,208,96,.8) } 100% { opacity:.6; box-shadow: 0 0 8px 2px rgba(255,208,96,.5) } }

/* buck-buck-buck */
.scn-buck-buck-buck {
  background: 
    linear-gradient(180deg, #d8c8a0 0%, #c0a878 40%, #a08050 100%),
    radial-gradient(ellipse at 70% 20%, #f0e0c0 0%, transparent 60%);
}
.scn-buck-buck-buck .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #c8b890 0%, #a08050 100%);
  box-shadow: inset 0 -20px 40px rgba(60,40,20,0.3);
  animation: bbb-wallpulse 14s ease-in-out infinite alternate;
}
.scn-buck-buck-buck .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6b4c30 0%, #4a3020 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-buck-buck-buck .window-right {
  position: absolute; top: 15%; right: 12%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #ffe0a0 0%, #d0b070 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px #ffe8b0;
  animation: bbb-windowglow 6s ease-in-out infinite alternate;
}
.scn-buck-buck-buck .basket {
  position: absolute; bottom: 32%; left: 40%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: bbb-basket 4s ease-in-out infinite;
}
.scn-buck-buck-buck .keys {
  position: absolute; top: 30%; left: 55%; width: 20px; height: 30px;
  background: radial-gradient(ellipse, #c0a050 0%, #806020 100%);
  border-radius: 50% 50% 30% 30%;
  transform-origin: top center;
  animation: bbb-keyswing 3.5s ease-in-out infinite;
}
.scn-buck-buck-buck .figure-stand {
  position: absolute; bottom: 28%; left: 48%; width: 20px; height: 70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: bbb-figure 8s ease-in-out infinite;
}
.scn-buck-buck-buck .shadow-sharp {
  position: absolute; bottom: 24%; left: 46%; width: 50px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 80%);
  animation: bbb-shadow 8s ease-in-out infinite;
}
@keyframes bbb-wallpulse {
  0% { filter: brightness(1); }
  50% { filter: brightness(0.85); box-shadow: inset 0 -20px 40px rgba(60,40,20,0.5); }
  100% { filter: brightness(1.05); }
}
@keyframes bbb-windowglow {
  0%,100% { opacity: 0.7; box-shadow: inset 0 0 20px #ffe8b0; }
  50% { opacity: 1; box-shadow: inset 0 0 60px #fff0c0, 0 0 20px rgba(255,224,160,0.3); }
}
@keyframes bbb-basket {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-2px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(0deg) scaleY(1.02); }
  75% { transform: translateX(2px) rotate(1deg); }
}
@keyframes bbb-keyswing {
  0% { transform: rotate(-15deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(-15deg); }
}
@keyframes bbb-figure {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(2deg) translateY(-1px); }
  50% { transform: translateX(16px) rotate(0deg) translateY(0); }
  75% { transform: translateX(24px) rotate(-2deg) translateY(-1px); }
}
@keyframes bbb-shadow {
  0%,100% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.3); }
}

/* jealous-romp */
.scn-jealous-romp {
  background: 
    linear-gradient(180deg, #f0e0c0 0%, #d8c098 50%, #b89060 100%),
    radial-gradient(ellipse at 50% 80%, #ffe8c0 0%, transparent 60%);
}
.scn-jealous-romp .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8a878 100%);
  box-shadow: inset 0 0 40px rgba(100,80,40,0.15);
}
.scn-jealous-romp .carpet {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.2);
}
.scn-jealous-romp .settee-left {
  position: absolute; bottom: 28%; left: 10%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.4);
  animation: jr-settee 12s ease-in-out infinite alternate;
}
.scn-jealous-romp .settee-right {
  position: absolute; bottom: 28%; right: 10%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.4);
  animation: jr-settee 12s ease-in-out infinite alternate;
  animation-delay: -6s;
}
.scn-jealous-romp .figure-seated {
  position: absolute; bottom: 35%; left: 22%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: jr-breathe 6s ease-in-out infinite;
}
.scn-jealous-romp .figure-standing {
  position: absolute; bottom: 30%; left: 55%; width: 20px; height: 65px;
  background: linear-gradient(180deg, #7a5a3a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: jr-gesture 8s ease-in-out infinite;
}
.scn-jealous-romp .window-soft {
  position: absolute; top: 20%; left: 50%; transform: translateX(-50%);
  width: 90px; height: 110px;
  background: linear-gradient(180deg, #fff0c0 0%, #e0c880 100%);
  border-radius: 6px; box-shadow: inset 0 0 40px #fff0c0;
  animation: jr-window 10s ease-in-out infinite alternate;
}
.scn-jealous-romp .curtain-left {
  position: absolute; top: 18%; left: 45%; width: 30px; height: 120px;
  background: linear-gradient(90deg, #a08050 0%, #806030 100%);
  border-radius: 0 10% 10% 0;
  transform-origin: top center;
  animation: jr-curtain 20s ease-in-out infinite alternate;
}
.scn-jealous-romp .curtain-right {
  position: absolute; top: 18%; right: 45%; width: 30px; height: 120px;
  background: linear-gradient(90deg, #806030 0%, #a08050 100%);
  border-radius: 10% 0 0 10%;
  transform-origin: top center;
  animation: jr-curtain 20s ease-in-out infinite alternate-reverse;
}
@keyframes jr-settee {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes jr-breathe {
  0%,100% { transform: scaleY(1); }
  25% { transform: scaleY(1.02); }
  75% { transform: scaleY(0.98); }
}
@keyframes jr-gesture {
  0%,100% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(5px) rotate(5deg); }
  70% { transform: translateX(-3px) rotate(-3deg); }
}
@keyframes jr-window {
  0% { opacity: 0.8; box-shadow: inset 0 0 20px #fff0c0; }
  100% { opacity: 1; box-shadow: inset 0 0 60px #fff8d0; }
}
@keyframes jr-curtain {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(3deg) scaleX(1.05); }
  100% { transform: rotate(-2deg) scaleX(0.95); }
}

/* double-excellency */
.scn-double-excellency {
  background: 
    linear-gradient(180deg, #e8d8b0 0%, #c0a070 50%, #907050 100%),
    radial-gradient(ellipse at 30% 70%, #f0d8a0 0%, transparent 70%);
}
.scn-double-excellency .parlor-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d8c8a0 0%, #b89870 100%);
  box-shadow: inset 0 0 30px rgba(80,60,40,0.2);
}
.scn-double-excellency .basket-lg {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 90px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 25% 25%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: de-basket 3s ease-in-out infinite;
}
.scn-double-excellency .falstaff-body {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 50px;
  background: radial-gradient(ellipse, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
  animation: de-falstaff 4s ease-in-out infinite;
}
.scn-double-excellency .wife-fig {
  position: absolute; bottom: 26%; left: 30%; width: 18px; height: 60px;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%);
  border-radius: 45% 45% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: de-point 2.5s ease-in-out infinite;
}
.scn-double-excellency .husband-fig {
  position: absolute; bottom: 28%; right: 30%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #7a5a3a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: de-gasp 3.2s ease-in-out infinite;
}
.scn-double-excellency .door-arch {
  position: absolute; top: 10%; left: 10%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: de-door 10s ease-in-out infinite alternate;
}
.scn-double-excellency .splash-puddle {
  position: absolute; bottom: 18%; left: 35%; width: 100px; height: 20px;
  background: radial-gradient(ellipse, #809080 0%, transparent 90%);
  border-radius: 50%;
  opacity: 0.3;
  animation: de-splash 4s ease-in-out infinite;
}
@keyframes de-basket {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-2deg) translateY(-3px); }
  50% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  75% { transform: translateX(-50%) rotate(2deg) translateY(-3px); }
}
@keyframes de-falstaff {
  0%,100% { transform: translateX(-50%) scaleY(1); }
  30% { transform: translateX(-50%) scaleY(1.1) translateY(-4px); }
  70% { transform: translateX(-50%) scaleY(0.95) translateY(2px); }
}
@keyframes de-point {
  0%,100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(15deg); }
}
@keyframes de-gasp {
  0%,100% { transform: translateX(0) scaleX(1); }
  25% { transform: translateX(-5px) scaleX(1.05); }
  50% { transform: translateX(0) scaleX(0.95); }
  75% { transform: translateX(5px) scaleX(1.05); }
}
@keyframes de-door {
  0% { transform: scaleX(1); opacity: 0.9; }
  100% { transform: scaleX(1.05); opacity: 1; }
}
@keyframes de-splash {
  0%,100% { opacity: 0.2; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.3); }
}

/* another-plot */
.scn-another-plot {
  background: 
    linear-gradient(180deg, #d8c8a8 0%, #b89870 40%, #907050 100%),
    radial-gradient(ellipse at 60% 50%, #f0d8b0 0%, transparent 70%);
}
.scn-another-plot .room-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #c0a878 0%, #987050 100%);
  box-shadow: inset 0 0 50px rgba(50,30,10,0.3);
  animation: ap-shadow 16s ease-in-out infinite alternate;
}
.scn-another-plot .table-round {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 40px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 30% 30% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: ap-table 12s ease-in-out infinite alternate;
}
.scn-another-plot .candle {
  position: absolute; bottom: 34%; left: 50%; transform: translateX(-50%);
  width: 6px; height: 20px;
  background: linear-gradient(180deg, #e0c080 0%, #806020 100%);
  border-radius: 2px;
  animation: ap-candleflicker 2s ease-in-out infinite;
}
.scn-another-plot .candle::after {
  content: ''; position: absolute; top: -8px; left: -3px; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd060 0%, #ffa020 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px #ffc040;
  animation: ap-candleflicker 2s ease-in-out infinite alternate;
}
.scn-another-plot .letter {
  position: absolute; bottom: 34%; left: 42%; width: 25px; height: 20px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ap-letter 8s ease-in-out infinite;
}
.scn-another-plot .figure-left {
  position: absolute; bottom: 25%; left: 25%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #6a4a3a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ap-whisper 4s ease-in-out infinite;
}
.scn-another-plot .figure-right {
  position: absolute; bottom: 25%; right: 25%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ap-whisper 4.5s ease-in-out infinite;
}
.scn-another-plot .whisper-line {
  position: absolute; bottom: 40%; left: 48%; width: 30px; height: 4px;
  background: radial-gradient(ellipse, rgba(200,180,140,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: ap-whisperline 3s ease-in-out infinite;
}
@keyframes ap-shadow {
  0%,100% { box-shadow: inset 0 0 30px rgba(50,30,10,0.2); }
  50% { box-shadow: inset 0 0 70px rgba(50,30,10,0.4); }
}
@keyframes ap-table {
  0%,100% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(1.02); }
}
@keyframes ap-candleflicker {
  0%,100% { opacity: 0.9; box-shadow: 0 0 12px 4px #ffc040; }
  50% { opacity: 1; box-shadow: 0 0 20px 8px #ffc040; }
}
@keyframes ap-letter {
  0%,100% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(-5deg) translateX(2px); }
}
@keyframes ap-whisper {
  0%,100% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(4px) rotate(5deg); }
  60% { transform: translateX(-2px) rotate(-3deg); }
}
@keyframes ap-whisperline {
  0%,100% { opacity: 0.1; transform: scaleX(1); }
  50% { opacity: 0.4; transform: scaleX(1.5); }
}

/* fairy-dance (fd-) */
.scn-fairy-dance {
  background: linear-gradient(180deg, #0f172a 0%, #1e293b 40%, #334155 100%),
              radial-gradient(ellipse at 50% 20%, #475569 0%, transparent 60%);
}
.scn-fairy-dance .sky { position:absolute; inset:0; background: linear-gradient(180deg, rgba(30,41,59,.8) 0%, transparent 100%); animation: fd-sky 12s ease-in-out infinite alternate; }
.scn-fairy-dance .moon { position:absolute; top:8%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #cbd5e1 0%, #94a3b8 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(203,213,225,.5); animation: fd-moon 8s ease-in-out infinite; }
.scn-fairy-dance .tree-trunk { position:absolute; bottom:0; left:45%; width:30px; height:60%; background: linear-gradient(90deg, #3f2e1e 0%, #5c4033 50%, #3f2e1e 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; animation: fd-trunk 6s ease-in-out infinite alternate; }
.scn-fairy-dance .tree-canopy { position:absolute; bottom:40%; left:35%; width:30%; height:35%; background: radial-gradient(ellipse at 50% 40%, #2d6a4f 0%, #1b4332 70%, #0f2a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -20px 30px rgba(0,0,0,.4); animation: fd-canopy 15s ease-in-out infinite; }
.scn-fairy-dance .fairy-a { position:absolute; bottom:55%; left:42%; width:12px; height:24px; background: radial-gradient(circle, #fde68a 0%, #f59e0b 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; box-shadow: 0 0 10px 2px #fde68a; animation: fd-fairy-a 5s ease-in-out infinite; }
.scn-fairy-dance .fairy-b { position:absolute; bottom:60%; left:52%; width:10px; height:20px; background: radial-gradient(circle, #fde68a 0%, #f59e0b 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; box-shadow: 0 0 10px 2px #fde68a; animation: fd-fairy-b 6s ease-in-out infinite; }
.scn-fairy-dance .glow-a { position:absolute; top:30%; left:30%; width:6px; height:6px; background: #fbbf24; border-radius:50%; box-shadow: 0 0 20px 8px rgba(251,191,36,.7); animation: fd-glow 3s ease-in-out infinite alternate; }
.scn-fairy-dance .glow-b { position:absolute; top:40%; left:60%; width:5px; height:5px; background: #fbbf24; border-radius:50%; box-shadow: 0 0 16px 6px rgba(251,191,36,.7); animation: fd-glow 4s ease-in-out infinite alternate; }
.scn-fairy-dance .glow-c { position:absolute; top:25%; left:50%; width:4px; height:4px; background: #fbbf24; border-radius:50%; box-shadow: 0 0 12px 4px rgba(251,191,36,.7); animation: fd-glow 2s ease-in-out infinite alternate; }
@keyframes fd-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes fd-moon { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes fd-trunk { 0% { transform: skewX(0deg) } 100% { transform: skewX(2deg) } }
@keyframes fd-canopy { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fd-fairy-a { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(10px,-10px) rotate(10deg) } 50% { transform: translate(-5px,-15px) rotate(-5deg) } 75% { transform: translate(15px,-8px) rotate(5deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes fd-fairy-b { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(-8px,-12px) rotate(-8deg) } 50% { transform: translate(12px,-6px) rotate(6deg) } 75% { transform: translate(-10px,-10px) rotate(-3deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes fd-glow { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.7; transform: scale(.9) } }

/* item-falstaffs-cheese (ifc-) */
.scn-item-falstaffs-cheese {
  background: linear-gradient(180deg, #1c1917 0%, #292524 40%, #44403c 100%),
              radial-gradient(ellipse at 50% 80%, #78350f 0%, transparent 70%);
}
.scn-item-falstaffs-cheese .fire { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, #dc2626 0%, #9a3412 40%, transparent 70%); animation: ifc-fire 5s ease-in-out infinite alternate; }
.scn-item-falstaffs-cheese .cheese-wedge { position:absolute; bottom:20%; left:35%; width:30%; height:40%; background: linear-gradient(135deg, #fcd34d 0%, #f59e0b 50%, #b45309 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; clip-path: polygon(0% 100%, 100% 100%, 100% 20%, 0% 0%); animation: ifc-cheese 4s ease-in-out infinite; }
.scn-item-falstaffs-cheese .flame { position:absolute; bottom:55%; left:50%; width:8px; height:20px; background: linear-gradient(180deg, #fde68a 0%, #f59e0b 50%, #dc2626 100%); border-radius: 50% 50% 20% 20%; transform: translateX(-50%); animation: ifc-flame .8s ease-in-out infinite alternate; box-shadow: 0 0 20px 6px #f59e0b; }
.scn-item-falstaffs-cheese .hand { position:absolute; bottom:30%; right:25%; width:20px; height:30px; background: linear-gradient(180deg, #a8a29e 0%, #78716c 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform: rotate(20deg); animation: ifc-hand 3s ease-in-out infinite; }
.scn-item-falstaffs-cheese .hole-a { position:absolute; bottom:35%; left:42%; width:12px; height:12px; background: #78350f; border-radius:50%; box-shadow: inset 0 2px 4px rgba(0,0,0,.5); animation: ifc-hole 5s ease-in-out infinite alternate; }
.scn-item-falstaffs-cheese .hole-b { position:absolute; bottom:25%; left:55%; width:8px; height:8px; background: #78350f; border-radius:50%; box-shadow: inset 0 2px 4px rgba(0,0,0,.5); animation: ifc-hole 4s ease-in-out infinite alternate-reverse; }
@keyframes ifc-fire { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ifc-cheese { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(2deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ifc-flame { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.2) } 100% { transform: translateX(-50%) scaleY(.8) } }
@keyframes ifc-hand { 0% { transform: rotate(20deg) translate(0,0) } 50% { transform: rotate(15deg) translate(0,-5px) } 100% { transform: rotate(20deg) translate(0,0) } }
@keyframes ifc-hole { 0% { transform: scale(1) } 50% { transform: scale(1.2) } 100% { transform: scale(.9) } }

/* unmasking (um-) */
.scn-unmasking {
  background: linear-gradient(180deg, #0f172a 0%, #1e293b 40%, #334155 100%),
              radial-gradient(ellipse at 50% 15%, #64748b 0%, transparent 50%);
}
.scn-unmasking .sky { position:absolute; inset:0; background: linear-gradient(180deg, rgba(30,41,59,.8) 0%, transparent 100%); animation: um-sky 15s ease-in-out infinite alternate; }
.scn-unmasking .moon { position:absolute; top:8%; left:30%; width:35px; height:35px; background: radial-gradient(circle, #cbd5e1 0%, #94a3b8 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(203,213,225,.4); animation: um-moon 10s ease-in-out infinite; }
.scn-unmasking .figure-left { position:absolute; bottom:10%; left:20%; width:30px; height:60px; background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: um-figure-left 6s ease-in-out infinite; }
.scn-unmasking .figure-right { position:absolute; bottom:10%; right:20%; width:30px; height:60px; background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: um-figure-right 6s ease-in-out infinite; }
.scn-unmasking .mask { position:absolute; top:25%; left:38%; width:18px; height:12px; background: linear-gradient(135deg, #fde68a 0%, #f59e0b 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; transform: translate(-50%, -50%); animation: um-mask 7s ease-in-out infinite alternate; }
.scn-unmasking .cloak { position:absolute; bottom:15%; right:30%; width:20px; height:40px; background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; animation: um-cloak 8s ease-in-out infinite; }
.scn-unmasking .star { position:absolute; top:18%; left:60%; width:3px; height:3px; background: #e2e8f0; border-radius:50%; box-shadow: 0 0 4px 2px #e2e8f0; animation: um-star 3s ease-in-out infinite alternate; }
@keyframes um-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes um-moon { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes um-figure-left { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-5deg) } }
@keyframes um-figure-right { 0% { transform: rotate(5deg) } 50% { transform: rotate(8deg) translateY(-2px) } 100% { transform: rotate(5deg) } }
@keyframes um-mask { 0% { transform: translate(-50%,-50%) scale(1) rotate(0deg) } 50% { transform: translate(-50%,-50%) scale(1.1) rotate(10deg) } 100% { transform: translate(-50%,-50%) scale(1) rotate(0deg) } }
@keyframes um-cloak { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes um-star { 0% { opacity:.5; transform: scale(1) } 100% { opacity:1; transform: scale(1.3) } }

/* falstaffs-repentance (fr-) */
.scn-falstaffs-repentance {
  background: linear-gradient(180deg, #0f172a 0%, #1e293b 40%, #334155 100%),
              radial-gradient(ellipse at 50% 20%, #475569 0%, transparent 60%);
}
.scn-falstaffs-repentance .sky { position:absolute; inset:0; background: linear-gradient(180deg, rgba(30,41,59,.8) 0%, transparent 100%); animation: fr-sky 18s ease-in-out infinite alternate; }
.scn-falstaffs-repentance .moon { position:absolute; top:8%; right:25%; width:40px; height:40px; background: radial-gradient(circle, #cbd5e1 0%, #94a3b8 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(203,213,225,.4); animation: fr-moon 10s ease-in-out infinite; }
.scn-falstaffs-repentance .figure { position:absolute; bottom:15%; left:50%; width:40px; height:70px; background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: fr-figure 5s ease-in-out infinite; }
.scn-falstaffs-repentance .ear-a { position:absolute; bottom:65%; left:46%; width:8px; height:20px; background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%); border-radius: 20% 20% 50% 50% / 60% 60% 40% 40%; transform: rotate(-20deg); animation: fr-ear 4s ease-in-out infinite alternate; }
.scn-falstaffs-repentance .ear-b { position:absolute; bottom:65%; right:46%; width:8px; height:20px; background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%); border-radius: 20% 20% 50% 50% / 60% 60% 40% 40%; transform: rotate(20deg); animation: fr-ear 4s ease-in-out infinite alternate-reverse; }
.scn-falstaffs-repentance .horn-a { position:absolute; bottom:80%; left:48%; width:6px; height:14px; background: linear-gradient(180deg, #78716c 0%, #44403c 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-30deg); animation: fr-horn 6s ease-in-out infinite; }
.scn-falstaffs-repentance .horn-b { position:absolute; bottom:80%; right:48%; width:6px; height:14px; background: linear-gradient(180deg, #78716c 0%, #44403c 100%); border-radius: 30% 30% 10% 10%; transform: rotate(30deg); animation: fr-horn 6s ease-in-out infinite; }
.scn-falstaffs-repentance .star-a { position:absolute; top:12%; left:15%; width:3px; height:3px; background: #e2e8f0; border-radius:50%; box-shadow: 0 0 4px 2px #e2e8f0; animation: fr-star 3s ease-in-out infinite alternate; }
.scn-falstaffs-repentance .star-b { position:absolute; top:20%; right:10%; width:2px; height:2px; background: #e2e8f0; border-radius:50%; box-shadow: 0 0 3px 1px #e2e8f0; animation: fr-star 4s ease-in-out infinite alternate-reverse; }
@keyframes fr-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fr-moon { 0% { transform: scale(1) } 50% { transform: scale(1.04) } 100% { transform: scale(1) } }
@keyframes fr-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-50%) translateY(-1px) rotate(3deg) } 50% { transform: translateX(-50%) translateY(0) rotate(0deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(-3deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes fr-ear { 0% { transform: rotate(-20deg) scaleY(1) } 50% { transform: rotate(-25deg) scaleY(1.1) } 100% { transform: rotate(-20deg) scaleY(1) } }
@keyframes fr-horn { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-35deg) } 100% { transform: rotate(-30deg) } }
@keyframes fr-star { 0% { opacity:.6; transform: scale(1) } 100% { opacity:1; transform: scale(1.4) } }

/* shallow-accuses-falstaff – tense sunlit confrontation */
.scn-shallow-accuses-falstaff {
  background: linear-gradient(180deg, #6fa8dc 0%, #f9d423 60%, #f7b731 80%),
              radial-gradient(circle at 20% 30%, #fff4cc 0%, transparent 50%);
}
.scn-shallow-accuses-falstaff .sky { position:absolute; inset:0 0 60% 0; background:linear-gradient(180deg, rgba(255,235,200,0.3) 0%, transparent 100%); animation: sas-sky 6s ease-in-out infinite alternate; }
.scn-shallow-accuses-falstaff .sun { position:absolute; top:12%; left:25%; width:40px; height:40px; background:radial-gradient(circle, #fff7cc 0%, #f9d423 50%, transparent 70%); border-radius:50%; box-shadow:0 0 60px 20px rgba(249,212,35,0.5); animation: sas-sun 8s ease-in-out infinite alternate; }
.scn-shallow-accuses-falstaff .house { position:absolute; bottom:30%; left:30%; width:140px; height:120px; background:linear-gradient(135deg, #b5651d 0%, #8b4513 100%); border-radius:8% 8% 4% 4%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5), 0 8px 12px rgba(0,0,0,0.3); animation: sas-house 10s ease-in-out infinite; }
.scn-shallow-accuses-falstaff .door { position:absolute; bottom:30%; left:38%; width:22px; height:44px; background:linear-gradient(180deg, #4a2e1b 0%, #2e1a0d 100%); border-radius:10% 10% 0 0; animation: sas-door 5s ease-in-out infinite alternate; }
.scn-shallow-accuses-falstaff .window { position:absolute; bottom:42%; left:34%; width:18px; height:18px; background:radial-gradient(circle, #fffae6 0%, #ffd54f 70%); border-radius:4px; box-shadow:0 0 16px 4px #ffd54f; animation: sas-window 2s ease-in-out infinite; }
.scn-shallow-accuses-falstaff .fig-left { position:absolute; bottom:30%; left:20%; width:20px; height:50px; background:linear-gradient(180deg, #2c2c3a 0%, #1a1a24 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: sas-figleft 1.5s ease-in-out infinite; }
.scn-shallow-accuses-falstaff .fig-right { position:absolute; bottom:30%; right:25%; width:28px; height:56px; background:linear-gradient(180deg, #3d2e1e 0%, #1f150c 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: sas-figright 2s ease-in-out infinite alternate; }
.scn-shallow-accuses-falstaff .ground { position:absolute; bottom:0; left:0; right:0; height:32%; background:linear-gradient(180deg, #7a5230 0%, #5a3a1c 100%); border-top:2px solid #8b5e3c; animation: sas-ground 9s ease-in-out infinite alternate; }
@keyframes sas-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sas-sun { 0% { transform: translate(0,0); box-shadow:0 0 40px 10px rgba(249,212,35,0.4); } 50% { transform: translate(3px,-2px); box-shadow:0 0 80px 20px rgba(249,212,35,0.6); } 100% { transform: translate(-2px,1px); box-shadow:0 0 50px 12px rgba(249,212,35,0.5); } }
@keyframes sas-house { 0%,100% { transform: translateX(0); } 25% { transform: translateY(-1px); } 50% { transform: translateY(1px); } 75% { transform: translateY(-1px); } }
@keyframes sas-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.2); } 100% { transform: scaleX(1); } }
@keyframes sas-window { 0% { opacity:0.6; box-shadow:0 0 8px 2px #ffd54f; } 50% { opacity:1; box-shadow:0 0 24px 6px #ffd54f; } 100% { opacity:0.8; box-shadow:0 0 12px 4px #ffd54f; } }
@keyframes sas-figleft { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(-4deg); } 60% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sas-figright { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(3deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes sas-ground { 0% { background-position: 0 0; } 50% { background-position: 10px 0; } 100% { background-position: -5px 0; } }

/* coat-of-arms-banter – funny sunlit banter with coat of arms */
.scn-coat-of-arms-banter {
  background: linear-gradient(180deg, #ffe066 0%, #fff0b3 40%, #c2f0c2 100%),
              radial-gradient(ellipse at 60% 80%, #c2f0c2 0%, transparent 60%);
}
.scn-coat-of-arms-banter .sky { position:absolute; inset:0 0 60% 0; background:linear-gradient(180deg, #b3d9ff 0%, #ffe066 100%); animation: cab-sky 10s ease-in-out infinite alternate; }
.scn-coat-of-arms-banter .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg, #9acc9a 0%, #66b366 100%); border-radius:40% 40% 0 0; animation: cab-ground 7s ease-in-out infinite; }
.scn-coat-of-arms-banter .shield { position:absolute; bottom:35%; left:50%; transform:translateX(-50%); width:80px; height:90px; background:linear-gradient(135deg, #cd853f 0%, #8b5e3c 100%); border-radius:30% 30% 20% 20% / 40% 40% 20% 20%; border:3px solid #b8860b; box-shadow:0 8px 16px rgba(0,0,0,0.3); animation: cab-shield 4s ease-in-out infinite; }
.scn-coat-of-arms-banter .fish-1 { position:absolute; bottom:40%; left:42%; width:18px; height:10px; background:radial-gradient(circle at 30% 50%, #f0f0f0 0%, #bfbfbf 100%); border-radius:50% 50% 0 0; transform:rotate(-10deg); animation: cab-fish1 3s ease-in-out infinite alternate; }
.scn-coat-of-arms-banter .fish-2 { position:absolute; bottom:45%; left:48%; width:20px; height:11px; background:radial-gradient(circle at 30% 50%, #f5f5f5 0%, #cccccc 100%); border-radius:50% 50% 0 0; transform:rotate(5deg); animation: cab-fish2 3.5s ease-in-out infinite alternate-reverse; }
.scn-coat-of-arms-banter .fish-3 { position:absolute; bottom:38%; left:54%; width:16px; height:9px; background:radial-gradient(circle at 30% 50%, #fafafa 0%, #d9d9d9 100%); border-radius:50% 50% 0 0; transform:rotate(15deg); animation: cab-fish3 4s ease-in-out infinite alternate; }
.scn-coat-of-arms-banter .jester-hat { position:absolute; top:15%; left:45%; width:24px; height:28px; background: linear-gradient(180deg, #ff6347 0%, #ff4500 50%, #ffa500 100%); border-radius:50% 50% 0 0; clip-path: polygon(0% 100%, 50% 0%, 100% 100%); transform-origin:bottom center; animation: cab-hat 2.4s ease-in-out infinite; }
@keyframes cab-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes cab-ground { 0%,100% { transform: translateY(0); } 25% { transform: translateY(-2px); } 75% { transform: translateY(2px); } }
@keyframes cab-shield { 0%,100% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(3deg); } 60% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes cab-fish1 { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(6px); } 100% { transform: rotate(-15deg) translateX(-4px); } }
@keyframes cab-fish2 { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(10deg) translateX(-5px); } 100% { transform: rotate(0deg) translateX(4px); } }
@keyframes cab-fish3 { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(20deg) translateX(4px); } 100% { transform: rotate(10deg) translateX(-3px); } }
@keyframes cab-hat { 0%,100% { transform: scaleY(1) rotate(0deg); } 25% { transform: scaleY(0.8) rotate(-5deg); } 50% { transform: scaleY(1.1) rotate(5deg); } 75% { transform: scaleY(0.9) rotate(-3deg); } }

/* evans-offers-mediation – funny mediation scene */
.scn-evans-offers-mediation {
  background: linear-gradient(180deg, #d4f0ff 0%, #ffe0b2 60%, #ffe0b2 100%),
              radial-gradient(circle at 30% 70%, #ffe0b2 0%, transparent 50%);
}
.scn-evans-offers-mediation .sky { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #a3d4f7 0%, #ffcca3 100%); animation: eom-sky 12s ease-in-out infinite alternate; }
.scn-evans-offers-mediation .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background:linear-gradient(180deg, #b8d4a0 0%, #7ca85c 100%); border-radius:30% 30% 0 0; animation: eom-ground 6s ease-in-out infinite; }
.scn-evans-offers-mediation .fig-left { position:absolute; bottom:25%; left:18%; width:22px; height:52px; background:linear-gradient(180deg, #3a3a4a 0%, #1a1a28 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: eom-figleft 2s ease-in-out infinite; }
.scn-evans-offers-mediation .fig-center { position:absolute; bottom:25%; left:45%; width:24px; height:54px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: eom-figcenter 2.5s ease-in-out infinite alternate; }
.scn-evans-offers-mediation .fig-right { position:absolute; bottom:25%; right:20%; width:20px; height:50px; background:linear-gradient(180deg, #3a2a3a 0%, #1a101a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: eom-figright 1.8s ease-in-out infinite; }
.scn-evans-offers-mediation .scroll { position:absolute; bottom:45%; left:38%; width:30px; height:12px; background:linear-gradient(180deg, #f5e6d3 0%, #d4b896 100%); border-radius:4px; transform:rotate(-5deg); box-shadow:0 2px 4px rgba(0,0,0,0.2); animation: eom-scroll 3s ease-in-out infinite alternate; }
@keyframes eom-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes eom-ground { 0%,100% { transform: translateY(0); } 30% { transform: translateY(-3px); } 70% { transform: translateY(2px); } }
@keyframes eom-figleft { 0% { transform: translateX(0) rotate(-2deg); } 40% { transform: translateX(5px) rotate(2deg); } 80% { transform: translateX(-3px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes eom-figcenter { 0% { transform: translateX(0) rotate(0deg) scale(1); } 50% { transform: translateX(2px) rotate(3deg) scale(1.05); } 100% { transform: translateX(-2px) rotate(-2deg) scale(0.98); } }
@keyframes eom-figright { 0% { transform: translateX(0) rotate(1deg); } 30% { transform: translateX(-4px) rotate(-3deg); } 70% { transform: translateX(6px) rotate(4deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes eom-scroll { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(0deg) translateX(8px); } 100% { transform: rotate(5deg) translateX(-4px); } }

/* riot-threatened – funny riot threat */
.scn-riot-threatened {
  background: linear-gradient(180deg, #f9d423 0%, #ffb347 40%, #e67300 100%),
              radial-gradient(circle at 80% 20%, #ffdf80 0%, transparent 60%);
}
.scn-riot-threatened .sky { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #ffdb99 0%, #ffd699 100%); animation: rot-sky 10s ease-in-out infinite alternate; }
.scn-riot-threatened .ground { position:absolute; bottom:0; left:0; right:0; height:60%; background:linear-gradient(180deg, #a67c52 0%, #6b4c2a 100%); border-radius:20% 20% 0 0; animation: rot-ground 8s ease-in-out infinite; }
.scn-riot-threatened .mob-1 { position:absolute; bottom:20%; left:15%; width:18px; height:46px; background:linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rot-mob1 2s ease-in-out infinite alternate; }
.scn-riot-threatened .mob-2 { position:absolute; bottom:20%; left:25%; width:20px; height:48px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rot-mob2 2.3s ease-in-out infinite alternate-reverse; }
.scn-riot-threatened .mob-3 { position:absolute; bottom:20%; left:35%; width:19px; height:44px; background:linear-gradient(180deg, #2a3a3a 0%, #101a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rot-mob3 1.9s ease-in-out infinite; }
.scn-riot-threatened .leader { position:absolute; bottom:20%; left:55%; width:26px; height:60px; background:linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: rot-leader 1.5s ease-in-out infinite; }
.scn-riot-threatened .sword { position:absolute; bottom:40%; left:58%; width:4px; height:30px; background:linear-gradient(180deg, #c0c0c0 0%, #808080 100%); border-radius:2px; transform:rotate(20deg); transform-origin:bottom center; animation: rot-sword 1.6s ease-in-out infinite alternate; }
.scn-riot-threatened .shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.3) 100%); animation: rot-shadow 6s ease-in-out infinite; }
@keyframes rot-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes rot-ground { 0%,100% { transform: translateY(0); } 30% { transform: translateY(-4px); } 70% { transform: translateY(3px); } }
@keyframes rot-mob1 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(3deg); } 100% { transform: translateX(-4px) rotate(-2deg); } }
@keyframes rot-mob2 { 0% { transform: translateX(0) rotate(0deg) scale(1); } 50% { transform: translateX(-6px) rotate(-4deg) scale(1.02); } 100% { transform: translateX(4px) rotate(2deg) scale(0.98); } }
@keyframes rot-mob3 { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(5px) rotate(2deg); } 80% { transform: translateX(-3px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rot-leader { 0% { transform: translateX(0) rotate(-3deg); } 40% { transform: translateX(4px) rotate(5deg); } 80% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rot-sword { 0% { transform: rotate(20deg) scaleY(1); } 50% { transform: rotate(30deg) scaleY(1.1); } 100% { transform: rotate(15deg) scaleY(0.95); } }
@keyframes rot-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

.scn-wart-tale {
  background: linear-gradient(180deg, #2a1a0e 0%, #3a2214 40%, #1a0e06 100%), radial-gradient(ellipse at 50% 100%, #4a2a1a 0%, transparent 60%);
}
.scn-wart-tale .bg-wall {
  position: absolute; inset: 30% 0 0 0;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 20% 20% 0 0;
}
.scn-wart-tale .table {
  position: absolute; bottom: 20%; left: 50%; width: 60%; height: 8%; transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2214 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: wt-table 6s ease-in-out infinite;
}
.scn-wart-tale .candle-glow {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 20px; transform: translateX(-50%);
  background: radial-gradient(circle, #ffd060 0%, #c08040 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,0.4);
  animation: wt-candle 2s ease-in-out infinite alternate;
}
.scn-wart-tale .fig-maid {
  position: absolute; bottom: 20%; left: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a2214 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wt-figleft 4s ease-in-out infinite;
}
.scn-wart-tale .fig-speaker {
  position: absolute; bottom: 20%; right: 25%; width: 35px; height: 75px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wt-figright 3.5s ease-in-out infinite;
}
.scn-wart-tale .chair {
  position: absolute; bottom: 20%; left: 15%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 20% 20%; box-shadow: 0 6px 10px rgba(0,0,0,0.5);
}
@keyframes wt-table {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg) scale(1.01); }
}
@keyframes wt-candle {
  0% { box-shadow: 0 0 20px 6px #c08040, 0 0 40px 10px rgba(192,128,64,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 35px 12px #ffd060, 0 0 70px 20px rgba(255,208,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px #c08040, 0 0 50px 12px rgba(192,128,64,0.35); opacity: 0.85; }
}
@keyframes wt-figleft {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(2px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(0) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-2px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes wt-figright {
  0% { transform: translateX(0) translateY(0) rotate(0deg) scaleX(1); }
  30% { transform: translateX(-3px) translateY(-1px) rotate(-3deg) scaleX(0.95); }
  60% { transform: translateX(1px) translateY(0) rotate(2deg) scaleX(1.05); }
  100% { transform: translateX(0) translateY(0) rotate(0deg) scaleX(1); }
}

.scn-fenton-exits {
  background: linear-gradient(180deg, #2a1a0e 0%, #4a2a1a 50%, #1a0e06 100%), radial-gradient(ellipse at 50% 0%, #5a3a2a 0%, transparent 70%);
}
.scn-fenton-exits .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #3a2214 0%, #4a2a1a 50%, #3a2214 100%);
}
.scn-fenton-exits .door-frame {
  position: absolute; bottom: 0; left: 50%; width: 80px; height: 80%; transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0e 100%);
  border-radius: 8% 8% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-fenton-exits .door {
  position: absolute; bottom: 0; left: 50%; width: 70px; height: 70%; transform: translateX(-50%) rotateY(0deg);
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2214 100%);
  border-radius: 4% 4% 0 0;
  transform-origin: left center;
  animation: fe-door 5s ease-in-out infinite;
}
.scn-fenton-exits .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #3a2214 0%, #1a0e06 100%);
  box-shadow: 0 -4px 10px rgba(0,0,0,0.6);
}
.scn-fenton-exits .fig-fenton {
  position: absolute; bottom: 15%; left: 50%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fe-fenton 6s ease-in-out infinite;
}
.scn-fenton-exits .lantern-light {
  position: absolute; bottom: 25%; left: 45%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd060, #c08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 25px 8px #c08040;
  animation: fe-light 3s ease-in-out infinite alternate;
}
@keyframes fe-door {
  0% { transform: translateX(-50%) rotateY(0deg); }
  25% { transform: translateX(-50%) rotateY(-15deg); }
  50% { transform: translateX(-50%) rotateY(0deg); }
  75% { transform: translateX(-50%) rotateY(-10deg); }
  100% { transform: translateX(-50%) rotateY(0deg); }
}
@keyframes fe-fenton {
  0% { transform: translateX(-50%) translateY(0) scaleX(1); }
  20% { transform: translateX(-40%) translateY(-2px) scaleX(0.9); }
  40% { transform: translateX(-30%) translateY(0) scaleX(1); }
  60% { transform: translateX(-20%) translateY(-1px) scaleX(0.95); }
  80% { transform: translateX(-10%) translateY(0) scaleX(1); }
  100% { transform: translateX(0%) translateY(0) scaleX(1); }
}
@keyframes fe-light {
  0% { box-shadow: 0 0 15px 4px #c08040; opacity: 0.8; }
  50% { box-shadow: 0 0 30px 10px #ffd060; opacity: 1; }
  100% { box-shadow: 0 0 20px 6px #c08040; opacity: 0.9; }
}

.scn-page-letter-read {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 50%, #f0f8ff 100%), radial-gradient(ellipse at 50% 0%, #fff0c0 0%, transparent 60%);
}
.scn-page-letter-read .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, #e0f0ff 100%);
  animation: pl-sky 15s ease-in-out infinite alternate;
}
.scn-page-letter-read .sun {
  position: absolute; top: 10%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff0c0 0%, #ffe680 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #ffe680;
  animation: pl-sun 8s ease-in-out infinite;
}
.scn-page-letter-read .cloud {
  position: absolute; top: 15%; left: 10%; width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.2) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: pl-cloud 40s linear infinite;
}
.scn-page-letter-read .house {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 90px; transform: translateX(-50%);
  background: linear-gradient(180deg, #d4a86a 0%, #b08050 100%);
  border-radius: 6% 6% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: pl-house 4s ease-in-out infinite;
}
.scn-page-letter-read .garden-wall {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
}
.scn-page-letter-read .path {
  position: absolute; bottom: 12%; left: 30%; right: 30%; height: 16px;
  background: linear-gradient(90deg, #c8a870 0%, #b09060 50%, #c8a870 100%);
  border-radius: 50%; filter: blur(2px);
}
.scn-page-letter-read .fig-mistress {
  position: absolute; bottom: 20%; left: 50%; width: 36px; height: 80px; transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pl-fig 3s ease-in-out infinite;
}
.scn-page-letter-read .letter {
  position: absolute; bottom: 30%; left: 55%; width: 28px; height: 20px;
  background: #f0e6d0; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  transform-origin: center;
  animation: pl-letter 2.5s ease-in-out infinite;
}
@keyframes pl-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes pl-sun {
  0% { box-shadow: 0 0 30px 10px #ffe680; transform: scale(1); }
  50% { box-shadow: 0 0 60px 20px #fff0c0; transform: scale(1.05); }
  100% { box-shadow: 0 0 40px 15px #ffe680; transform: scale(1); }
}
@keyframes pl-cloud {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(calc(100vw + 40px)); }
}
@keyframes pl-house {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02) translateY(-2px); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes pl-fig {
  0% { transform: translateX(-50%) rotate(-1deg); }
  25% { transform: translateX(-48%) rotate(1deg) scaleY(1.02); }
  50% { transform: translateX(-50%) rotate(-1deg); }
  75% { transform: translateX(-52%) rotate(1deg) scaleY(0.98); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes pl-letter {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-4px) rotate(8deg); }
  60% { transform: translateY(0) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-item-falstaffs-letter-page-read {
  background: linear-gradient(180deg, #f0e6d0 0%, #d4c4a0 50%, #b8a880 100%), radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 50%);
}
.scn-item-falstaffs-letter-page-read .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #d4c4a0 0%, #c8b890 50%, #d4c4a0 100%);
}
.scn-item-falstaffs-letter-page-read .window {
  position: absolute; top: 10%; right: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #b0d0e8 0%, #d0e0f0 100%);
  border: 6px solid #8a6a4a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
  animation: if-window 6s ease-in-out infinite alternate;
}
.scn-item-falstaffs-letter-page-read .desk {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 12px; transform: translateX(-50%);
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-item-falstaffs-letter-page-read .chair {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
}
.scn-item-falstaffs-letter-page-read .fig-mistress {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 90px; transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: if-fig 3s ease-in-out infinite;
}
.scn-item-falstaffs-letter-page-read .letter {
  position: absolute; bottom: 26%; left: 52%; width: 40px; height: 26px;
  background: #f0e6d0; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform-origin: center;
  animation: if-letter 2s ease-in-out infinite;
}
.scn-item-falstaffs-letter-page-read .sunbeam {
  position: absolute; top: 10%; left: 55%; width: 40%; height: 60%;
  background: linear-gradient(135deg, rgba(255,255,230,0.15) 0%, rgba(255,255,230,0) 100%);
  transform: rotate(-15deg);
  animation: if-sunbeam 8s ease-in-out infinite alternate;
}
@keyframes if-window {
  0% { box-shadow: inset 0 0 20px rgba(255,255,200,0.3); background: #b0d0e8; }
  50% { box-shadow: inset 0 0 40px rgba(255,255,200,0.5); background: #d0e8f0; }
  100% { box-shadow: inset 0 0 20px rgba(255,255,200,0.3); background: #b0d0e8; }
}
@keyframes if-fig {
  0% { transform: translateX(-50%) rotate(0deg) scaleX(1); }
  20% { transform: translateX(-50%) rotate(-2deg) scaleX(0.98); }
  40% { transform: translateX(-50%) rotate(1deg) scaleX(1.02); }
  60% { transform: translateX(-50%) rotate(-1deg) scaleX(0.99); }
  80% { transform: translateX(-50%) rotate(2deg) scaleX(1.01); }
  100% { transform: translateX(-50%) rotate(0deg) scaleX(1); }
}
@keyframes if-letter {
  0% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-3px) rotate(5deg); }
  40% { transform: translateY(0) rotate(-3deg); }
  60% { transform: translateY(-2px) rotate(4deg); }
  80% { transform: translateY(0) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes if-sunbeam {
  0% { opacity: 0.6; transform: rotate(-15deg) scaleX(1); }
  50% { opacity: 1; transform: rotate(-10deg) scaleX(1.1); }
  100% { opacity: 0.7; transform: rotate(-20deg) scaleX(1); }
}

/* Ribbing Falstaff */
.scn-ribbing-falstaff {
  background: linear-gradient(180deg, #0d1b3e 0%, #1a2d5e 40%, #2c3f6e 70%, #1a2d5e 100%), radial-gradient(ellipse at 50% 20%, #4a6a9a 0%, transparent 60%);
}
.scn-ribbing-falstaff .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a2d5e 0%, transparent 100%);
  animation: rf-sky 12s ease-in-out infinite alternate;
}
.scn-ribbing-falstaff .moon {
  position: absolute; top: 8%; left: 55%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d4e0f0 0%, #a0b8d0 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(160,184,208,0.4);
  animation: rf-moon 8s ease-in-out infinite alternate;
}
.scn-ribbing-falstaff .trees-left {
  position: absolute; bottom: 20%; left: 5%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0;
  transform: rotate(-5deg);
  box-shadow: -5px 10px 15px rgba(0,0,0,0.6);
  animation: rf-trees 14s ease-in-out infinite alternate;
}
.scn-ribbing-falstaff .trees-right {
  position: absolute; bottom: 20%; right: 8%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 40% 0 0 / 70% 60% 0 0;
  transform: rotate(3deg);
  box-shadow: 5px 10px 15px rgba(0,0,0,0.6);
  animation: rf-trees 14s ease-in-out infinite alternate-reverse;
}
.scn-ribbing-falstaff .falstaff {
  position: absolute; bottom: 10%; left: 50%; width: 70px; height: 90px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, #2a3a4a 0%, #1a2232 70%, #0a0a1a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  box-shadow: 0 5px 20px rgba(0,0,0,0.7);
  animation: rf-falstaff 5s ease-in-out infinite;
}
.scn-ribbing-falstaff .fairy-1 {
  position: absolute; top: 25%; left: 30%; width: 12px; height: 12px;
  background: radial-gradient(circle, #f0e4c8 0%, #d4c098 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(212,192,152,0.6);
  animation: rf-fairy 6s ease-in-out infinite;
}
.scn-ribbing-falstaff .fairy-2 {
  position: absolute; top: 40%; left: 65%; width: 10px; height: 10px;
  background: radial-gradient(circle, #f0e4c8 0%, #d4c098 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 15px 4px rgba(212,192,152,0.5);
  animation: rf-fairy 8s ease-in-out infinite 2s;
}
.scn-ribbing-falstaff .fairy-3 {
  position: absolute; top: 35%; left: 20%; width: 8px; height: 8px;
  background: radial-gradient(circle, #f0e4c8 0%, #d4c098 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px rgba(212,192,152,0.4);
  animation: rf-fairy 7s ease-in-out infinite 4s;
}
.scn-ribbing-falstaff .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(160,184,208,0.15) 0%, transparent 70%);
  animation: rf-glow 10s ease-in-out infinite alternate;
}
@keyframes rf-sky {
  0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; }
}
@keyframes rf-moon {
  0% { transform: scale(0.95); box-shadow: 0 0 30px 10px rgba(160,184,208,0.3); }
  50% { transform: scale(1.05); box-shadow: 0 0 50px 20px rgba(160,184,208,0.5); }
  100% { transform: scale(1); box-shadow: 0 0 40px 15px rgba(160,184,208,0.4); }
}
@keyframes rf-trees {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(3px); }
  100% { transform: rotate(-6deg) translateX(-2px); }
}
@keyframes rf-falstaff {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  75% { transform: translateX(-50%) rotate(-1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes rf-fairy {
  0% { transform: translateY(0) scale(1); opacity: 0.7; }
  25% { transform: translateY(-15px) scale(1.1); opacity: 1; }
  50% { transform: translateY(5px) scale(0.9); opacity: 0.8; }
  75% { transform: translateY(-10px) scale(1.05); opacity: 0.9; }
  100% { transform: translateY(0) scale(1); opacity: 0.7; }
}
@keyframes rf-glow {
  0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; }
}

/* Falstaff's Dejection */
.scn-falstaffs-dejection {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1f 50%, #1a1a2e 100%), radial-gradient(ellipse at 30% 50%, #2a2a4a 0%, transparent 70%);
}
.scn-falstaffs-dejection .wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(90deg, #1a1a2e 0%, #252545 50%, #1a1a2e 100%);
}
.scn-falstaffs-dejection .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1f 100%);
}
.scn-falstaffs-dejection .window {
  position: absolute; top: 10%; left: 5%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #2a4060 0%, #1a2a4a 100%);
  border: 3px solid #2a2a4a;
  border-radius: 5px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 30px 10px rgba(60,100,160,0.2);
  animation: fd-window 4s ease-in-out infinite alternate;
}
.scn-falstaffs-dejection .moonbeam {
  position: absolute; top: 10%; left: 5%; width: 120px; height: 60%;
  background: linear-gradient(135deg, rgba(160,184,208,0.3) 0%, transparent 100%);
  transform: skewX(-15deg);
  transform-origin: top left;
  animation: fd-moonbeam 3s ease-in-out infinite alternate;
}
.scn-falstaffs-dejection .dejected-figure {
  position: absolute; bottom: 15%; left: 30%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(5deg);
  box-shadow: 0 5px 15px rgba(0,0,0,0.7);
  animation: fd-shake 1.5s ease-in-out infinite;
}
.scn-falstaffs-dejection .chair {
  position: absolute; bottom: 15%; left: 40%; width: 20px; height: 30px;
  background: #1a1a2a;
  border-radius: 3px;
  box-shadow: 2px 0 5px rgba(0,0,0,0.5);
  transform: rotate(-10deg);
}
.scn-falstaffs-dejection .bottle {
  position: absolute; bottom: 22%; left: 45%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(25deg);
  animation: fd-bottle 4s ease-in-out infinite;
}
@keyframes fd-window {
  0% { opacity: 0.5; box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 20px 5px rgba(60,100,160,0.1); }
  50% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 35px 15px rgba(60,100,160,0.3); }
  100% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 25px 8px rgba(60,100,160,0.15); }
}
@keyframes fd-moonbeam {
  0% { opacity: 0.2; transform: skewX(-15deg) translateX(0); }
  50% { opacity: 0.5; transform: skewX(-15deg) translateX(5px); }
  100% { opacity: 0.3; transform: skewX(-15deg) translateX(-3px); }
}
@keyframes fd-shake {
  0% { transform: rotate(5deg) translateY(0); }
  10% { transform: rotate(3deg) translateY(-2px); }
  20% { transform: rotate(6deg) translateY(1px); }
  30% { transform: rotate(4deg) translateY(-1px); }
  40% { transform: rotate(7deg) translateY(2px); }
  50% { transform: rotate(5deg) translateY(0); }
  60% { transform: rotate(2deg) translateY(-1px); }
  70% { transform: rotate(6deg) translateY(1px); }
  80% { transform: rotate(4deg) translateY(-2px); }
  90% { transform: rotate(5deg) translateY(0); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes fd-bottle {
  0% { transform: rotate(25deg) translateY(0); }
  50% { transform: rotate(30deg) translateY(-3px); }
  100% { transform: rotate(20deg) translateY(0); }
}

/* Anne's Marriage Plot */
.scn-annes-marriage-plot {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #4a3a2a 60%, #3a2a1a 100%), radial-gradient(ellipse at 50% 80%, #5a4a3a 0%, transparent 70%);
}
.scn-annes-marriage-plot .room-bg {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
}
.scn-annes-marriage-plot .hearth {
  position: absolute; bottom: 0; left: 20%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.8);
}
.scn-annes-marriage-plot .fire-glow {
  position: absolute; bottom: 10%; left: 30%; width: 60px; height: 50px;
  background: radial-gradient(ellipse at 50% 80%, #ff9940 0%, #cc6620 50%, #8a3a0a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: 0 0 60px 30px rgba(204,102,32,0.3);
  animation: ap-fireglow 3s ease-in-out infinite alternate;
}
.scn-annes-marriage-plot .mantel {
  position: absolute; bottom: 50%; left: 20%; width: 130px; height: 12px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-annes-marriage-plot .profile-woman {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-10deg);
  box-shadow: 0 5px 15px rgba(0,0,0,0.6);
  animation: ap-woman 5s ease-in-out infinite alternate;
}
.scn-annes-marriage-plot .table {
  position: absolute; bottom: 12%; left: 60%; width: 50px; height: 10px;
  background: #3a2a1a;
  border-radius: 3px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.5);
}
.scn-annes-marriage-plot .posset {
  position: absolute; bottom: 18%; left: 65%; width: 18px; height: 14px;
  background: linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ap-steam 6s ease-in-out infinite;
}
.scn-annes-marriage-plot .candle {
  position: absolute; bottom: 15%; left: 50%; width: 6px; height: 30px;
  background: #8a7a6a;
  border-radius: 2px 2px 1px 1px;
}
.scn-annes-marriage-plot .candle::after {
  content: '';
  position: absolute; top: -8px; left: -1px; width: 8px; height: 10px;
  background: radial-gradient(circle, #ffe0a0 0%, #ffaa40 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 15px 5px rgba(255,170,64,0.5);
  animation: ap-candle 2s ease-in-out infinite alternate;
}
@keyframes ap-fireglow {
  0% { transform: scale(1); opacity: 0.7; box-shadow: 0 0 40px 20px rgba(204,102,32,0.2); }
  50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 80px 40px rgba(204,102,32,0.4); }
  100% { transform: scale(1.05); opacity: 0.85; box-shadow: 0 0 60px 30px rgba(204,102,32,0.3); }
}
@keyframes ap-woman {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-3px); }
  100% { transform: rotate(-12deg) translateY(0); }
}
@keyframes ap-steam {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  25% { transform: translateY(-10px) scale(1.1); opacity: 0.8; }
  50% { transform: translateY(-5px) scale(0.95); opacity: 0.5; }
  75% { transform: translateY(-15px) scale(1.05); opacity: 0.7; }
  100% { transform: translateY(0) scale(1); opacity: 0.6; }
}
@keyframes ap-candle {
  0% { transform: scale(1) translateY(0); opacity: 0.8; }
  50% { transform: scale(1.2) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.9) translateY(1px); opacity: 0.7; }
}

/* Slender's Mistake */
.scn-slenders-mistake {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #1a1410 100%), radial-gradient(ellipse at 50% 50%, #3a3028 0%, transparent 70%);
}
.scn-slenders-mistake .church-wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%);
}
.scn-slenders-mistake .pillar {
  position: absolute; bottom: 15%; left: 20%; width: 20px; height: 80%;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: inset -3px 0 5px rgba(0,0,0,0.5), 2px 0 5px rgba(0,0,0,0.3);
}
.scn-slenders-mistake .window {
  position: absolute; top: 8%; left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a6040 0%, #2a3a20 100%);
  border: 3px solid #3a2a1a;
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 0 30px 10px rgba(100,140,80,0.15);
  animation: sm-window 5s ease-in-out infinite alternate;
}
.scn-slenders-mistake .slender {
  position: absolute; bottom: 15%; left: 30%; width: 12px; height: 100px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(2deg);
  box-shadow: 0 5px 10px rgba(0,0,0,0.6);
  animation: sm-slender 4s ease-in-out infinite;
}
.scn-slenders-mistake .boy {
  position: absolute; bottom: 12%; left: 50%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 40%, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.5);
  animation: sm-boy 6s ease-in-out infinite;
}
.scn-slenders-mistake .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
}
.scn-slenders-mistake .pew {
  position: absolute; bottom: 15%; left: 60%; width: 30px; height: 25px;
  background: #2a1a0a;
  border-radius: 5px 5px 2px 2px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.5);
}
@keyframes sm-window {
  0% { opacity: 0.4; box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 0 20px 5px rgba(100,140,80,0.1); }
  50% { opacity: 0.7; box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 0 40px 15px rgba(100,140,80,0.25); }
  100% { opacity: 0.5; box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 0 30px 10px rgba(100,140,80,0.15); }
}
@keyframes sm-slender {
  0% { transform: rotate(2deg) translateX(0); }
  20% { transform: rotate(-3deg) translateX(5px); }
  40% { transform: rotate(4deg) translateX(-3px); }
  60% { transform: rotate(-2deg) translateX(4px); }
  80% { transform: rotate(3deg) translateX(-2px); }
  100% { transform: rotate(2deg) translateX(0); }
}
@keyframes sm-boy {
  0% { transform: translateY(0) scale(1); }
  30% { transform: translateY(-8px) scale(1.1); }
  60% { transform: translateY(4px) scale(0.95); }
  100% { transform: translateY(0) scale(1); }
}

.scn-mistress-quickly-reports {
  position: relative;
  background: linear-gradient(180deg, #1e1814 0%, #2a1f16 50%, #1a1410 100%), radial-gradient(circle at 50% 70%, #3a2a1a 0%, transparent 70%);
}
.scn-mistress-quickly-reports .mq-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1814 0%, #2a1f16 100%);
  animation: mq-breath 12s ease-in-out infinite alternate;
}
.scn-mistress-quickly-reports .mq-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: repeating-linear-gradient(90deg, #1a1410 0%, #1a1410 8px, #231c16 8px, #231c16 16px);
  opacity: 0.7;
}
.scn-mistress-quickly-reports .mq-table {
  position: absolute; bottom: 30%; left: 30%; width: 60px; height: 14px;
  background: #3a2a1a; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-mistress-quickly-reports .mq-candle {
  position: absolute; bottom: calc(30% + 14px); left: 32%; width: 6px; height: 18px;
  background: #e8c080; border-radius: 2px;
  box-shadow: 0 0 12px 3px #f0d090, 0 0 24px 6px rgba(240,208,144,0.3);
  animation: mq-candle 2s ease-in-out infinite alternate;
}
.scn-mistress-quickly-reports .mq-figure {
  position: absolute; bottom: 26%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a221a 0%, #1a140e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: mq-tilt 3s ease-in-out infinite;
}
.scn-mistress-quickly-reports .mq-hat {
  position: absolute; bottom: 48%; left: 34%; width: 24px; height: 12px;
  background: #3a2a1a; border-radius: 30% 30% 0 0;
  animation: mq-hat 2.5s ease-in-out infinite;
}
.scn-mistress-quickly-reports .mq-hand {
  position: absolute; bottom: 32%; left: 42%; width: 10px; height: 6px;
  background: #2a221a; border-radius: 50%;
  animation: mq-point 2s ease-in-out infinite;
}
@keyframes mq-breath {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes mq-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.8; }
  50% { transform: scaleY(1.1) scaleX(0.95); opacity: 1; }
  100% { transform: scaleY(0.98) scaleX(1.02); opacity: 0.85; }
}
@keyframes mq-tilt {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes mq-hat {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-2px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-4deg); }
}
@keyframes mq-point {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.3) rotate(15deg); }
  100% { transform: scale(1) rotate(0deg); }
}

.scn-best-courtier-cannot {
  position: relative;
  background: linear-gradient(180deg, #1a162c 0%, #0f0d1a 50%, #1a162c 100%), radial-gradient(circle at 50% 40%, #2a2538 0%, transparent 70%);
}
.scn-best-courtier-cannot .bc-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a162c 0%, #0f0d1a 100%);
}
.scn-best-courtier-cannot .bc-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #1a1410 0%, #1a1410 10px, #231c16 10px, #231c16 20px);
  opacity: 0.5;
}
.scn-best-courtier-cannot .bc-figure {
  position: absolute; bottom: 20%; left: 42%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: bc-dance 1.5s ease-in-out infinite;
}
.scn-best-courtier-cannot .bc-cape {
  position: absolute; bottom: 20%; left: 38%; width: 40px; height: 50px;
  background: #2a2040; border-radius: 30%; transform-origin: top center;
  animation: bc-cape 1.5s ease-in-out infinite;
}
.scn-best-courtier-cannot .bc-hat {
  position: absolute; bottom: 45%; left: 38%; width: 36px; height: 16px;
  background: #1a1a2e; border-radius: 50%;
  animation: bc-hat 1.5s ease-in-out infinite;
}
.scn-best-courtier-cannot .bc-leg {
  position: absolute; bottom: 18%; left: 46%; width: 8px; height: 20px;
  background: #2a1a2a; border-radius: 4px;
  transform-origin: top center;
  animation: bc-kick 1.6s ease-in-out infinite alternate;
}
.scn-best-courtier-cannot .bc-arm {
  position: absolute; bottom: 28%; left: 32%; width: 6px; height: 22px;
  background: #2a1a2a; border-radius: 3px;
  transform-origin: top center;
  animation: bc-wave 2s ease-in-out infinite alternate;
}
@keyframes bc-dance {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(1.05); }
  100% { transform: rotate(-4deg) scaleY(1); }
}
@keyframes bc-cape {
  0% { transform: rotate(-15deg) scaleY(1); }
  50% { transform: rotate(15deg) scaleY(1.05); }
  100% { transform: rotate(-10deg) scaleY(1); }
}
@keyframes bc-hat {
  0% { transform: rotate(-10deg) scaleX(1); }
  50% { transform: rotate(10deg) scaleX(1.05); }
  100% { transform: rotate(-8deg) scaleX(1); }
}
@keyframes bc-kick {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-3px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes bc-wave {
  0% { transform: rotate(-30deg); }
  40% { transform: rotate(20deg); }
  80% { transform: rotate(-20deg); }
  100% { transform: rotate(-25deg); }
}

.scn-ten-and-eleven {
  position: relative;
  background: linear-gradient(180deg, #1e1e28 0%, #111116 50%, #1e1e28 100%), radial-gradient(circle at 50% 35%, #2a2a3a 0%, transparent 70%);
}
.scn-ten-and-eleven .te-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1e28 0%, #111116 100%);
}
.scn-ten-and-eleven .te-clock {
  position: absolute; top: 30%; left: 42%; width: 60px; height: 60px;
  background: #2a2a3a; border: 2px solid #4a4a5a; border-radius: 50%;
  box-shadow: 0 0 12px 2px #4a4a5a;
}
.scn-ten-and-eleven .te-hand1 {
  position: absolute; bottom: 50%; left: 50%; width: 4px; height: 18px;
  background: #c0c0c0; transform-origin: bottom center;
  border-radius: 2px; margin-left: -2px;
  animation: te-hand1 3s ease-in-out infinite alternate;
}
.scn-ten-and-eleven .te-hand2 {
  position: absolute; bottom: 50%; left: 50%; width: 3px; height: 24px;
  background: #d0d0d0; transform-origin: bottom center;
  border-radius: 2px; margin-left: -1.5px;
  animation: te-hand2 3s ease-in-out infinite alternate;
}
.scn-ten-and-eleven .te-pendulum {
  position: absolute; top: calc(30% + 60px); left: 50%; width: 4px; height: 30px;
  background: #4a4a5a; transform-origin: top center;
  border-radius: 2px; margin-left: -2px;
  animation: te-pendulum 2s ease-in-out infinite;
}
.scn-ten-and-eleven .te-door {
  position: absolute; bottom: 0; left: 20%; width: 50px; height: 100px;
  background: #2a2a3a; border: 1px solid #4a4a5a;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.5);
}
.scn-ten-and-eleven .te-rug {
  position: absolute; bottom: 5%; left: 25%; width: 80px; height: 20px;
  background: #3a2a2a; border-radius: 50%;
}
@keyframes te-hand1 {
  0% { transform: rotate(298deg); }
  50% { transform: rotate(302deg); }
  100% { transform: rotate(298deg); }
}
@keyframes te-hand2 {
  0% { transform: rotate(358deg); }
  50% { transform: rotate(362deg); }
  100% { transform: rotate(358deg); }
}
@keyframes te-pendulum {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(-20deg); }
}

.scn-husband-absence-set {
  position: relative;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a1e1a 50%, #1a1410 100%), radial-gradient(circle at 30% 70%, #3a2a1a 0%, transparent 70%);
}
.scn-husband-absence-set .ha-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a1e1a 100%);
}
.scn-husband-absence-set .ha-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #1a1410 0%, #1a1410 8px, #231c16 8px, #231c16 16px);
  opacity: 0.6;
}
.scn-husband-absence-set .ha-door {
  position: absolute; bottom: 0; left: 40%; width: 50px; height: 100px;
  background: #2a201a; border: 2px solid #3a302a;
  transform: skewY(3deg); transform-origin: bottom left;
  animation: ha-door 5s ease-in-out infinite alternate;
}
.scn-husband-absence-set .ha-figure {
  position: absolute; bottom: 30%; left: 43%; width: 20px; height: 50px;
  background: #2a1a1a;
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  animation: ha-peek 4s ease-in-out infinite;
}
.scn-husband-absence-set .ha-candle {
  position: absolute; bottom: 15%; left: 30%; width: 6px; height: 18px;
  background: #e8c080; border-radius: 2px;
  box-shadow: 0 0 10px 2px #f0d090, 0 0 20px 5px rgba(240,208,144,0.3);
  animation: ha-candle 2.5s ease-in-out infinite alternate;
}
.scn-husband-absence-set .ha-table {
  position: absolute; bottom: 18%; left: 28%; width: 20px; height: 8px;
  background: #3a2a1a; border-radius: 2px;
}
.scn-husband-absence-set .ha-curtain {
  position: absolute; top: 20%; right: 15%; width: 30px; height: 70px;
  background: #2a1a1a; border-radius: 10% 10% 0 0;
  opacity: 0.5;
  animation: ha-curtain 8s ease-in-out infinite alternate;
}
@keyframes ha-door {
  0% { transform: skewY(3deg) translateX(0); }
  50% { transform: skewY(6deg) translateX(-3px); }
  100% { transform: skewY(2deg) translateX(0); }
}
@keyframes ha-peek {
  0% { transform: translateX(0) scaleX(1); }
  40% { transform: translateX(8px) scaleX(1.05); }
  60% { transform: translateX(8px) scaleX(1.05); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes ha-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.8; }
  50% { transform: scaleY(1.1) scaleX(0.95); opacity: 1; }
  100% { transform: scaleY(0.98) scaleX(1.02); opacity: 0.85; }
}
@keyframes ha-curtain {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-4px) scaleY(1.03); }
  100% { transform: translateY(0) scaleY(1); }
}

/* Scene: diamond-eye (warm, bright-interior, close-up portrait) */
.scn-diamond-eye { background: radial-gradient(ellipse at 50% 30%, #f5d6b8 0%, #d6ae8a 40%, #b88a6a 100%), linear-gradient(180deg, #e8d8c8 0%, #c8b8a8 100%); }
.scn-diamond-eye .frame { position:absolute; inset:8%; border:6px solid rgba(200,180,160,.6); border-radius:50%; background:transparent; animation: de-frame 12s ease-in-out infinite alternate; }
.scn-diamond-eye .skin { position:absolute; bottom:8%; left:20%; width:60%; height:75%; background: radial-gradient(ellipse, #f5d6b8 0%, #e8b88a 70%, #c89870 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-diamond-eye .brow { position:absolute; top:35%; left:35%; width:30%; height:6%; background: #5a3e2b; border-radius: 40% 60% 0 0 / 100% 100% 0 0; transform: rotate(-4deg); animation: de-brow 6s ease-in-out infinite alternate; }
.scn-diamond-eye .eye { position:absolute; top:40%; left:38%; width:24%; height:10%; background: radial-gradient(circle, #f0d060 0%, #b08040 50%, #2a1a0a 100%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(240,208,96,.4); animation: de-eye 4s ease-in-out infinite; }
.scn-diamond-eye .kerchief { position:absolute; bottom:12%; left:10%; width:80%; height:35%; background: linear-gradient(135deg, #e8d8c8 0%, #c8b8a8 50%, #d8c8b8 100%); border-radius: 0 0 50% 50% / 0 0 60% 60%; transform: rotate(3deg); animation: de-kerchief 8s ease-in-out infinite alternate; }
.scn-diamond-eye .shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, rgba(60,40,30,.3) 0%, transparent 50%); }
.scn-diamond-eye .glow { position:absolute; inset:0; background: radial-gradient(circle at 40% 30%, rgba(255,230,180,.2) 0%, transparent 40%); animation: de-glow 4s ease-in-out infinite alternate; }
@keyframes de-frame { 0% { box-shadow: inset 0 0 20px rgba(200,180,160,.3); } 50% { box-shadow: inset 0 0 40px rgba(200,180,160,.6); } 100% { box-shadow: inset 0 0 20px rgba(200,180,160,.3); } }
@keyframes de-brow { 0% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-4deg) translateY(0); } }
@keyframes de-eye { 0% { transform: scaleX(1) rotate(0deg); box-shadow: 0 0 30px 8px rgba(240,208,96,.4); } 25% { transform: scaleX(.9) rotate(2deg); } 50% { transform: scaleX(1) rotate(0deg); box-shadow: 0 0 50px 12px rgba(240,208,96,.7); } 75% { transform: scaleX(.95) rotate(-1deg); } 100% { transform: scaleX(1) rotate(0deg); box-shadow: 0 0 30px 8px rgba(240,208,96,.4); } }
@keyframes de-kerchief { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-4px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes de-glow { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }

/* Scene: love-thee-none-but-thee (warm, bright-interior, intimate garden) */
.scn-love-thee-none-but-thee { background: linear-gradient(180deg, #b0d0e0 0%, #e8e0c8 30%, #d0c8a8 70%, #a0b080 100%), radial-gradient(ellipse at 50% 100%, #c8d8a8 0%, transparent 60%); }
.scn-love-thee-none-but-thee .window { position:absolute; top:5%; left:25%; width:50%; height:60%; border: 10px solid #6a5a4a; border-radius: 50% 50% 0 0 / 60% 60% 0 0; background: linear-gradient(180deg, #d0e0f0 0%, #b0c8d8 100%); box-shadow: inset 0 0 20px rgba(0,0,0,.1); }
.scn-love-thee-none-but-thee .sunbeam { position:absolute; top:5%; left:30%; width:40%; height:90%; background: linear-gradient(180deg, rgba(255,255,220,.6) 0%, transparent 100%); transform: rotate(8deg); animation: lt-beam 10s ease-in-out infinite alternate; }
.scn-love-thee-none-but-thee .bloom-a { position:absolute; bottom:25%; left:15%; width:18%; height:18%; background: radial-gradient(circle, #f2d0d6 0%, #d08a92 60%, #a06068 100%); border-radius: 50%; animation: lt-bloom 7s ease-in-out infinite; }
.scn-love-thee-none-but-thee .bloom-b { position:absolute; bottom:35%; right:15%; width:22%; height:22%; background: radial-gradient(circle, #f2d0d6 0%, #d08a92 60%, #a06068 100%); border-radius: 50%; animation: lt-bloom 9s ease-in-out infinite reverse; }
.scn-love-thee-none-but-thee .figure { position:absolute; bottom:10%; left:45%; width:12%; height:45%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lt-bow 14s ease-in-out infinite; }
.scn-love-thee-none-but-thee .shadow { position:absolute; bottom:10%; left:40%; width:22%; height:6%; background: rgba(40,50,20,.2); border-radius: 50%; filter: blur(6px); animation: lt-shadow 14s ease-in-out infinite; }
@keyframes lt-beam { 0% { transform: rotate(6deg) scaleX(1); opacity: .7; } 50% { transform: rotate(12deg) scaleX(1.1); opacity: 1; } 100% { transform: rotate(6deg) scaleX(1); opacity: .8; } }
@keyframes lt-bloom { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(10deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes lt-bow { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(10px) rotate(5deg); } 60% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lt-shadow { 0% { transform: translateX(0) scaleX(1); opacity: .5; } 30% { transform: translateX(10px) scaleX(1.2); opacity: .7; } 60% { transform: translateX(-5px) scaleX(.8); opacity: .4; } 100% { transform: translateX(0) scaleX(1); opacity: .5; } }

/* Scene: counter-gate (warm, bright-interior, vertical architectural shaft) */
.scn-counter-gate { background: linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 30%, #8a7a6a 60%, #5a4a3a 100%), radial-gradient(ellipse at 50% 100%, #8a7a6a 0%, transparent 60%); }
.scn-counter-gate .archway { position:absolute; bottom:10%; left:15%; width:70%; height:85%; background: linear-gradient(180deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%); border-radius: 50% 50% 0 0 / 40% 40% 0 0; border: 12px solid #4a3a2a; box-shadow: inset 0 0 30px rgba(0,0,0,.4); animation: cg-arch 20s ease-in-out infinite alternate; }
.scn-counter-gate .gate { position:absolute; bottom:10%; left:25%; width:50%; height:55%; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 40%, #8a7a6a 50%, #6a5a4a 60%, #4a3a2a 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: cg-gate 15s ease-in-out infinite; }
.scn-counter-gate .wall-left { position:absolute; bottom:10%; left:0; width:15%; height:85%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); box-shadow: inset -10px 0 15px rgba(0,0,0,.3); }
.scn-counter-gate .wall-right { position:absolute; bottom:10%; right:0; width:15%; height:85%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); box-shadow: inset 10px 0 15px rgba(0,0,0,.3); }
.scn-counter-gate .kiln-smoke { position:absolute; bottom:65%; left:45%; width:40%; height:35%; background: radial-gradient(ellipse, rgba(200,180,160,.4) 0%, transparent 70%); filter: blur(12px); animation: cg-smoke 18s ease-in-out infinite; }
.scn-counter-gate .light { position:absolute; bottom:15%; left:48%; width:8%; height:15%; background: radial-gradient(circle, #ffd080 0%, #b08040 60%, transparent 100%); border-radius: 50%; animation: cg-light 4s ease-in-out infinite alternate; }
.scn-counter-gate .cobbles { position:absolute; bottom:0; left:0; width:100%; height:10%; background: linear-gradient(90deg, #4a4a4a 0%, #6a6a6a 50%, #4a4a4a 100%); border-radius: 30% 30% 0 0 / 60% 60% 0 0; animation: cg-cobble 25s linear infinite; }
@keyframes cg-arch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(.98); } }
@keyframes cg-gate { 0% { transform: translateY(0) scaleX(1); } 30% { transform: translateY(-2px) scaleX(1.01); } 60% { transform: translateY(1px) scaleX(.99); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes cg-smoke { 0% { transform: translateY(0) scale(1) rotate(0deg); opacity: .6; } 33% { transform: translateY(-20px) scale(1.2) rotate(5deg); opacity: .8; } 66% { transform: translateY(-10px) scale(.9) rotate(-3deg); opacity: .5; } 100% { transform: translateY(0) scale(1) rotate(0deg); opacity: .6; } }
@keyframes cg-light { 0% { opacity: .7; box-shadow: 0 0 20px 5px #b08040; } 50% { opacity: 1; box-shadow: 0 0 40px 10px #ffd080; } 100% { opacity: .8; box-shadow: 0 0 25px 5px #b08040; } }
@keyframes cg-cobble { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }

/* Scene: arras-hide (tense, bright-interior, interior cutaway) */
.scn-arras-hide { background: linear-gradient(135deg, #c8b8a8 0%, #e8d8c8 50%, #c8b8a8 100%), radial-gradient(ellipse at 50% 0%, #f0e0d0 0%, transparent 70%); }
.scn-arras-hide .wall { position:absolute; inset:0; background: linear-gradient(180deg, #d8c8b8 0%, #b8a898 100%); }
.scn-arras-hide .arras { position:absolute; top:5%; left:20%; width:60%; height:80%; background: linear-gradient(180deg, #5e1a1d 0%, #702243 30%, #4a1215 70%, #5e1a1d 100%); border-radius: 8px; box-shadow: inset 0 0 30px rgba(0,0,0,.5), 0 8px 16px rgba(0,0,0,.3); animation: ah-arras 10s ease-in-out infinite alternate; }
.scn-arras-hide .arras-fold { position:absolute; top:5%; left:35%; width:6%; height:80%; background: linear-gradient(180deg, rgba(255,255,255,.15) 0%, rgba(0,0,0,.4) 50%, rgba(255,255,255,.1) 100%); border-radius: 2px; animation: ah-fold 8s ease-in-out infinite alternate; }
.scn-arras-hide .figure { position:absolute; bottom:12%; left:45%; width:14%; height:45%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 20% 20% 30% 30% / 40% 40% 50% 50%; transform: scaleX(-1); animation: ah-figure 6s ease-in-out infinite; }
.scn-arras-hide .floor { position:absolute; bottom:0; left:0; width:100%; height:12%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.2); }
.scn-arras-hide .shadow { position:absolute; bottom:12%; left:42%; width:20%; height:6%; background: rgba(30,20,20,.5); border-radius: 50%; filter: blur(8px); animation: ah-shadow 6s ease-in-out infinite; }
@keyframes ah-arras { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(.99); } }
@keyframes ah-fold { 0% { opacity: .6; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.1); } 100% { opacity: .7; transform: scaleX(.95); } }
@keyframes ah-figure { 0% { transform: scaleX(-1) translateX(0); } 30% { transform: scaleX(-1) translateX(-5px); } 60% { transform: scaleX(-1) translateX(3px); } 100% { transform: scaleX(-1) translateX(0); } }
@keyframes ah-shadow { 0% { transform: translateX(0) scaleX(1); opacity: .5; } 30% { transform: translateX(-5px) scaleX(1.2); opacity: .7; } 60% { transform: translateX(3px) scaleX(.9); opacity: .4; } 100% { transform: translateX(0) scaleX(1); opacity: .5; } }

.scn-send-your-page {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%),
    radial-gradient(ellipse 50% 50% at 20% 60%, #ff8833 0%, transparent 60%);
}
.scn-send-your-page .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(58,42,26,0.4) 0%, transparent 100%);
}
.scn-send-your-page .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 20% 20% 0 0;
}
.scn-send-your-page .fireplace {
  position: absolute; bottom: 20%; left: 8%; width: 34%; height: 40%;
  background: linear-gradient(180deg, #6a3a2a 0%, #4a2820 50%, #3a1e14 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6), 0 0 40px rgba(200,100,30,0.3);
}
.scn-send-your-page .fire {
  position: absolute; bottom: 22%; left: 14%; width: 12%; height: 16%;
  background: radial-gradient(ellipse at 50% 80%, #ffaa44 0%, #cc5500 40%, transparent 70%);
  border-radius: 50%;
  animation: syp-fire 2s ease-in-out infinite alternate;
}
.scn-send-your-page .chair {
  position: absolute; bottom: 20%; right: 12%; width: 28%; height: 38%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2215 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-send-your-page .figure {
  position: absolute; bottom: 22%; right: 18%; width: 14%; height: 36%;
  background: linear-gradient(135deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: syp-figure 6s ease-in-out infinite alternate;
}
.scn-send-your-page .page {
  position: absolute; top: 30%; left: 50%; width: 10%; height: 12%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 4%;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.3);
  animation: syp-page 4s ease-in-out infinite;
}
.scn-send-your-page .candle {
  position: absolute; bottom: 36%; left: 16%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 8px 4px rgba(255,180,60,0.4);
  animation: syp-candle 1.5s ease-in-out infinite alternate;
}

@keyframes syp-fire {
  0%   { transform: scaleY(1) translateY(0); opacity: 0.9; }
  50%  { transform: scaleY(1.2) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.95) translateY(1px); opacity: 0.8; }
}
@keyframes syp-figure {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes syp-page {
  0%   { transform: translateY(0) rotate(0deg) scale(1); }
  25%  { transform: translateY(-4px) rotate(3deg) scale(1.02); }
  50%  { transform: translateY(-2px) rotate(-2deg) scale(0.98); }
  100% { transform: translateY(2px) rotate(1deg) scale(1); }
}
@keyframes syp-candle {
  0%   { transform: scaleY(1); opacity: 0.85; }
  50%  { transform: scaleY(1.15); opacity: 1; }
  100% { transform: scaleY(0.9); opacity: 0.75; }
}

.scn-send-your-page {
  background:
    linear-gradient(180deg, #2a1e18 0%, #1a1210 50%, #0f0a08 100%),
    radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 70%);
  background-size: 100% 100%;
}
.scn-send-your-page .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 80%);
}
.scn-send-your-page .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a1008 100%);
  border-radius: 0 0 10% 10%;
}
.scn-send-your-page .table {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 10px;
  background: linear-gradient(180deg, #4a3020 0%, #3a2018 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: syp-table 6s ease-in-out infinite alternate;
}
.scn-send-your-page .chair {
  position: absolute; bottom: 15%; left: 40%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #4a3020 0%, #3a2018 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
}
.scn-send-your-page .figure {
  position: absolute; bottom: 20%; left: 42%; width: 30px; 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: syp-figure 4s ease-in-out infinite;
}
.scn-send-your-page .candle {
  position: absolute; bottom: 30%; left: 38%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #c8a080 0%, #a08060 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px #ffd060;
  animation: syp-candle 2s ease-in-out infinite alternate;
}
.scn-send-your-page .cat {
  position: absolute; bottom: 28%; left: 32%; width: 20px; height: 16px;
  background: radial-gradient(circle at 30% 30%, #4a3a2a, #2a1a10);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: syp-cat 3s ease-in-out infinite;
}
.scn-send-your-page .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 38% 35%, rgba(255,200,100,0.2) 0%, transparent 60%);
  pointer-events: none;
  animation: syp-glow 4s ease-in-out infinite alternate;
}
@keyframes syp-table {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes syp-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes syp-candle {
  0% { opacity: 0.8; transform: scaleY(1) rotate(0deg); }
  50% { opacity: 1; transform: scaleY(1.05) rotate(2deg); }
  100% { opacity: 0.9; transform: scaleY(0.95) rotate(-2deg); }
}
@keyframes syp-cat {
  0% { transform: translateX(0) scale(1); }
  25% { transform: translateX(3px) scale(1.02); }
  50% { transform: translateX(0) scale(0.98); }
  75% { transform: translateX(-3px) scale(1.02); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes syp-glow {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.rain { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-final-scene-list {
  background:
    linear-gradient(180deg, #a3b8c2 0%, #7a8f9a 40%, #5c6e77 100%),
    radial-gradient(ellipse at 50% 120%, #8b9ea8 0%, transparent 60%);
}
.scn-final-scene-list .sky {
  position: absolute; inset: 0 0 55% 0;
  background: radial-gradient(ellipse at 50% 10%, #c8d6db 0%, transparent 70%);
  animation: fsl-sky 20s ease-in-out infinite alternate;
}
.scn-final-scene-list .cloud-a,
.scn-final-scene-list .cloud-b {
  position: absolute; top: 10%; width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,.1) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: fsl-cloud 40s linear infinite;
}
.scn-final-scene-list .cloud-b { top: 18%; width: 80px; height: 20px; animation-duration: 55s; animation-delay: -15s; opacity: 0.6; }
.scn-final-scene-list .trees {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 12%;
  background: radial-gradient(ellipse 30px 50px at 15% 100%, #4a5b4a 50%, transparent 60%),
              radial-gradient(ellipse 25px 45px at 30% 100%, #3d4d3d 50%, transparent 60%),
              radial-gradient(ellipse 35px 55px at 50% 100%, #506050 50%, transparent 60%),
              radial-gradient(ellipse 28px 48px at 70% 100%, #3a4a3a 50%, transparent 60%),
              radial-gradient(ellipse 32px 52px at 85% 100%, #455645 50%, transparent 60%);
  animation: fsl-sway 18s ease-in-out infinite alternate;
}
.scn-final-scene-list .building {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 35%;
  background: linear-gradient(180deg, #6d7a7a 0%, #4a5454 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.2);
  transform-origin: bottom center;
  animation: fsl-sway 25s ease-in-out infinite alternate;
}
.scn-final-scene-list .window {
  position: absolute; bottom: 35%; left: 50%; width: 24px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e8d4b0 0%, #b89870 70%);
  border-radius: 8% 8% 12% 12%;
  box-shadow: 0 0 20px 6px #c4a87a, 0 0 40px 12px rgba(196,168,122,0.3);
  animation: fsl-glow 6s ease-in-out infinite alternate;
}
.scn-final-scene-list .street {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #6b6b5e 0%, #4f4f44 100%);
  clip-path: polygon(5% 0%, 95% 0%, 100% 100%, 0% 100%);
  animation: fsl-stroll 30s ease-in-out infinite alternate;
}
.scn-final-scene-list .lamppost {
  position: absolute; bottom: 22%; left: 35%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
}
.scn-final-scene-list .lamppost::before {
  content: '';
  position: absolute; top: -8px; left: -6px; width: 18px; height: 12px;
  background: radial-gradient(circle, #e6d19a 0%, #8a7a4a 60%);
  border-radius: 50%;
  box-shadow: 0 0 24px 6px #c4a86a, 0 0 48px 14px rgba(196,168,106,0.3);
  animation: fsl-glow 5s ease-in-out infinite alternate;
}
.scn-final-scene-list .figure {
  position: absolute; bottom: 10%; left: 30%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fsl-walk 12s ease-in-out infinite;
}

@keyframes fsl-sky {
  0% { opacity: 0.75; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes fsl-cloud {
  0% { transform: translateX(-100px); }
  50% { transform: translateX(calc(50vw + 50px)); }
  100% { transform: translateX(calc(100vw + 100px)); }
}
@keyframes fsl-sway {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes fsl-glow {
  0% { box-shadow: 0 0 12px 3px #c4a87a, 0 0 24px 6px rgba(196,168,122,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 22px 8px #dcc08a, 0 0 44px 14px rgba(220,192,138,0.4); opacity: 1; }
  100% { box-shadow: 0 0 14px 4px #c4a87a, 0 0 28px 8px rgba(196,168,122,0.25); opacity: 0.85; }
}
@keyframes fsl-stroll {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(1px) scaleY(0.98); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes fsl-walk {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(15px) translateY(-1px) rotate(3deg); }
  50% { transform: translateX(30px) translateY(0) rotate(0deg); }
  75% { transform: translateX(45px) translateY(-1px) rotate(-3deg); }
  100% { transform: translateX(60px) translateY(0) rotate(0deg); }
}

/* page-proposes-arbitration (tense, sunlit) */
.scn-page-proposes-arbitration {
  background: linear-gradient(180deg, #f9e8c0 0%, #d4b88a 40%, #a0825a 100%), radial-gradient(ellipse at 80% 20%, #fff4d0 0%, transparent 60%);
}
.scn-page-proposes-arbitration .bg-sunlight {
  position: absolute; inset: 0; background: linear-gradient(135deg, #fbe7b0 0%, #d6c090 40%, #b8a070 100%);
  animation: tp-sunshift 12s ease-in-out infinite alternate;
}
.scn-page-proposes-arbitration .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8b6b4a 0%, #5a4030 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-page-proposes-arbitration .window {
  position: absolute; top: 10%; left: 10%; width: 120px; height: 160px;
  background: linear-gradient(135deg, #fffce0 0%, #d8c898 100%);
  border: 4px solid #6b4c3a; border-radius: 8px;
  box-shadow: 0 0 30px 10px rgba(255,240,180,0.6);
  animation: tp-windowpulse 5s ease-in-out infinite;
}
.scn-page-proposes-arbitration .table {
  position: absolute; bottom: 28%; left: 25%; width: 140px; height: 30px;
  background: linear-gradient(180deg, #734e38 0%, #4d3325 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: tp-tablebounce 7s ease-in-out infinite;
}
.scn-page-proposes-arbitration .wine-bottle {
  position: absolute; bottom: 38%; left: 38%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #4a6e3a 0%, #2e4724 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%;
  transform: rotate(-5deg);
  animation: tp-bottlesway 4s ease-in-out infinite;
}
.scn-page-proposes-arbitration .figure-slender {
  position: absolute; bottom: 25%; left: 20%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tp-figureagitate 3s ease-in-out infinite;
}
.scn-page-proposes-arbitration .figure-falstaff {
  position: absolute; bottom: 25%; right: 20%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tp-falstaffrock 5s ease-in-out infinite;
}
@keyframes tp-sunshift { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes tp-windowpulse { 0% { box-shadow: 0 0 20px 5px rgba(255,240,180,0.5); } 50% { box-shadow: 0 0 40px 15px rgba(255,240,180,0.8); } 100% { box-shadow: 0 0 25px 8px rgba(255,240,180,0.6); } }
@keyframes tp-tablebounce { 0%,100% { transform: translateY(0); } 25% { transform: translateY(-2px); } 50% { transform: translateY(0); } 75% { transform: translateY(-1px); } }
@keyframes tp-bottlesway { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }
@keyframes tp-figureagitate { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(2px) rotate(2deg); } 40% { transform: translateX(-2px) rotate(-1deg); } 60% { transform: translateX(3px) rotate(1deg); } 80% { transform: translateX(-1px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tp-falstaffrock { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 50% { transform: rotate(-3deg); } 75% { transform: rotate(1deg); } }

/* slender-declares-marriage (funny, bright-interior) */
.scn-slender-declares-marriage {
  background: linear-gradient(180deg, #fff8e0 0%, #f0d898 40%, #e0c080 100%), radial-gradient(ellipse at 50% 80%, #ffe8a0 0%, transparent 60%);
}
.scn-slender-declares-marriage .bg-interior {
  position: absolute; inset: 0; background: linear-gradient(180deg, #fff0c0 0%, #f5dc90 100%);
  animation: sf-brightshift 8s ease-in-out infinite alternate;
}
.scn-slender-declares-marriage .wall {
  position: absolute; top: 10%; left: 0; right: 0; height: 65%;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 100%);
  box-shadow: inset 0 4px 15px rgba(0,0,0,0.1);
}
.scn-slender-declares-marriage .door {
  position: absolute; bottom: 30%; left: 15%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #6a5035 0%, #4d3825 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  animation: sf-doorcreak 6s ease-in-out infinite;
}
.scn-slender-declares-marriage .figure-slender-awkward {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 56px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sf-slenderfidget 3s ease-in-out infinite;
}
.scn-slender-declares-marriage .figure-anne {
  position: absolute; bottom: 24%; right: 30%; width: 18px; height: 58px;
  background: linear-gradient(180deg, #b87878 0%, #804040 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sf-annebow 8s ease-in-out infinite;
}
.scn-slender-declares-marriage .table {
  position: absolute; bottom: 28%; left: 55%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #6b4a2e 0%, #4a3020 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: sf-tablewiggle 10s ease-in-out infinite;
}
@keyframes sf-brightshift { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sf-doorcreak { 0%,100% { transform: rotate(0deg); } 30% { transform: rotate(2deg); } 60% { transform: rotate(-1deg); } }
@keyframes sf-slenderfidget { 0% { transform: translateX(0) rotate(0deg); } 15% { transform: translateX(4px) rotate(5deg); } 30% { transform: translateX(-2px) rotate(-3deg); } 45% { transform: translateX(6px) rotate(7deg); } 60% { transform: translateX(-4px) rotate(-5deg); } 80% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sf-annebow { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-5deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(3deg); } }
@keyframes sf-tablewiggle { 0% { transform: rotate(0deg); } 25% { transform: rotate(1deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(0.5deg); } 100% { transform: rotate(0deg); } }

/* evans-sends-simple (calm, bright-interior) */
.scn-evans-sends-simple {
  background: linear-gradient(180deg, #f5ecd0 0%, #dcd4b0 40%, #b8b098 100%), radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 60%);
}
.scn-evans-sends-simple .bg-garter-inn {
  position: absolute; inset: 0; background: linear-gradient(180deg, #ece0b8 0%, #c8bca0 100%);
  animation: ec-bgdrift 15s ease-in-out infinite alternate;
}
.scn-evans-sends-simple .desk {
  position: absolute; bottom: 30%; left: 30%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #6a5035 0%, #4d3825 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: ec-deskbreathe 12s ease-in-out infinite;
}
.scn-evans-sends-simple .letter {
  position: absolute; bottom: 44%; left: 35%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: ec-lettermove 20s ease-in-out infinite;
}
.scn-evans-sends-simple .figure-evans {
  position: absolute; bottom: 22%; left: 22%; width: 20px; height: 62px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ec-evansgesture 9s ease-in-out infinite;
}
.scn-evans-sends-simple .figure-simple {
  position: absolute; bottom: 24%; right: 20%; width: 18px; height: 54px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ec-simplenod 7s ease-in-out infinite;
}
.scn-evans-sends-simple .lamp {
  position: absolute; bottom: 50%; left: 10%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffe8a0 0%, #d8b060 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,232,160,0.5);
  animation: ec-lamppulse 6s ease-in-out infinite alternate;
}
@keyframes ec-bgdrift { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ec-deskbreathe { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02); } }
@keyframes ec-lettermove { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ec-evansgesture { 0%,100% { transform: rotate(0deg); } 20% { transform: rotate(10deg); } 40% { transform: rotate(-5deg); } 60% { transform: rotate(8deg); } 80% { transform: rotate(-3deg); } }
@keyframes ec-simplenod { 0%,100% { transform: translateY(0); } 30% { transform: translateY(-2px); } 60% { transform: translateY(0); } 90% { transform: translateY(-1px); } }
@keyframes ec-lamppulse { 0% { box-shadow: 0 0 20px 5px rgba(255,232,160,0.4); } 100% { box-shadow: 0 0 40px 15px rgba(255,232,160,0.7); } }

/* item-love-letters (tense, dim-interior) */
.scn-item-love-letters {
  background: linear-gradient(180deg, #1a1820 0%, #2a2630 40%, #3a3640 100%), radial-gradient(ellipse at 40% 60%, #2a2630 0%, transparent 70%);
}
.scn-item-love-letters .bg-dim {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1c1a24 0%, #302c38 100%);
  animation: tl-bgdimshift 14s ease-in-out infinite alternate;
}
.scn-item-love-letters .table {
  position: absolute; bottom: 25%; left: 20%; width: 160px; height: 20px;
  background: linear-gradient(180deg, #4a4030 0%, #302820 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: tl-tablecreak 11s ease-in-out infinite;
}
.scn-item-love-letters .letters {
  position: absolute; bottom: 34%; left: 28%; width: 30px; height: 22px;
  background: linear-gradient(180deg, #c8b090 0%, #a08868 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px 2px rgba(255,220,160,0.3);
  animation: tl-lettershift 8s ease-in-out infinite;
}
.scn-item-love-letters .figure-falstaff {
  position: absolute; bottom: 20%; left: 15%; width: 28px; height: 72px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a2015 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tl-falstaffmenace 6s ease-in-out infinite;
}
.scn-item-love-letters .figure-robin {
  position: absolute; bottom: 26%; left: 35%; width: 14px; height: 44px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tl-robinbow 9s ease-in-out infinite;
}
.scn-item-love-letters .figure-pistol {
  position: absolute; bottom: 22%; right: 25%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a100a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tl-pistolprowl 7s ease-in-out infinite;
}
.scn-item-love-letters .figure-nym {
  position: absolute; bottom: 22%; right: 10%; width: 18px; height: 58px;
  background: linear-gradient(180deg, #2a2015 0%, #100a05 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tl-nymcreep 10s ease-in-out infinite;
}
@keyframes tl-bgdimshift { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes tl-tablecreak { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(1deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(0.5deg); } }
@keyframes tl-lettershift { 0% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-2px) rotate(-3deg); } 40% { transform: translateY(0) rotate(0deg); } 60% { transform: translateY(-1px) rotate(2deg); } 80% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tl-falstaffmenace { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(2deg); } 60% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tl-robinbow { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-4deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(2deg); } }
@keyframes tl-pistolprowl { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(-4px) rotate(-3deg); } 40% { transform: translateX(2px) rotate(2deg); } 60% { transform: translateX(-2px) rotate(-1deg); } 80% { transform: translateX(4px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tl-nymcreep { 0% { transform: translateX(0) scale(1); } 25% { transform: translateX(-3px) scale(1.02); } 50% { transform: translateX(0) scale(1); } 75% { transform: translateX(2px) scale(0.98); } 100% { transform: translateX(0) scale(1); } }

/* ===== nym-pistol-vow-revenge (dim interior, tense) ===== */
.scn-nym-pistol-vow-revenge {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1f3d 50%, #1e1428 100%),
              radial-gradient(ellipse at 75% 60%, #3d2b4a 0%, transparent 60%);
}
.scn-nym-pistol-vow-revenge .bg-dark {
  position:absolute; inset:0; background:linear-gradient(180deg, #0d0d1a 0%, #1a1528 100%);
  animation: npv-bg-dark 12s ease-in-out infinite alternate;
}
.scn-nym-pistol-vow-revenge .wall {
  position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #3a2a3e 0%, #2a1a2e 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
}
.scn-nym-pistol-vow-revenge .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background:linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,.5);
}
.scn-nym-pistol-vow-revenge .closet {
  position:absolute; bottom:20%; left:20%; width:35%; height:50%;
  background:linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 0 20px rgba(0,0,0,.7);
}
.scn-nym-pistol-vow-revenge .closet-door {
  position:absolute; bottom:22%; left:22%; width:28%; height:44%;
  background:linear-gradient(180deg, #6a4a4a 0%, #3a2a2a 100%);
  border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,.5);
  animation: npv-door 4s ease-in-out infinite;
}
.scn-nym-pistol-vow-revenge .figure-simple {
  position:absolute; bottom:25%; left:30%; width:16px; height:30px;
  background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: npv-simple 3s ease-in-out infinite;
}
.scn-nym-pistol-vow-revenge .figure-caius {
  position:absolute; bottom:25%; right:15%; width:20px; height:36px;
  background:linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: npv-caius 5s ease-in-out infinite;
}
.scn-nym-pistol-vow-revenge .lamp {
  position:absolute; top:30%; left:60%; width:12px; height:16px;
  background: radial-gradient(circle, #d4a56a 0%, #a07040 70%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 4px rgba(200,150,100,.4);
}
.scn-nym-pistol-vow-revenge .lamp-glow {
  position:absolute; top:28%; left:58%; width:20px; height:20px;
  background: radial-gradient(circle, rgba(220,180,120,.3) 0%, transparent 70%);
  animation: npv-lamp 2s ease-in-out infinite alternate;
}
@keyframes npv-bg-dark { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes npv-door { 0% { transform: translateX(0) } 50% { transform: translateX(4px) rotateY(10deg) } }
@keyframes npv-simple { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(3px) translateY(-2px) rotate(2deg) } }
@keyframes npv-caius { 0%,100% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-8px) scaleX(1.1) } }
@keyframes npv-lamp { 0% { opacity:.6; transform: scale(.95) } 100% { opacity:1; transform: scale(1.05) } }

/* ===== mistress-quickly-welcomes-simple (bright interior, calm) ===== */
.scn-mistress-quickly-welcomes-simple {
  background: linear-gradient(180deg, #fff8e7 0%, #f0e0c8 50%, #e0d0b0 100%),
              radial-gradient(ellipse at 50% 100%, #e8d8b8 0%, transparent 60%);
}
.scn-mistress-quickly-welcomes-simple .bg-light {
  position:absolute; inset:0; background:linear-gradient(180deg, #fffcf0 0%, #f0e6d0 100%);
  animation: mqs-bg 20s ease-in-out infinite alternate;
}
.scn-mistress-quickly-welcomes-simple .wall {
  position:absolute; inset:0 0 25% 0; background:linear-gradient(180deg, #e8dcc8 0%, #d8ccb8 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.1);
}
.scn-mistress-quickly-welcomes-simple .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background:linear-gradient(180deg, #c8b898 0%, #a89878 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.15);
}
.scn-mistress-quickly-welcomes-simple .window {
  position:absolute; top:12%; left:60%; width:60px; height:80px;
  background: linear-gradient(180deg, #b8d8e8 0%, #98c0d8 100%);
  border: 4px solid #c8b898; border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.2), inset 0 0 20px rgba(255,255,255,.3);
  animation: mqs-window 8s ease-in-out infinite alternate;
}
.scn-mistress-quickly-welcomes-simple .table {
  position:absolute; bottom:20%; left:25%; width:70px; height:12px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 4px; box-shadow: 0 6px 10px rgba(0,0,0,.2);
}
.scn-mistress-quickly-welcomes-simple .chair {
  position:absolute; bottom:18%; left:28%; width:18px; height:30px;
  background: linear-gradient(180deg, #907050 0%, #705030 100%);
  border-radius: 4px 4px 2px 2px; transform: rotate(5deg);
}
.scn-mistress-quickly-welcomes-simple .figure-quickly {
  position:absolute; bottom:22%; left:35%; width:18px; height:34px;
  background: linear-gradient(180deg, #c8a090 0%, #a08070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mqs-quickly 10s ease-in-out infinite;
}
.scn-mistress-quickly-welcomes-simple .figure-simple {
  position:absolute; bottom:22%; left:42%; width:16px; height:30px;
  background: linear-gradient(180deg, #b0a098 0%, #908078 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mqs-simple 8s ease-in-out infinite;
}
.scn-mistress-quickly-welcomes-simple .letter {
  position:absolute; bottom:30%; left:26%; width:20px; height:14px;
  background: #f0e8d8; border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.2), 0 0 10px 2px rgba(255,230,150,.3);
  animation: mqs-letter 5s ease-in-out infinite;
}
@keyframes mqs-bg { 0% { opacity:.95 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes mqs-window { 0% { opacity:.8; box-shadow:0 4px 12px rgba(0,0,0,.1) } 100% { opacity:1; box-shadow:0 8px 24px rgba(0,0,0,.2) } }
@keyframes mqs-quickly { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(2deg) } }
@keyframes mqs-simple { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-3px) } }
@keyframes mqs-letter { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } }

/* ===== caius-challenge-evans (bright interior, tense) ===== */
.scn-caius-challenge-evans {
  background: linear-gradient(180deg, #f5f0e8 0%, #e0d8c8 50%, #c8c0b0 100%),
              radial-gradient(ellipse at 50% 80%, #d0c8b8 0%, transparent 70%);
}
.scn-caius-challenge-evans .bg-bright {
  position:absolute; inset:0; background:linear-gradient(180deg, #fffaf0 0%, #f0e8d8 100%);
  animation: cce-bg 6s ease-in-out infinite alternate;
}
.scn-caius-challenge-evans .wall {
  position:absolute; inset:0 0 20% 0; background:linear-gradient(180deg, #e0d8c8 0%, #c8c0b0 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.05);
}
.scn-caius-challenge-evans .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background:linear-gradient(180deg, #b8a898 0%, #988878 100%);
}
.scn-caius-challenge-evans .desk {
  position:absolute; bottom:18%; left:20%; width:80px; height:16px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.3);
  transform: skewX(-5deg);
}
.scn-caius-challenge-evans .paper {
  position:absolute; bottom:30%; left:25%; width:30px; height:22px;
  background: #f0e8d8; border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: cce-paper 8s ease-in-out infinite;
}
.scn-caius-challenge-evans .quill {
  position:absolute; bottom:34%; left:28%; width:4px; height:18px;
  background: linear-gradient(180deg, #e0c8a0 0%, #c0a880 100%);
  border-radius: 2px; transform: rotate(-20deg);
  animation: cce-quill 3s ease-in-out infinite;
}
.scn-caius-challenge-evans .figure-caius {
  position:absolute; bottom:20%; left:22%; width:20px; height:38px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cce-caius 4s ease-in-out infinite;
}
.scn-caius-challenge-evans .figure-evans {
  position:absolute; bottom:20%; right:25%; width:20px; height:38px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cce-evans 6s ease-in-out infinite;
}
.scn-caius-challenge-evans .shadow-harsh {
  position:absolute; bottom:0; left:15%; width:30%; height:20%;
  background: linear-gradient(180deg, rgba(0,0,0,.15) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: cce-shadow 5s ease-in-out infinite alternate;
}
@keyframes cce-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes cce-paper { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(3deg) } }
@keyframes cce-quill { 0%,100% { transform: rotate(-20deg) scaleY(1) } 50% { transform: rotate(-10deg) scaleY(1.1) } }
@keyframes cce-caius { 0%,100% { transform: translateX(0) } 50% { transform: translateX(5px) } }
@keyframes cce-evans { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-8px) } }
@keyframes cce-shadow { 0% { opacity:.6 } 100% { opacity:1 } }

/* ===== fenton-asks-quickly (bright interior, calm) ===== */
.scn-fenton-asks-quickly {
  background: linear-gradient(180deg, #faf6e8 0%, #e8dcc8 50%, #d8ccb8 100%),
              radial-gradient(ellipse at 30% 70%, #e8dcc0 0%, transparent 60%);
}
.scn-fenton-asks-quickly .bg-warm {
  position:absolute; inset:0; background:linear-gradient(180deg, #fffcf0 0%, #f0e6d0 100%);
  animation: faq-bg 18s ease-in-out infinite alternate;
}
.scn-fenton-asks-quickly .wall {
  position:absolute; inset:0 0 20% 0; background:linear-gradient(180deg, #e8dcc8 0%, #d0c4b0 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.08);
}
.scn-fenton-asks-quickly .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background:linear-gradient(180deg, #c8b898 0%, #a89878 100%);
}
.scn-fenton-asks-quickly .window {
  position:absolute; top:15%; right:10%; width:50px; height:70px;
  background: linear-gradient(180deg, #c8e0f0 0%, #a8c8e0 100%);
  border: 4px solid #b8a888; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,.4), 0 4px 12px rgba(0,0,0,.15);
  animation: faq-window 10s ease-in-out infinite alternate;
}
.scn-fenton-asks-quickly .figure-fenton {
  position:absolute; bottom:22%; left:30%; width:18px; height:36px;
  background: linear-gradient(180deg, #706050 0%, #504030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: faq-fenton 7s ease-in-out infinite;
}
.scn-fenton-asks-quickly .figure-quickly {
  position:absolute; bottom:22%; left:45%; width:18px; height:34px;
  background: linear-gradient(180deg, #c09880 0%, #a08070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: faq-quickly 9s ease-in-out infinite;
}
.scn-fenton-asks-quickly .coin-pouch {
  position:absolute; bottom:28%; left:38%; width:14px; height:10px;
  background: linear-gradient(180deg, #d4b060 0%, #b09040 100%);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 0 8px 2px rgba(200,170,80,.3);
  animation: faq-coin 5s ease-in-out infinite;
}
.scn-fenton-asks-quickly .letter-fenton {
  position:absolute; bottom:30%; left:35%; width:18px; height:12px;
  background: #f0e8d8; border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.15);
  animation: faq-letter 4s ease-in-out infinite;
}
@keyframes faq-bg { 0% { opacity:.95 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes faq-window { 0% { opacity:.8; box-shadow:0 4px 12px rgba(0,0,0,.1) } 100% { opacity:1; box-shadow:0 8px 24px rgba(0,0,0,.2) } }
@keyframes faq-fenton { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-3px) rotate(2deg) } }
@keyframes faq-quickly { 0%,100% { transform: translateX(0) } 50% { transform: translateX(4px) } }
@keyframes faq-coin { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.1) } }
@keyframes faq-letter { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } }

.scn-item-identical-letters {
  background: linear-gradient(180deg, #fff8e7 0%, #f0e4c8 60%, #dcc8a8 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 70%);
}
.scn-item-identical-letters .wall {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(180deg, #e6d5b8 0%, #c9b48a 100%);
  border-radius: 0 0 30% 30%;
  animation: iil-wall 12s ease-in-out infinite alternate;
}
.scn-item-identical-letters .table {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 18%;
  background: linear-gradient(180deg, #8b7355 0%, #5c4a30 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,.2);
  animation: iil-table 8s ease-in-out infinite;
}
.scn-item-identical-letters .letter {
  position: absolute; bottom: 24%; left: 42%; width: 30px; height: 18px;
  background: linear-gradient(135deg, #fffef0 0%, #f5e6c8 100%);
  border-radius: 4% 4% 20% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  transform: rotate(-8deg);
  animation: iil-letter 6s ease-in-out infinite alternate;
}
.scn-item-identical-letters .quickly {
  position: absolute; bottom: 8%; left: 22%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #7a5e3c 0%, #4a3620 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: iil-figure 4s ease-in-out infinite;
}
.scn-item-identical-letters .falstaff {
  position: absolute; bottom: 5%; right: 18%; width: 34px; height: 60px;
  background: linear-gradient(180deg, #5c4a30 0%, #3a2a18 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: iil-figure 5s ease-in-out infinite reverse;
}
.scn-item-identical-letters .robin {
  position: absolute; bottom: 10%; left: 30%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #6b5b4a 0%, #3b2b1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: iil-robin 7s ease-in-out infinite;
}
.scn-item-identical-letters .candle {
  position: absolute; bottom: 26%; left: 60%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #f0e0b0 0%, #c8a84a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 12px 6px rgba(200,168,74,.6);
  animation: iil-candle 3s ease-in-out infinite alternate;
}
.scn-item-identical-letters .vase {
  position: absolute; bottom: 22%; left: 68%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #8a6e4e 0%, #5a3e2e 100%);
  border-radius: 40% 40% 20% 20%;
  animation: iil-vase 10s ease-in-out infinite;
}
@keyframes iil-wall { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes iil-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes iil-letter { 0% { transform: rotate(-8deg) } 50% { transform: rotate(-5deg) translateY(-1px) } 100% { transform: rotate(-10deg) } }
@keyframes iil-figure { 0%,100% { transform: rotate(0) } 25% { transform: rotate(-2deg) translateX(2px) } 75% { transform: rotate(1deg) translateX(-1px) } }
@keyframes iil-robin { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes iil-candle { 0% { opacity: .7; transform: scaleY(.95) } 50% { opacity: 1; transform: scaleY(1.05) } 100% { opacity: .8; transform: scaleY(.9) } }
@keyframes iil-vase { 0%,100% { transform: rotate(0) } 50% { transform: rotate(1deg) } }

.scn-pistols-warn-ford-page {
  background: linear-gradient(180deg, #fef9e8 0%, #e8dcc0 30%, #b8a080 60%, #7a6050 100%),
              radial-gradient(ellipse at 30% 10%, #fff8dc 0%, transparent 60%);
}
.scn-pistols-warn-ford-page .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
  animation: pwp-floor 14s ease-in-out infinite alternate;
}
.scn-pistols-warn-ford-page .window {
  position: absolute; top: 10%; left: 70%; width: 80px; height: 100px;
  background: radial-gradient(ellipse, #fff8dc 0%, #e6d4a0 60%, #b8a060 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 0 40px 20px rgba(255,248,220,.3);
  animation: pwp-window 9s ease-in-out infinite alternate;
}
.scn-pistols-warn-ford-page .ford {
  position: absolute; bottom: 20%; left: 15%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2c1e12 0%, #120c06 100%);
  border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%;
  transform-origin: bottom center;
  animation: pwp-figure 3s ease-in-out infinite;
}
.scn-pistols-warn-ford-page .falstaff {
  position: absolute; bottom: 15%; right: 10%; width: 36px; height: 64px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: pwp-figure 4s ease-in-out infinite reverse;
}
.scn-pistols-warn-ford-page .shadow {
  position: absolute; bottom: 0; left: 10%; right: 20%; height: 12%;
  background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%);
  border-radius: 20% 20% 0 0;
  animation: pwp-shadow 6s ease-in-out infinite;
}
.scn-pistols-warn-ford-page .pistol {
  position: absolute; bottom: 28%; left: 38%; width: 26px; height: 6px;
  background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 10% 10% 40%;
  transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.6);
  animation: pwp-pistol 2s ease-in-out infinite alternate;
}
.scn-pistols-warn-ford-page .dust {
  position: absolute; top: 30%; left: 50%; width: 4px; height: 4px;
  background: rgba(255,255,200,.6);
  border-radius: 50%;
  filter: blur(1px);
  animation: pwp-dust 8s linear infinite;
}
@keyframes pwp-floor { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(.98) } }
@keyframes pwp-window { 0% { opacity: .8; transform: scale(.95) } 50% { opacity: 1; transform: scale(1) } 100% { opacity: .7; transform: scale(.9) } }
@keyframes pwp-figure { 0%,100% { transform: rotate(0) translateY(0) } 25% { transform: rotate(-2deg) translateY(-1px) } 75% { transform: rotate(1deg) translateY(-1px) } }
@keyframes pwp-shadow { 0%,100% { opacity: .6 } 50% { opacity: .8 } }
@keyframes pwp-pistol { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-20deg) } }
@keyframes pwp-dust { 0% { transform: translate(0,0); opacity: 0 } 10% { opacity: 1 } 90% { opacity: 1 } 100% { transform: translate(20px,-40px); opacity: 0 } }

.scn-mistresses-enlist-quickly {
  background: linear-gradient(180deg, #f2e9db 0%, #dfd0be 50%, #c5b4a0 100%),
              radial-gradient(ellipse at 60% 20%, #fff8f0 0%, transparent 70%);
}
.scn-mistresses-enlist-quickly .wall-bg {
  position: absolute; inset: 0 0 8% 0;
  background: linear-gradient(180deg, #e8dccb 0%, #c8b8a2 100%);
  border-radius: 0 0 20% 20%;
  animation: meq-wall 10s ease-in-out infinite alternate;
}
.scn-mistresses-enlist-quickly .window-light {
  position: absolute; top: 8%; left: 75%; width: 70px; height: 90px;
  background: linear-gradient(135deg, #fffef5 0%, #e8e0d0 60%, #d0c0a0 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 30px 15px rgba(255,254,245,.3);
  animation: meq-window 14s ease-in-out infinite alternate;
}
.scn-mistresses-enlist-quickly .mistress-page {
  position: absolute; bottom: 12%; left: 30%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #8a7a62 0%, #4a3a2a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: meq-figure1 5s ease-in-out infinite;
}
.scn-mistresses-enlist-quickly .mistress-ford {
  position: absolute; bottom: 10%; left: 42%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #7a6a52 0%, #3a2a1a 100%);
  border-radius: 40% 45% 35% 40% / 55% 50% 45% 50%;
  transform-origin: bottom center;
  animation: meq-figure2 6s ease-in-out infinite;
}
.scn-mistresses-enlist-quickly .quickly {
  position: absolute; bottom: 8%; left: 55%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #6a5a4a 0%, #2a1a0a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: meq-figure1 7s ease-in-out infinite reverse;
}
.scn-mistresses-enlist-quickly .table {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 14%;
  background: linear-gradient(180deg, #9a8a7a 0%, #5a4a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,.15);
}
.scn-mistresses-enlist-quickly .teacup {
  position: absolute; bottom: 14%; left: 48%; width: 12px; height: 14px;
  background: linear-gradient(180deg, #f0e8d8 0%, #c8b8a0 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: meq-teacup 8s ease-in-out infinite;
}
.scn-mistresses-enlist-quickly .curtain {
  position: absolute; top: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, rgba(230,210,190,.8) 0%, transparent 100%);
  filter: blur(4px);
  animation: meq-curtain 20s ease-in-out infinite alternate;
}
@keyframes meq-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes meq-window { 0% { transform: scaleX(.95); opacity: .8 } 50% { transform: scaleX(1); opacity: 1 } 100% { transform: scaleX(.9); opacity: .7 } }
@keyframes meq-figure1 { 0%,100% { transform: rotate(0) } 25% { transform: rotate(-1deg) translateX(-1px) } 75% { transform: rotate(1deg) translateX(2px) } }
@keyframes meq-figure2 { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes meq-teacup { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(2deg) } }
@keyframes meq-curtain { 0% { opacity: .4; transform: translateY(0) } 50% { opacity: .6; transform: translateY(-2px) } 100% { opacity: .3; transform: translateY(1px) } }

.scn-ford-as-brook {
  background: linear-gradient(180deg, #1a1410 0%, #2a201a 40%, #3a2a1a 70%, #2a1a10 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-ford-as-brook .dark-bg {
  position: absolute; inset: 0 0 12% 0;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 0 0 30% 30%;
  animation: fab-dark 10s ease-in-out infinite alternate;
}
.scn-ford-as-brook .candle {
  position: absolute; top: 20%; left: 55%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #f0c080 0%, #b08040 70%, #804020 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 24px 12px rgba(200,100,30,.7), 0 0 48px 24px rgba(200,100,30,.3);
  animation: fab-candle 3s ease-in-out infinite alternate;
}
.scn-ford-as-brook .table {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 16%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-ford-as-brook .ford {
  position: absolute; bottom: 18%; left: 18%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0604 100%);
  border-radius: 45% 40% 30% 40% / 55% 50% 40% 50%;
  transform-origin: bottom center;
  animation: fab-figure 6s ease-in-out infinite;
}
.scn-ford-as-brook .falstaff {
  position: absolute; bottom: 12%; right: 12%; width: 30px; height: 56px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0604 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: fab-figure 7s ease-in-out infinite reverse;
}
.scn-ford-as-brook .letter {
  position: absolute; bottom: 26%; left: 40%; width: 24px; height: 14px;
  background: linear-gradient(135deg, #f5e6c8 0%, #c8a84a 100%);
  border-radius: 4% 4% 20% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  transform: rotate(5deg);
  animation: fab-letter 8s ease-in-out infinite alternate;
}
.scn-ford-as-brook .shadow {
  position: absolute; bottom: 0; left: 15%; right: 15%; height: 18%;
  background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%);
  border-radius: 30% 30% 0 0;
  animation: fab-shadow 5s ease-in-out infinite;
}
@keyframes fab-dark { 0%,100% { opacity: .9 } 50% { opacity: .7 } }
@keyframes fab-candle { 0% { opacity: .6; transform: scaleY(.95) } 50% { opacity: 1; transform: scaleY(1.05) } 100% { opacity: .7; transform: scaleY(.9) } }
@keyframes fab-figure { 0%,100% { transform: rotate(0) translateY(0) } 25% { transform: rotate(-1deg) translateY(-2px) } 75% { transform: rotate(2deg) translateY(-1px) } }
@keyframes fab-letter { 0% { transform: rotate(5deg) } 50% { transform: rotate(8deg) translateY(-1px) } 100% { transform: rotate(2deg) } }
@keyframes fab-shadow { 0%,100% { opacity: .4; transform: scaleY(1) } 50% { opacity: .6; transform: scaleY(1.1) } }

.scn-women-plan-revenge {
  background: 
    linear-gradient(180deg, #f8efe0 0%, #e0c8a0 50%, #c0a080 100%),
    radial-gradient(ellipse at 70% 60%, #fff5e0 0%, transparent 60%);
}
.scn-women-plan-revenge .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #f2e8d0 0%, #d4b88c 100%); 
  animation: wpr-shift 12s ease-in-out infinite alternate;
}
.scn-women-plan-revenge .table {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #8b6840 0%, #60462a 100%);
  border-radius: 4px; box-shadow: 0 6px 20px rgba(0,0,0,0.3);
}
.scn-women-plan-revenge .candle-glow {
  position: absolute; bottom: 23%; left: 42%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffe0a0 0%, #ffcc60 40%, transparent 70%);
  border-radius: 50%; 
  box-shadow: 0 0 40px 15px rgba(255,200,80,0.6), 0 0 80px 30px rgba(255,200,80,0.3);
  animation: wpr-flicker 3s ease-in-out infinite alternate;
}
.scn-women-plan-revenge .figure-left {
  position: absolute; bottom: 18%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; 
  animation: wpr-lean 4s ease-in-out infinite;
}
.scn-women-plan-revenge .figure-right {
  position: absolute; bottom: 18%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; 
  animation: wpr-lean 4s ease-in-out infinite reverse;
}
.scn-women-plan-revenge .shadow-left {
  position: absolute; bottom: 14%; left: 28%; width: 20px; height: 10px;
  background: rgba(0,0,0,0.25); border-radius: 50%; filter: blur(4px);
  animation: wpr-shadow-pulse 4s ease-in-out infinite;
}
.scn-women-plan-revenge .shadow-right {
  position: absolute; bottom: 14%; left: 53%; width: 20px; height: 10px;
  background: rgba(0,0,0,0.25); border-radius: 50%; filter: blur(4px);
  animation: wpr-shadow-pulse 4s ease-in-out infinite reverse;
}
.scn-women-plan-revenge .map {
  position: absolute; bottom: 18%; left: 40%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #d4c8a0 0%, #b8a878 100%);
  border-radius: 2px; transform: rotate(-5deg); box-shadow: 1px 1px 4px rgba(0,0,0,0.4);
  animation: wpr-map 6s ease-in-out infinite alternate;
}
.scn-women-plan-revenge .drapes {
  position: absolute; top: 0; bottom: 0; left: 0; width: 15%;
  background: linear-gradient(180deg, #8b6840 0%, #603820 100%);
  border-radius: 0 20% 20% 0 / 0 40% 40% 0; 
  box-shadow: inset -6px 0 12px rgba(0,0,0,0.3);
  animation: wpr-drape 15s ease-in-out infinite alternate;
}
@keyframes wpr-shift { 
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } 
}
@keyframes wpr-flicker { 
  0% { transform: scale(0.95); opacity: 0.7; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(1); opacity: 0.85; } 
}
@keyframes wpr-lean { 
  0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(5px) rotate(2deg); } 75% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } 
}
@keyframes wpr-shadow-pulse { 
  0% { transform: scale(1) translateX(0); opacity: 0.3; } 50% { transform: scale(1.2) translateX(4px); opacity: 0.5; } 100% { transform: scale(0.9) translateX(0); opacity: 0.25; } 
}
@keyframes wpr-map { 
  0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(0deg) scale(1.02); } 100% { transform: rotate(-3deg) scale(0.98); } 
}
@keyframes wpr-drape { 
  0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } 
}

.scn-falstaff-disguised-woman {
  background: 
    linear-gradient(135deg, #f0d8b0 0%, #d4b88c 50%, #b89870 100%),
    radial-gradient(ellipse at 30% 40%, #ffe8c0 0%, transparent 60%);
}
.scn-falstaff-disguised-woman .stage-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #e8d8b8 0%, #c8a878 100%);
  animation: fdw-pulse 15s ease-in-out infinite alternate;
}
.scn-falstaff-disguised-woman .falstaff {
  position: absolute; bottom: 15%; left: 50%; width: 50px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: fdw-tremble 2s ease-in-out infinite;
}
.scn-falstaff-disguised-woman .fairy-a {
  position: absolute; bottom: 30%; left: 20%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #d0a0d0 0%, #a070a0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fdw-flit 3s ease-in-out infinite;
}
.scn-falstaff-disguised-woman .fairy-b {
  position: absolute; bottom: 35%; left: 70%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #b0d0e0 0%, #7090a0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fdw-flit 2.5s ease-in-out infinite reverse;
  animation-delay: -1s;
}
.scn-falstaff-disguised-woman .fairy-c {
  position: absolute; bottom: 45%; left: 45%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #c0e0a0 0%, #80a060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fdw-flit 4s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-falstaff-disguised-woman .taper-1 {
  position: absolute; bottom: 28%; left: 25%; width: 4px; height: 16px;
  background: linear-gradient(180deg, #ffd060 0%, #c08040 100%);
  border-radius: 2px; box-shadow: 0 0 12px 4px rgba(255,200,80,0.6);
  animation: fdw-taper 2s ease-in-out infinite alternate;
}
.scn-falstaff-disguised-woman .taper-2 {
  position: absolute; bottom: 32%; left: 65%; width: 4px; height: 18px;
  background: linear-gradient(180deg, #ffd060 0%, #c08040 100%);
  border-radius: 2px; box-shadow: 0 0 12px 4px rgba(255,200,80,0.6);
  animation: fdw-taper 2.3s ease-in-out infinite alternate-reverse;
}
.scn-falstaff-disguised-woman .sparkles {
  position: absolute; top: 20%; left: 30%; width: 100px; height: 60px;
  background: radial-gradient(circle at 20% 30%, rgba(255,220,100,0.3) 0%, transparent 50%);
  filter: blur(8px);
  animation: fdw-sparkle 1.5s ease-in-out infinite alternate;
}
@keyframes fdw-pulse { 
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } 
}
@keyframes fdw-tremble { 
  0% { transform: translateX(-50%) rotate(-1deg); } 25% { transform: translateX(-48%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(-2deg); } 75% { transform: translateX(-52%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(1deg); } 
}
@keyframes fdw-flit { 
  0% { transform: translateY(0) translateX(0) rotate(0deg); } 33% { transform: translateY(-8px) translateX(6px) rotate(10deg); } 66% { transform: translateY(-4px) translateX(-4px) rotate(-8deg); } 100% { transform: translateY(0) translateX(0) rotate(0deg); } 
}
@keyframes fdw-taper { 
  0% { transform: scaleY(0.95); opacity: 0.8; } 50% { transform: scaleY(1.1); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.9; } 
}
@keyframes fdw-sparkle { 
  0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(0.9); } 
}

.scn-final-plot-herne-oak {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2040 40%, #3a2a4a 70%, #1a1a2e 100%),
    radial-gradient(ellipse at 60% 80%, #4a3050 0%, transparent 50%);
}
.scn-final-plot-herne-oak .room-dark {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #0e0e1a 0%, #1a1a2e 100%);
  animation: fph-dark 20s ease-in-out infinite alternate;
}
.scn-final-plot-herne-oak .door-arch {
  position: absolute; bottom: 10%; left: 40%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #2a2040 0%, #0e0e1a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0; 
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}
.scn-final-plot-herne-oak .figure-falstaff {
  position: absolute; bottom: 15%; left: 30%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2e1a1a 0%, #120a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fph-bow 8s ease-in-out infinite;
}
.scn-final-plot-herne-oak .figure-ford {
  position: absolute; bottom: 14%; left: 48%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #1a2e1a 0%, #0a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fph-stand 10s ease-in-out infinite alternate;
}
.scn-final-plot-herne-oak .figure-page {
  position: absolute; bottom: 13%; left: 63%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fph-stand 10s ease-in-out infinite alternate-reverse;
}
.scn-final-plot-herne-oak .candle {
  position: absolute; bottom: 20%; left: 50%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ffd060 0%, #c08040 100%);
  border-radius: 2px; box-shadow: 0 0 8px 2px rgba(255,200,80,0.3);
  transform: translateX(-50%);
  animation: fph-candle 3s ease-in-out infinite alternate;
}
.scn-final-plot-herne-oak .candle-glow {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 40px;
  transform: translate(-50%, -30%);
  background: radial-gradient(circle, rgba(255,200,80,0.4) 0%, transparent 60%);
  border-radius: 50%; filter: blur(12px);
  animation: fph-glow 3s ease-in-out infinite alternate;
}
.scn-final-plot-herne-oak .shadow {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 8%;
  background: rgba(0,0,0,0.5); border-radius: 30%; filter: blur(10px);
  animation: fph-shadow 15s ease-in-out infinite;
}
@keyframes fph-dark { 
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } 
}
@keyframes fph-bow { 
  0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(-5px) rotate(-15deg); } 60% { transform: translateX(-5px) rotate(-10deg); } 100% { transform: translateX(0) rotate(0deg); } 
}
@keyframes fph-stand { 
  0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } 
}
@keyframes fph-candle { 
  0% { transform: translateX(-50%) scaleY(0.95); opacity: 0.7; } 50% { transform: translateX(-50%) scaleY(1.1); opacity: 1; } 100% { transform: translateX(-50%) scaleY(0.98); opacity: 0.8; } 
}
@keyframes fph-glow { 
  0% { opacity: 0.3; transform: translate(-50%, -30%) scale(0.9); } 50% { opacity: 0.6; transform: translate(-50%, -30%) scale(1.1); } 100% { opacity: 0.4; transform: translate(-50%, -30%) scale(1); } 
}
@keyframes fph-shadow { 
  0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(10px) scaleX(1.1); } 100% { transform: translateX(0) scaleX(1); } 
}

.scn-fenton-plot-marriage {
  background: 
    linear-gradient(180deg, #c0b8a8 0%, #a09080 50%, #807060 100%),
    radial-gradient(ellipse at 40% 30%, #e0d8c8 0%, transparent 70%);
}
.scn-fenton-plot-marriage .room-dim {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #b8a898 0%, #908070 100%);
  animation: fpm-fade 20s ease-in-out infinite alternate;
}
.scn-fenton-plot-marriage .window {
  position: absolute; top: 10%; left: 20%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  border: 4px solid #605040;
}
.scn-fenton-plot-marriage .moonlight {
  position: absolute; top: 15%; left: 25%; width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(180,200,240,0.15) 0%, transparent 70%);
  border-radius: 50%; filter: blur(30px);
  animation: fpm-moon 25s linear infinite;
}
.scn-fenton-plot-marriage .figure-fenton {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fpm-gentle 10s ease-in-out infinite;
}
.scn-fenton-plot-marriage .figure-anne {
  position: absolute; bottom: 22%; left: 55%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fpm-gentle 10s ease-in-out infinite reverse;
}
.scn-fenton-plot-marriage .table {
  position: absolute; bottom: 14%; left: 30%; right: 30%; height: 6%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 3px; box-shadow: 0 3px 10px rgba(0,0,0,0.3);
}
.scn-fenton-plot-marriage .candle-small {
  position: absolute; bottom: 20%; left: 50%; width: 5px; height: 16px;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 100%);
  border-radius: 2px; box-shadow: 0 0 10px 3px rgba(255,200,80,0.3);
  transform: translateX(-50%);
  animation: fpm-candle 4s ease-in-out infinite alternate;
}
.scn-fenton-plot-marriage .curtains {
  position: absolute; top: 0; bottom: 0; left: 0; width: 12%;
  background: linear-gradient(180deg, #605040 0%, #403020 100%);
  border-radius: 0 30% 30% 0 / 0 50% 50% 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.2);
  animation: fpm-curtain 30s ease-in-out infinite alternate;
}
@keyframes fpm-fade { 
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } 
}
@keyframes fpm-moon { 
  0% { transform: translateX(0) scale(1); opacity: 0.3; } 50% { transform: translateX(10px) scale(1.05); opacity: 0.4; } 100% { transform: translateX(0) scale(1); opacity: 0.3; } 
}
@keyframes fpm-gentle { 
  0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-2px) rotate(1deg); } 66% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } 
}
@keyframes fpm-candle { 
  0% { transform: translateX(-50%) scaleY(0.9); opacity: 0.6; } 50% { transform: translateX(-50%) scaleY(1.1); opacity: 0.9; } 100% { transform: translateX(-50%) scaleY(1); opacity: 0.7; } 
}
@keyframes fpm-curtain { 
  0% { transform: translateX(0); } 50% { transform: translateX(-6px); } 100% { transform: translateX(0); } 
}

/* shallow-falstaff-conflict: tense sunlit */
.scn-shallow-falstaff-conflict {
  background:
    linear-gradient(180deg, #a0c4ff 0%, #f9e4b5 40%, #f7c948 70%, #d4a843 100%),
    radial-gradient(ellipse at 30% 60%, rgba(255,200,100,0.3) 0%, transparent 70%);
}
.scn-shallow-falstaff-conflict .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, rgba(160,196,255,0.4) 0%, transparent 100%);
  animation: sfC-sky 10s ease-in-out infinite alternate;
}
.scn-shallow-falstaff-conflict .sun {
  position: absolute; top: 12%; right: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8e7 0%, #f9e4b5 40%, transparent 70%);
  border-radius: 50%;
  animation: sfC-sun 8s ease-in-out infinite alternate;
}
.scn-shallow-falstaff-conflict .house {
  position: absolute; bottom: 30%; left: 15%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #c8a882 0%, #a0764a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: sfC-house 6s ease-in-out infinite;
}
.scn-shallow-falstaff-conflict .shallow {
  position: absolute; bottom: 35%; left: 28%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #c8553d 0%, #7a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sfC-hand 3s ease-in-out infinite;
}
.scn-shallow-falstaff-conflict .falstaff {
  position: absolute; bottom: 33%; right: 25%; width: 36px; height: 64px;
  background: linear-gradient(180deg, #3a5a4a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sfC-stance 4s ease-in-out infinite;
}
.scn-shallow-falstaff-conflict .gate {
  position: absolute; bottom: 30%; left: 38%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
  animation: sfC-gate 9s ease-in-out infinite alternate;
}
.scn-shallow-falstaff-conflict .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7a6a3a 0%, #4a3a1a 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.3);
}
.scn-shallow-falstaff-conflict .cloud {
  position: absolute; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
}
.scn-shallow-falstaff-conflict .c1 { top: 16%; left: 10%; animation: sfC-drift 30s linear infinite; }
.scn-shallow-falstaff-conflict .c2 { top: 22%; right: 5%; width: 50px; height: 12px; animation: sfC-drift 45s linear infinite reverse; }
@keyframes sfC-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes sfC-sun { 0% { transform: scale(0.95); box-shadow: 0 0 30px 10px #f9e4b5 } 50% { transform: scale(1.05); box-shadow: 0 0 50px 20px #fff8e7 } 100% { transform: scale(0.98); box-shadow: 0 0 35px 15px #f9e4b5 } }
@keyframes sfC-house { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes sfC-hand { 0% { transform: rotate(-10deg) } 33% { transform: rotate(5deg) } 66% { transform: rotate(-5deg) } 100% { transform: rotate(-10deg) } }
@keyframes sfC-stance { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes sfC-gate { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.9) } 100% { transform: scaleY(1) } }
@keyframes sfC-drift { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }

/* item-coat-of-arms: warm sunlit */
.scn-item-coat-of-arms {
  background:
    linear-gradient(180deg, #ffeab0 0%, #f5d080 30%, #c8a050 60%, #806030 100%),
    radial-gradient(ellipse at 50% 80%, #ffeab0 0%, transparent 80%);
}
.scn-item-coat-of-arms .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, rgba(255,234,176,0.4) 0%, transparent 100%);
  animation: itC-sky 12s ease-in-out infinite alternate;
}
.scn-item-coat-of-arms .tree {
  position: absolute; bottom: 20%; left: 8%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a3a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  box-shadow: -10px 0 20px rgba(0,0,0,0.2);
  animation: itC-tree 20s ease-in-out infinite alternate;
}
.scn-item-coat-of-arms .shield {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 90px;
  background: linear-gradient(180deg, #d4a030 0%, #b08020 100%);
  border-radius: 20% 20% 50% 50%;
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: itC-shield 9s ease-in-out infinite alternate;
}
.scn-item-coat-of-arms .cross-v {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%);
  width: 16px; height: 40px;
  background: #5e1a1d; /* burgundy */
  box-shadow: 0 0 8px rgba(94,26,29,0.3);
  animation: itC-cross 9s ease-in-out infinite alternate;
}
.scn-item-coat-of-arms .cross-h {
  position: absolute; bottom: 52%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 16px;
  background: #5e1a1d;
  box-shadow: 0 0 8px rgba(94,26,29,0.3);
  animation: itC-cross 9s ease-in-out infinite alternate;
}
.scn-item-coat-of-arms .shallow-arm {
  position: absolute; bottom: 28%; left: 20%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #c8553d 0%, #7a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: itC-point 4s ease-in-out infinite;
}
.scn-item-coat-of-arms .slender {
  position: absolute; bottom: 28%; right: 22%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: itC-slender 6s ease-in-out infinite;
}
.scn-item-coat-of-arms .cloud {
  position: absolute; width: 60px; height: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(5px);
}
.scn-item-coat-of-arms .c1 { top: 12%; left: 20%; animation: itC-drift 40s linear infinite; }
.scn-item-coat-of-arms .c2 { top: 18%; right: 10%; width: 45px; height: 10px; animation: itC-drift 55s linear infinite reverse; }
@keyframes itC-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes itC-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes itC-shield { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes itC-cross { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes itC-point { 0% { transform: rotate(-15deg) } 33% { transform: rotate(5deg) } 66% { transform: rotate(-10deg) } 100% { transform: rotate(-15deg) } }
@keyframes itC-slender { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes itC-drift { 0% { transform: translateX(0) } 100% { transform: translateX(100vw) } }

/* page-welcomes-gentlemen: calm sunlit */
.scn-page-welcomes-gentlemen {
  background:
    linear-gradient(180deg, #d4e8ff 0%, #fce4c0 30%, #e8c088 60%, #b89050 100%),
    radial-gradient(ellipse at 40% 70%, #fce4c0 0%, transparent 80%);
}
.scn-page-welcomes-gentlemen .sky {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, rgba(212,232,255,0.3) 0%, transparent 100%);
  animation: pwG-sky 15s ease-in-out infinite alternate;
}
.scn-page-welcomes-gentlemen .doorway {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 120px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 10% 10% / 70% 70% 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.4);
  animation: pwG-doorway 12s ease-in-out infinite alternate;
}
.scn-page-welcomes-gentlemen .page {
  position: absolute; bottom: 25%; left: 42%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #6a8a5a 0%, #3a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pwG-greeting 8s ease-in-out infinite;
}
.scn-page-welcomes-gentlemen .shallow {
  position: absolute; bottom: 28%; right: 30%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #c8553d 0%, #7a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pwG-bow 10s ease-in-out infinite;
}
.scn-page-welcomes-gentlemen .slender {
  position: absolute; bottom: 28%; right: 18%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pwG-slender 12s ease-in-out infinite;
}
.scn-page-welcomes-gentlemen .venison {
  position: absolute; bottom: 22%; left: 55%; width: 30px; height: 24px;
  background: linear-gradient(180deg, #b87878 0%, #8a5050 60%);
  border-radius: 40% 60% 30% 50%;
  transform: rotate(-10deg);
  animation: pwG-deer 14s ease-in-out infinite alternate;
}
.scn-page-welcomes-gentlemen .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8a7a4a 0%, #5a4a2a 100%);
  border-radius: 60% 40% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-page-welcomes-gentlemen .cloud {
  position: absolute; width: 65px; height: 15px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(5px);
}
.scn-page-welcomes-gentlemen .c1 { top: 10%; left: 15%; animation: pwG-drift 50s linear infinite; }
.scn-page-welcomes-gentlemen .c2 { top: 16%; right: 8%; width: 40px; height: 10px; animation: pwG-drift 65s linear infinite reverse; }
@keyframes pwG-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes pwG-doorway { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.01) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes pwG-greeting { 0% { transform: rotate(-5deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-5deg) } }
@keyframes pwG-bow { 0% { transform: rotate(0) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(0) } }
@keyframes pwG-slender { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes pwG-deer { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(-10deg) } }
@keyframes pwG-drift { 0% { transform: translateX(0) } 100% { transform: translateX(110vw) } }

/* falstaff-enters-confrontation: tense sunlit */
.scn-falstaff-enters-confrontation {
  background:
    linear-gradient(180deg, #a0c4ff 0%, #f9e4b5 40%, #e8b040 70%, #c89830 100%),
    radial-gradient(ellipse at 60% 50%, rgba(255,180,80,0.3) 0%, transparent 70%);
}
.scn-falstaff-enters-confrontation .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, rgba(160,196,255,0.3) 0%, transparent 100%);
  animation: feC-sky 8s ease-in-out infinite alternate;
}
.scn-falstaff-enters-confrontation .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a6a3a 0%, #4a3a1a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.3);
}
.scn-falstaff-enters-confrontation .falstaff {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 44px; height: 72px;
  background: linear-gradient(180deg, #3a5a4a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 12px 24px rgba(0,0,0,0.5);
  animation: feC-enter 5s ease-in-out infinite;
}
.scn-falstaff-enters-confrontation .shallow {
  position: absolute; bottom: 30%; left: 20%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #c8553d 0%, #7a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: feC-recoil 3s ease-in-out infinite;
}
.scn-falstaff-enters-confrontation .evans {
  position: absolute; bottom: 30%; right: 22%; width: 18px; height: 46px;
  background: linear-gradient(180deg, #5a6a7a 0%, #2a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: feC-mediate 6s ease-in-out infinite;
}
.scn-falstaff-enters-confrontation .cloud {
  position: absolute; width: 60px; height: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
}
.scn-falstaff-enters-confrontation .c1 { top: 14%; left: 12%; animation: feC-drift 25s linear infinite; }
.scn-falstaff-enters-confrontation .c2 { top: 20%; right: 6%; width: 40px; height: 10px; animation: feC-drift 35s linear infinite reverse; }
@keyframes feC-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes feC-enter { 0% { transform: translateX(-50%) scale(0.9) } 50% { transform: translateX(-45%) scale(1.05) } 100% { transform: translateX(-50%) scale(0.95) } }
@keyframes feC-recoil { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(-8px) rotate(4deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes feC-mediate { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes feC-drift { 0% { transform: translateX(0) } 100% { transform: translateX(130vw) } }

/* ford-rages-alone – dim interior, raging figure */
.scn-ford-rages-alone { background: linear-gradient(180deg, #1a1a3e 0%, #0d0d2b 100%), radial-gradient(circle at 25% 85%, #4a3020 0%, transparent 65%); }
.scn-ford-rages-alone .room-bg   { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a4e 0%, #0a0a1a 100%); box-shadow:inset 0 0 40px rgba(0,0,0,.8); }
.scn-ford-rages-alone .window-pane { position:absolute; top:5%; left:15%; width:30%; height:25%; background: radial-gradient(circle at 50% 50%, #4a3a6e 0%, #1a1a3e 90%); border:2px solid #3a2a4a; border-radius:8% 8% 0 0; opacity:.6; animation:fra-window 12s ease-in-out infinite; }
.scn-ford-rages-alone .figure   { position:absolute; bottom:20%; left:45%; width:22px; height:44px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation:fra-pace 5s ease-in-out infinite; }
.scn-ford-rages-alone .basket   { position:absolute; bottom:15%; left:60%; width:55px; height:40px; background: linear-gradient(180deg, #5e3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 20% 20% / 30% 30% 50% 50%; animation:fra-bob 8s ease-in-out infinite; }
.scn-ford-rages-alone .linen    { position:absolute; bottom:22%; left:61%; width:48px; height:12px; background: linear-gradient(120deg, #d4c8b8 0%, #a89888 100%); border-radius:60% 30% 40% 60% / 70% 60% 40% 50%; transform:rotate(8deg); animation:fra-rustle 14s ease-in-out infinite alternate; }
.scn-ford-rages-alone .lantern  { position:absolute; top:30%; left:20%; width:8px; height:8px; background: radial-gradient(circle, #f5c870 0%, #b08040 80%); border-radius:50%; box-shadow: 0 0 12px 3px #c48040, 0 0 24px 6px rgba(196,128,64,.4); animation:fra-glow 3s ease-in-out infinite alternate; }
.scn-ford-rages-alone .shadow   { position:absolute; bottom:35%; left:45%; width:30px; height:8px; background: rgba(0,0,0,.6); border-radius:50% 60% 50% 50% / 80% 80% 60% 60%; animation:fra-shift 5s ease-in-out infinite; }
@keyframes fra-pace   { 0% { transform: translateX(-10px) rotate(-2deg); } 50% { transform: translateX(12px) rotate(2deg); } 100% { transform: translateX(-10px) rotate(-2deg); } }
@keyframes fra-bob    { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes fra-window { 0% { opacity:.5; } 50% { opacity:.7; } 100% { opacity:.4; } }
@keyframes fra-glow   { 0% { box-shadow: 0 0 8px 2px #c48040, 0 0 16px 4px rgba(196,128,64,.3); } 50% { box-shadow: 0 0 18px 6px #f5c870, 0 0 32px 10px rgba(245,200,112,.5); } 100% { box-shadow: 0 0 12px 3px #c48040, 0 0 22px 6px rgba(196,128,64,.35); } }
@keyframes fra-rustle { 0% { transform: rotate(8deg) translateX(0); } 50% { transform: rotate(12deg) translateX(-3px); } 100% { transform: rotate(5deg) translateX(2px); } }
@keyframes fra-shift  { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(14px) scaleX(.8); } 100% { transform: translateX(0) scaleX(1); } }

/* caius-evans-duel-foiled – sunny Thames, basket dumping */
.scn-caius-evans-duel-foiled { background: linear-gradient(180deg, #c8e0f0 0%, #88b8d8 60%), radial-gradient(circle at 80% 20%, #fff8c0 0%, transparent 40%); }
.scn-caius-evans-duel-foiled .sky      { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #e0f0ff 0%, #a0c8e8 100%); animation:cedf-sky 30s linear infinite alternate; background-position:0 0; background-size:100% 100%; }
.scn-caius-evans-duel-foiled .sun      { position:absolute; top:8%; right:12%; width:30px; height:30px; background: radial-gradient(circle, #fff8a0 0%, #ffd060 70%); border-radius:50%; box-shadow:0 0 60px 20px #ffe090; animation:cedf-sunpulse 8s ease-in-out infinite; }
.scn-caius-evans-duel-foiled .river    { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4080c0 0%, #205090 100%); animation:cedf-flow 6s ease-in-out infinite alternate; }
.scn-caius-evans-duel-foiled .bank     { position:absolute; bottom:25%; left:0; right:0; height:12%; background: linear-gradient(180deg, #609040 0%, #305020 100%); border-radius:50% 60% 0 0 / 60% 70% 0 0; }
.scn-caius-evans-duel-foiled .basket   { position:absolute; bottom:22%; left:40%; width:45px; height:35px; background: linear-gradient(180deg, #a0704a 0%, #603020 100%); border-radius:12% 12% 20% 20% / 25% 25% 45% 45%; transform-origin:40% 50%; animation:cedf-swing 1.6s ease-in-out infinite; }
.scn-caius-evans-duel-foiled .dumper   { position:absolute; bottom:18%; left:50%; width:16px; height:32px; background: linear-gradient(180deg, #4a4030 0%, #2a2010 100%); border-radius:40% 40% 30% 30% / 55% 55% 30% 30%; transform-origin: bottom center; animation:cedf-dump 1.6s ease-in-out infinite; }
.scn-caius-evans-duel-foiled .splash   { position:absolute; bottom:10%; left:55%; width:50px; height:12px; background: radial-gradient(circle at 50% 50%, rgba(255,255,255,.9) 0%, rgba(200,220,255,.2) 70%); border-radius:50% 30% 20% 50%; filter:blur(2px); animation:cedf-splash 1.6s ease-in-out infinite; }
.scn-caius-evans-duel-foiled .cloud-a  { position:absolute; top:12%; left:5%; width:70px; height:16px; background: rgba(255,255,255,.7); border-radius:50%; filter:blur(8px); animation:cedf-drift 40s linear infinite; animation-delay: -15s; }
@keyframes cedf-sky      { 0% { background-position:0 0; } 100% { background-position:20% 0; } }
@keyframes cedf-sunpulse { 0%,100% { transform:scale(1); opacity:1; } 50% { transform:scale(1.15); opacity:.9; } }
@keyframes cedf-flow     { 0% { background-position:0 0; } 50% { background-position:-10% 0; } 100% { background-position:10% 0; } }
@keyframes cedf-swing    { 0%,100% { transform:rotate(-8deg); } 50% { transform:rotate(8deg); } }
@keyframes cedf-dump     { 0% { transform:rotate(0deg) translateX(0); } 50% { transform:rotate(15deg) translateX(-4px); } 100% { transform:rotate(0deg) translateX(0); } }
@keyframes cedf-splash   { 0%,100% { transform:scale(1); opacity:.8; } 50% { transform:scale(1.8) translateY(4px); opacity:1; } }
@keyframes cedf-drift    { 0% { transform:translateX(-20px); } 100% { transform:translateX(120px); } }

/* ford-invites-dinner – calm sunlit planning table, overhead */
.scn-ford-invites-dinner { background: radial-gradient(circle at 50% 0%, #e8e0c8 0%, #a89878 100%), linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%); }
.scn-ford-invites-dinner .tabletop { position:absolute; inset:20% 10% 20% 10%; background: linear-gradient(135deg, #c8a85a 0%, #98682a 100%); border-radius:8px; box-shadow:inset 0 0 20px rgba(0,0,0,.3); }
.scn-ford-invites-dinner .plate    { position:absolute; top:35%; left:30%; width:25%; height:18%; background: radial-gradient(circle at 40% 40%, #f8f0e0 0%, #d0c8a8 100%); border-radius:50%; box-shadow: 0 2px 8px rgba(0,0,0,.15); animation:fid-plate 18s ease-in-out infinite; }
.scn-ford-invites-dinner .cup      { position:absolute; top:32%; right:25%; width:12%; height:22%; background: linear-gradient(180deg, #b0a080 0%, #70684a 100%); border-radius:25% 25% 45% 45% / 30% 30% 60% 60%; box-shadow: 2px 4px 10px rgba(0,0,0,.2); animation:fid-cup 22s ease-in-out infinite; }
.scn-ford-invites-dinner .hand-l   { position:absolute; bottom:40%; left:55%; width:28px; height:16px; background: linear-gradient(180deg, #d4a888 0%, #b07858 100%); border-radius:60% 30% 30% 50% / 70% 40% 40% 60%; transform-origin: right center; animation:fid-point 14s ease-in-out infinite; }
.scn-ford-invites-dinner .hand-r   { position:absolute; bottom:42%; left:18%; width:26px; height:15px; background: linear-gradient(180deg, #c49878 0%, #a06840 100%); border-radius:40% 60% 40% 30% / 50% 70% 40% 60%; transform-origin: left center; animation:fid-tap 12s ease-in-out infinite; }
.scn-ford-invites-dinner .map-doc  { position:absolute; top:50%; left:40%; width:20%; height:15%; background: linear-gradient(105deg, #f0e8c8 0%, #d8c8a0 100%); border-radius:2px; border:1px solid #b09868; transform:rotate(-5deg); }
.scn-ford-invites-dinner .leaf     { position:absolute; top:8%; left:8%; width:12px; height:8px; background: linear-gradient(120deg, #80a050 0%, #406828 100%); border-radius:50% 20% 50% 20% / 40% 60% 40% 60%; animation:fid-drift 30s linear infinite; }
@keyframes fid-plate  { 0% { transform:translate(0,0) rotate(0deg); } 50% { transform:translate(3px,2px) rotate(2deg); } 100% { transform:translate(0,0) rotate(0deg); } }
@keyframes fid-cup    { 0% { transform:translate(0,0) rotate(0deg); } 50% { transform:translate(-4px,-1px) rotate(-3deg); } 100% { transform:translate(0,0) rotate(0deg); } }
@keyframes fid-point  { 0% { transform:rotate(0deg) translateY(0); } 50% { transform:rotate(8deg) translateY(-2px); } 100% { transform:rotate(0deg) translateY(0); } }
@keyframes fid-tap    { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(6px) rotate(4deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes fid-drift  { 0% { transform:translate(0,0) rotate(0deg); } 100% { transform:translate(10vw,5vh) rotate(12deg); } }

/* item-basket-linen – bright interior, overflowing basket */
.scn-item-basket-linen { background: linear-gradient(180deg, #fff8e8 0%, #f8e8c8 100%), radial-gradient(circle at 30% 10%, #ffe8b0 0%, transparent 55%); }
.scn-item-basket-linen .basket    { position:absolute; bottom:18%; left:35%; width:60%; height:40%; background: linear-gradient(180deg, #b8885a 0%, #7a5828 100%); border-radius:15% 15% 25% 25% / 30% 30% 50% 50%; box-shadow:inset 0 4px 10px rgba(0,0,0,.2); }
.scn-item-basket-linen .fold-1    { position:absolute; bottom:30%; left:38%; width:52%; height:18%; background: linear-gradient(150deg, #faf0e0 0%, #d8c8b0 100%); border-radius:70% 30% 40% 60% / 50% 60% 40% 60%; transform:rotate(12deg); animation:ibl-shift1 7s ease-in-out infinite alternate; }
.scn-item-basket-linen .fold-2    { position:absolute; bottom:25%; left:42%; width:48%; height:14%; background: linear-gradient(170deg, #f2e8d8 0%, #d0b898 100%); border-radius:40% 70% 30% 50% / 60% 50% 40% 60%; transform:rotate(-8deg); animation:ibl-shift2 9s ease-in-out infinite; }
.scn-item-basket-linen .fold-3    { position:absolute; bottom:22%; left:50%; width:40%; height:16%; background: linear-gradient(190deg, #ede0c8 0%, #c8b080 100%); border-radius:30% 40% 70% 40% / 50% 60% 50% 60%; transform:rotate(5deg); animation:ibl-shift3 11s ease-in-out infinite alternate; }
.scn-item-basket-linen .hand      { position:absolute; bottom:38%; left:30%; width:20px; height:28px; background: linear-gradient(180deg, #d4a888 0%, #b07858 100%); border-radius:50% 40% 30% 50% / 60% 40% 30% 60%; transform-origin: top right; animation:ibl-lift 4s ease-in-out infinite; }
.scn-item-basket-linen .light-ray { position:absolute; top:0; left:20%; width:8%; height:100%; background: linear-gradient(180deg, rgba(255,240,200,.5) 0%, rgba(255,220,120,0) 100%); animation:ibl-beam 12s ease-in-out infinite alternate; }
@keyframes ibl-shift1 { 0% { transform:rotate(12deg) translateX(0); } 50% { transform:rotate(18deg) translateX(-4px); } 100% { transform:rotate(8deg) translateX(3px); } }
@keyframes ibl-shift2 { 0%,100% { transform:rotate(-8deg) scale(1); } 50% { transform:rotate(-3deg) scale(1.05) translateY(-2px); } }
@keyframes ibl-shift3 { 0% { transform:rotate(5deg) translateY(0); } 50% { transform:rotate(2deg) translateY(-3px); } 100% { transform:rotate(7deg) translateY(1px); } }
@keyframes ibl-lift   { 0%,100% { transform:rotate(0deg) translateY(0); } 50% { transform:rotate(-15deg) translateY(-8px); } }
@keyframes ibl-beam   { 0% { opacity:.2; transform:translateX(0); } 50% { opacity:.6; transform:translateX(12px); } 100% { opacity:.1; transform:translateX(-6px); } }
/* end per-scene blocks */
