/* 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-dumain-sonnet {
  background: linear-gradient(180deg, #f9e6c0 0%, #e8c88a 30%, #d4a65a 60%, #b88a3a 100%),
              radial-gradient(ellipse at 60% 30%, #fff4d6 0%, transparent 60%);
}
.scn-dumain-sonnet .sky-glow {
  position: absolute; inset: 0; background: linear-gradient(180deg, #fff8e7 0%, transparent 60%);
  animation: ds-glow 6s ease-in-out infinite alternate;
}
.scn-dumain-sonnet .sun {
  position: absolute; top: 10%; left: 60%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ffd670 0%, #f0a030 40%, transparent 60%);
  border-radius: 50%; box-shadow: 0 0 60px 20px #f0a030;
  animation: ds-sun 10s ease-in-out infinite;
}
.scn-dumain-sonnet .vines {
  position: absolute; top: 20%; left: 10%; width: 200px; height: 150px;
  background: radial-gradient(ellipse at 30% 0, #8a5a3a 0%, transparent 50%),
              radial-gradient(ellipse at 70% 0, #7a4a2a 0%, transparent 50%);
  filter: blur(3px); opacity: 0.4;
  animation: ds-vines 12s ease-in-out infinite alternate;
}
.scn-dumain-sonnet .figure {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ds-figure 4s ease-in-out infinite;
}
.scn-dumain-sonnet .paper {
  position: absolute; bottom: 38%; left: 38%; width: 30px; height: 40px;
  background: linear-gradient(135deg, #f5e6c0 0%, #e0c080 100%);
  border-radius: 4px; box-shadow: 2px 3px 6px rgba(0,0,0,0.2);
  transform: rotate(8deg);
  animation: ds-paper 5s ease-in-out infinite alternate;
}
.scn-dumain-sonnet .quill {
  position: absolute; bottom: 42%; left: 42%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #c0a080 0%, #806040 100%);
  border-radius: 2px; transform: rotate(-30deg);
  animation: ds-quill 3s ease-in-out infinite;
}
.scn-dumain-sonnet .amber-hair {
  position: absolute; bottom: 60%; left: 34%; width: 18px; height: 12px;
  background: radial-gradient(ellipse at 50% 100%, #b8860b 0%, #d4a030 60%, transparent 100%);
  border-radius: 50%; filter: blur(2px);
  animation: ds-hair 4s ease-in-out infinite alternate;
}
@keyframes ds-glow {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ds-sun {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.05) rotate(5deg); }
  100% { transform: scale(0.95) rotate(-3deg); }
}
@keyframes ds-vines {
  0% { transform: translateY(0) scale(1); }
  100% { transform: translateY(-8px) scale(1.03); }
}
@keyframes ds-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ds-paper {
  0% { transform: rotate(6deg) translateY(0); }
  100% { transform: rotate(10deg) translateY(-2px); }
}
@keyframes ds-quill {
  0% { transform: rotate(-28deg) translateX(0); }
  50% { transform: rotate(-32deg) translateX(2px); }
  100% { transform: rotate(-28deg) translateX(0); }
}
@keyframes ds-hair {
  0% { opacity: 0.6; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.1); }
}

.scn-biron-reveals {
  background: linear-gradient(180deg, #ffe8b0 0%, #f0c060 40%, #d0a040 80%, #b08030 100%),
              radial-gradient(ellipse at 50% 80%, #ffd070 0%, transparent 60%);
}
.scn-biron-reveals .stage {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #c8a04a 0%, #a08030 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-biron-reveals .curtain {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(135deg, #8a2a2a 0%, #b04040 30%, #a03030 70%, #702020 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: bri-curtain 6s ease-in-out infinite alternate;
}
.scn-biron-reveals .figure-left {
  position: absolute; bottom: 30%; left: 25%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: bri-figL 3s ease-in-out infinite;
}
.scn-biron-reveals .figure-right {
  position: absolute; bottom: 30%; right: 25%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: bri-figR 3s ease-in-out infinite 1.5s;
}
.scn-biron-reveals .arm-pointing {
  position: absolute; bottom: 45%; left: 30%; width: 30px; height: 6px;
  background: linear-gradient(90deg, #6a4a3a 0%, #8a6a4a 100%);
  border-radius: 3px; transform-origin: left center; transform: rotate(-20deg);
  animation: bri-arm 2s ease-in-out infinite alternate;
}
.scn-biron-reveals .shadow-stripes {
  position: absolute; inset: 0; 
  background: repeating-linear-gradient(90deg, rgba(0,0,0,0.05) 0px, rgba(0,0,0,0.05) 20px, transparent 20px, transparent 40px);
  animation: bri-stripes 10s linear infinite;
}
.scn-biron-reveals .confetti {
  position: absolute; top: 20%; left: 20%; width: 8px; height: 8px;
  background: #c8553d; border-radius: 50%; box-shadow: 20px 30px 0 #c8553d, 40px 10px 0 #c8553d, 60px 50px 0 #c8553d, 80px 25px 0 #c8553d;
  animation: bri-confetti 4s ease-in-out infinite;
}
@keyframes bri-curtain {
  0% { transform: translateY(0); }
  100% { transform: translateY(-5px); }
}
@keyframes bri-figL {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bri-figR {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bri-arm {
  0% { transform: rotate(-15deg) scaleX(1); }
  100% { transform: rotate(-25deg) scaleX(1.2); }
}
@keyframes bri-stripes {
  0% { transform: translateX(0); }
  100% { transform: translateX(-40px); }
}
@keyframes bri-confetti {
  0%,100% { transform: translateY(0) rotate(0deg); opacity:0; }
  50% { transform: translateY(-20px) rotate(180deg); opacity:1; }
}

.scn-biron-hypocrisy {
  background: linear-gradient(180deg, #ffe0a0 0%, #f0c060 40%, #d0a040 100%),
              radial-gradient(ellipse at 70% 40%, #ffd080 0%, transparent 70%);
}
.scn-biron-hypocrisy .bg-bright {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 60% 30%, rgba(255,200,100,0.4) 0%, transparent 60%);
  animation: bh-bright 5s ease-in-out infinite alternate;
}
.scn-biron-hypocrisy .pillar {
  position: absolute; bottom: 0; left: 20%; width: 20px; height: 80%;
  background: linear-gradient(90deg, #b09060, #d0b080, #a08050);
  border-radius: 4px; box-shadow: 2px 0 8px rgba(0,0,0,0.2);
}
.scn-biron-hypocrisy .figure-whipping {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bh-fig 3s ease-in-out infinite;
}
.scn-biron-hypocrisy .whip {
  position: absolute; bottom: 40%; left: 40%; width: 40px; height: 4px;
  background: linear-gradient(90deg, #a08050 0%, #c0a060 60%, transparent 100%);
  border-radius: 2px; transform-origin: left center; transform: rotate(-30deg);
  animation: bh-whip 1.5s ease-in-out infinite;
}
.scn-biron-hypocrisy .mask-fall {
  position: absolute; bottom: 45%; left: 35%; width: 20px; height: 16px;
  background: radial-gradient(ellipse at 50% 50%, #e8d0a0 0%, #c8a060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: bh-mask 2s ease-in-out infinite alternate;
}
.scn-biron-hypocrisy .sparkles {
  position: absolute; top: 30%; left: 30%; width: 6px; height: 6px;
  background: #ffd060; border-radius: 50%;
  box-shadow: 15px 20px 0 #ffd060, 30px 10px 0 #ffd060, 45px 25px 0 #ffd060, 60px 15px 0 #ffd060;
  animation: bh-spark 4s ease-in-out infinite;
}
@keyframes bh-bright {
  0% { opacity: 0.6; }
  100% { opacity: 1; }
}
@keyframes bh-fig {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes bh-whip {
  0% { transform: rotate(-25deg) scaleX(1); }
  50% { transform: rotate(-35deg) scaleX(1.3); }
  100% { transform: rotate(-25deg) scaleX(1); }
}
@keyframes bh-mask {
  0% { transform: translateY(0) rotate(0deg); opacity:0.8; }
  100% { transform: translateY(-6px) rotate(15deg); opacity:1; }
}
@keyframes bh-spark {
  0%,100% { opacity: 0; transform: scale(0); }
  50% { opacity: 1; transform: scale(1.5); }
}

.scn-king-accuses-biron {
  background: linear-gradient(180deg, #e8d0a0 0%, #c8a060 30%, #a08040 60%, #806030 100%),
              radial-gradient(ellipse at 80% 40%, #f0d080 0%, transparent 60%);
}
.scn-king-accuses-biron .palace-wall {
  position: absolute; inset: 0; 
  background: repeating-linear-gradient(0deg, rgba(0,0,0,0.05) 0px, rgba(0,0,0,0.05) 30px, transparent 30px, transparent 60px);
  animation: kab-wall 8s linear infinite;
}
.scn-king-accuses-biron .king-figure {
  position: absolute; bottom: 25%; left: 30%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 4px 0 8px rgba(0,0,0,0.4);
  animation: kab-king 5s ease-in-out infinite;
}
.scn-king-accuses-biron .king-arm {
  position: absolute; bottom: 45%; left: 32%; width: 25px; height: 5px;
  background: linear-gradient(90deg, #6a4a3a 0%, #8a6a4a 100%);
  border-radius: 3px; transform-origin: left center; transform: rotate(-40deg);
  animation: kab-arm 2s ease-in-out infinite alternate;
}
.scn-king-accuses-biron .biron-figure {
  position: absolute; bottom: 20%; right: 20%; width: 25px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: scaleX(-1);
  animation: kab-biron 4s ease-in-out infinite;
}
.scn-king-accuses-biron .shadow-throne {
  position: absolute; bottom: 0; left: 20%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #705030 0%, #402810 100%);
  border-radius: 30% 30% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
  animation: kab-throne 6s ease-in-out infinite alternate;
}
.scn-king-accuses-biron .angry-glow {
  position: absolute; top: 20%; left: 35%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ff6030 0%, transparent 70%);
  opacity: 0.3; animation: kab-glow 3s ease-in-out infinite alternate;
}
.scn-king-accuses-biron .sharp-light {
  position: absolute; bottom: 30%; left: 40%; width: 4px; height: 120px;
  background: linear-gradient(180deg, #fff4d0 0%, transparent 100%);
  opacity: 0.5; transform: rotate(10deg);
  animation: kab-light 2s ease-in-out infinite alternate;
}
@keyframes kab-wall {
  0% { transform: translateY(0); }
  100% { transform: translateY(-30px); }
}
@keyframes kab-king {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes kab-arm {
  0% { transform: rotate(-35deg) scaleX(1); }
  100% { transform: rotate(-45deg) scaleX(1.2); }
}
@keyframes kab-biron {
  0% { transform: scaleX(-1) translateY(0); }
  50% { transform: scaleX(-1) translateY(-3px); }
  100% { transform: scaleX(-1) translateY(0); }
}
@keyframes kab-throne {
  0% { transform: translateY(0) scaleY(1); }
  100% { transform: translateY(-4px) scaleY(1.05); }
}
@keyframes kab-glow {
  0% { opacity: 0.2; transform: scale(0.8); }
  100% { opacity: 0.5; transform: scale(1.2); }
}
@keyframes kab-light {
  0% { opacity: 0.3; transform: rotate(8deg); }
  100% { opacity: 0.7; transform: rotate(12deg); }
}

.scn-mercade-enters { background: linear-gradient(180deg, #1a1a2e 0%, #2c2250 40%, #4a3060 70%, #6a4060 100%), radial-gradient(ellipse at 80% 60%, #b08050 0%, transparent 60%); }
.scn-mercade-enters .wall-dark { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e 0%, #2c2250 100%); }
.scn-mercade-enters .doorway { position:absolute; bottom:10%; left:50%; width:30%; height:80%; transform:translateX(-50%); background: #0a0a1a; border-radius: 4% 4% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
.scn-mercade-enters .window { position:absolute; top:15%; right:10%; width:25%; height:40%; background: #2a4060; border-radius: 4% 4% 0 0; border: 6px solid #3a2a1a; box-shadow: inset 0 0 30px rgba(180,140,80,.4); left: auto; }
.scn-mercade-enters .dusk-sky { position:absolute; top:15%; right:10%; width:25%; height:40%; background: linear-gradient(180deg, #c07030 0%, #805030 30%, #2a4060 100%); border-radius: 2% 2% 0 0; opacity:.9; animation: me-sky 12s ease-in-out infinite alternate; }
.scn-mercade-enters .figure { position:absolute; bottom:10%; left:50%; width:16%; height:70%; transform:translateX(-50%); background: linear-gradient(90deg, #0a0a1a 0%, #1a1a2e 50%, #0a0a1a 100%); border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); animation: me-step 3s ease-in-out infinite alternate; }
.scn-mercade-enters .shadow { position:absolute; bottom:10%; left:50%; width:20%; height:8%; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); animation: me-shadow 3s ease-in-out infinite alternate; }
.scn-mercade-enters .dust { position:absolute; width:4px; height:4px; background: rgba(255,220,180,.3); border-radius:50%; filter: blur(2px); }
.scn-mercade-enters .motes-1 { top:30%; left:20%; animation: me-drift 20s linear infinite; }
.scn-mercade-enters .motes-2 { top:50%; left:60%; width:3px; height:3px; animation: me-drift 25s linear infinite reverse; }
@keyframes me-sky { 0% { opacity:.8; filter: brightness(1) } 50% { opacity:.95; filter: brightness(1.1) } 100% { opacity:.7; filter: brightness(.9) } }
@keyframes me-step { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes me-shadow { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.05) scaleY(.95); } 100% { transform: translateX(-50%) scaleX(1); } }
@keyframes me-drift { 0% { transform: translate(0,0); opacity:0; } 10% { opacity:1; } 90% { opacity:1; } 100% { transform: translate(40px,-20px); opacity:0; } }

.scn-princess-grief { background: linear-gradient(180deg, #1a1428 0%, #2a1a36 40%, #3a2a46 100%), radial-gradient(ellipse at 50% 80%, #4a3a56 0%, transparent 70%); }
.scn-princess-grief .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1428 0%, #2a1a36 100%); }
.scn-princess-grief .throne { position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:40%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 0 0 / 80% 80% 0 0; box-shadow: 0 -10px 20px rgba(0,0,0,.5); }
.scn-princess-grief .princess { position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:20%; height:50%; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pg-a 4s ease-in-out infinite; }
.scn-princess-grief .gown { position:absolute; bottom:10%; left:50%; transform:translateX(-50%); width:35%; height:25%; background: radial-gradient(ellipse at 50% 20%, #3a2a4a 0%, #1a1a2a 100%); border-radius: 60% 60% 20% 20%; animation: pg-b 5s ease-in-out infinite; }
.scn-princess-grief .veil { position:absolute; top:5%; left:50%; transform:translateX(-50%); width:25%; height:30%; background: linear-gradient(180deg, rgba(255,255,255,.1) 0%, rgba(200,180,200,.05) 100%); border-radius: 50% 50% 40% 40%; filter: blur(4px); animation: pg-c 6s ease-in-out infinite; }
.scn-princess-grief .candle { position:absolute; bottom:38%; left:30%; width:4%; height:12%; background: linear-gradient(180deg, #c0a070 0%, #8a6a40 100%); border-radius: 10% 10% 20% 20%; animation: pg-d 2s ease-in-out infinite alternate; }
.scn-princess-grief .glow { position:absolute; bottom:40%; left:30%; width:10%; height:10%; background: radial-gradient(circle, #ffd080 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px #ffd080; animation: pg-e 3s ease-in-out infinite alternate; }
.scn-princess-grief .cloth-fold { position:absolute; bottom:20%; left:30%; width:20%; height:5%; background: linear-gradient(180deg, #2a1a2a 0%, #1a1a2a 100%); border-radius: 50%; filter: blur(2px); animation: pg-f 7s ease-in-out infinite; }
@keyframes pg-a { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(-5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes pg-b { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes pg-c { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.3; } }
@keyframes pg-d { 0% { height:12%; } 50% { height:13%; } 100% { height:11%; } }
@keyframes pg-e { 0% { opacity:.6; box-shadow: 0 0 20px 5px #ffd080; } 50% { opacity:1; box-shadow: 0 0 40px 15px #ffd080; } 100% { opacity:.7; box-shadow: 0 0 25px 8px #ffd080; } }
@keyframes pg-f { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }

.scn-king-argues-stay { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a46 40%, #3a3a56 100%), radial-gradient(ellipse at 50% 0%, #4a4a6a 0%, transparent 70%); }
.scn-king-argues-stay .hall-bg { position:absolute; inset:0; background: linear-gradient(90deg, #1a1a2e 0%, #2a2a46 50%, #1a1a2e 100%); }
.scn-king-argues-stay .pillar-left { position:absolute; bottom:0; left:8%; width:6%; height:90%; background: linear-gradient(180deg, #3a3a5a 0%, #1a1a3e 100%); border-radius: 4% 4% 0 0; box-shadow: 4px 0 10px rgba(0,0,0,.4); animation: ka-pillar 8s ease-in-out infinite; }
.scn-king-argues-stay .pillar-right { position:absolute; bottom:0; right:8%; width:6%; height:90%; background: linear-gradient(180deg, #3a3a5a 0%, #1a1a3e 100%); border-radius: 4% 4% 0 0; box-shadow: -4px 0 10px rgba(0,0,0,.4); animation: ka-pillar 8s ease-in-out infinite reverse; }
.scn-king-argues-stay .king { position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:18%; height:65%; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; animation: ka-king 4s ease-in-out infinite; }
.scn-king-argues-stay .arm-raised { position:absolute; bottom:35%; left:55%; width:8%; height:20%; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform-origin: bottom center; animation: ka-arm 2s ease-in-out infinite; }
.scn-king-argues-stay .cape { position:absolute; bottom:5%; left:50%; transform:translateX(-50%); width:25%; height:40%; background: radial-gradient(ellipse at 50% 10%, #4a3a5a 0%, #2a1a3a 100%); border-radius: 50% 50% 20% 20%; animation: ka-cape 5s ease-in-out infinite; }
.scn-king-argues-stay .floor-reflect { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, rgba(30,30,50,.5) 0%, transparent 100%); opacity:.4; animation: ka-reflect 6s ease-in-out infinite; }
.scn-king-argues-stay .torch { position:absolute; bottom:20%; left:20%; width:2%; height:15%; background: linear-gradient(180deg, #c08040 0%, #8a6030 100%); border-radius: 20% 20% 10% 10%; animation: ka-torch 3s ease-in-out infinite alternate; }
@keyframes ka-pillar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes ka-king { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes ka-arm { 0% { transform: rotate(-20deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-20deg); } }
@keyframes ka-cape { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ka-reflect { 0% { opacity:.3; } 50% { opacity:.5; } 100% { opacity:.3; } }
@keyframes ka-torch { 0% { box-shadow: 0 0 10px 2px #ffa060; } 50% { box-shadow: 0 0 20px 5px #ffa060; } 100% { box-shadow: 0 0 15px 3px #ffa060; } }

.scn-grief-double { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a2a3e 100%), radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 70%); }
.scn-grief-double .deep-shadow { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%); }
.scn-grief-double .figure-left { position:absolute; bottom:0; left:35%; transform:translateX(-50%); width:18%; height:70%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: gd-left 4s ease-in-out infinite; }
.scn-grief-double .figure-right { position:absolute; bottom:0; right:35%; transform:translateX(50%); width:18%; height:65%; background: linear-gradient(180deg, #2a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: gd-right 4.5s ease-in-out infinite; }
.scn-grief-double .embrace { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:30%; height:50%; background: radial-gradient(ellipse at 50% 40%, #1a1a2e 0%, transparent 100%); opacity:.5; animation: gd-embrace 6s ease-in-out infinite; }
.scn-grief-double .tear-shape { position:absolute; top:20%; left:50%; transform:translateX(-50%); width:6%; height:8%; background: radial-gradient(circle, rgba(200,200,255,.3) 0%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gd-tear 5s ease-in-out infinite; }
.scn-grief-double .ground-mist { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, transparent 0%, rgba(20,20,40,.4) 100%); filter: blur(6px); animation: gd-mist 10s ease-in-out infinite; }
.scn-grief-double .distant-light { position:absolute; top:10%; right:10%; width:10%; height:15%; background: radial-gradient(circle, rgba(100,80,120,.2) 0%, transparent 70%); animation: gd-light 8s ease-in-out infinite alternate; }
@keyframes gd-left { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(-4deg) scale(.98); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes gd-right { 0% { transform: translateX(50%) rotate(0deg); } 50% { transform: translateX(50%) rotate(4deg) scale(.98); } 100% { transform: translateX(50%) rotate(0deg); } }
@keyframes gd-embrace { 0% { opacity:.3; transform: translateX(-50%) scale(.9); } 50% { opacity:.6; transform: translateX(-50%) scale(1); } 100% { opacity:.3; transform: translateX(-50%) scale(.9); } }
@keyframes gd-tear { 0% { transform: translateX(-50%) translateY(0); opacity:0; } 20% { opacity:.5; } 80% { opacity:.5; } 100% { transform: translateX(-50%) translateY(30px); opacity:0; } }
@keyframes gd-mist { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.3; } }
@keyframes gd-light { 0% { opacity:.1; } 50% { opacity:.3; } 100% { opacity:.1; } }

.scn-biron-king-banter {
  background: linear-gradient(180deg, #ffeebb 0%, #ffdd99 40%, #ffcc88 100%), radial-gradient(ellipse at 30% 20%, #fff3c4 0%, transparent 70%);
}
.scn-biron-king-banter .sun-bg {
  position: absolute; inset: 0 0 40% 0;
  background: radial-gradient(circle at 70% 10%, #fff7c0 0%, #ffdd66 40%, transparent 80%);
  animation: bkb-sun 12s ease-in-out infinite alternate;
}
.scn-biron-king-banter .figure-jester {
  position: absolute; bottom: 25%; left: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #c8553d 0%, #5a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bkb-jester 3s ease-in-out infinite;
}
.scn-biron-king-banter .figure-king {
  position: absolute; bottom: 25%; right: 25%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #b08040 0%, #4a2a10 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: bkb-king 3.5s ease-in-out infinite;
}
.scn-biron-king-banter .speech-curl {
  position: absolute; bottom: 55%; left: 35%; width: 60px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: bkb-curl 2s ease-in-out infinite alternate;
}
.scn-biron-king-banter .wash-splash {
  position: absolute; bottom: 30%; left: 20%; width: 80px; height: 40px;
  background: linear-gradient(135deg, #88bbff 0%, #aaddff 50%, #bbddff 100%);
  border-radius: 60% 40% 50% 50%;
  opacity: 0.3;
  animation: bkb-wash 8s ease-in-out infinite alternate;
}
.scn-biron-king-banter .shadow-floor {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
}
@keyframes bkb-sun {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.9; transform: scale(1); }
}
@keyframes bkb-jester {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(8px) rotate(3deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes bkb-king {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-5px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes bkb-curl {
  0% { transform: scaleX(1) rotate(0deg); opacity: 0.5; }
  50% { transform: scaleX(1.3) rotate(5deg); opacity: 0.8; }
  100% { transform: scaleX(1) rotate(0deg); opacity: 0.5; }
}
@keyframes bkb-wash {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.2; }
  50% { transform: translateY(-5px) rotate(3deg); opacity: 0.4; }
  100% { transform: translateY(0) rotate(0deg); opacity: 0.2; }
}

.scn-biron-defense-of-love {
  background: linear-gradient(180deg, #ffeedd 0%, #ffddbb 40%, #ffcc99 100%), radial-gradient(ellipse at 50% 80%, #ffddaa 0%, transparent 60%);
}
.scn-biron-defense-of-love .sun-glow {
  position: absolute; inset: 0 0 30% 0;
  background: radial-gradient(circle at 60% 20%, #fff3c4 0%, #ffd699 40%, transparent 80%);
  animation: bdl-glow 10s ease-in-out infinite alternate;
}
.scn-biron-defense-of-love .biron-figure {
  position: absolute; bottom: 25%; left: 40%; width: 45px; height: 80px;
  background: linear-gradient(180deg, #e8c488 0%, #8a5a1a 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bdl-biron 4s ease-in-out infinite;
}
.scn-biron-defense-of-love .love-heart {
  position: absolute; top: 30%; left: 35%; width: 30px; height: 30px;
  background: radial-gradient(circle, #d87878 0%, #b04040 70%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(45deg);
  animation: bdl-heart 3s ease-in-out infinite alternate;
}
.scn-biron-defense-of-love .aura {
  position: absolute; top: 25%; left: 30%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: bdl-aura 5s ease-in-out infinite alternate;
}
.scn-biron-defense-of-love .ground {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 6%;
  background: linear-gradient(180deg, #ddaa77 0%, #c08050 100%);
  border-radius: 40% 60% 0 0;
}
@keyframes bdl-glow {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.03); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes bdl-biron {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(10px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bdl-heart {
  0% { transform: rotate(45deg) scale(1); opacity: 0.8; }
  50% { transform: rotate(45deg) scale(1.2); opacity: 1; }
  100% { transform: rotate(45deg) scale(1); opacity: 0.8; }
}
@keyframes bdl-aura {
  0% { transform: scale(0.9); opacity: 0.3; }
  50% { transform: scale(1.1); opacity: 0.6; }
  100% { transform: scale(0.9); opacity: 0.3; }
}

.scn-king-resolve {
  background: linear-gradient(180deg, #ffddaa 0%, #eecc88 40%, #ddbb77 100%), radial-gradient(ellipse at 50% 30%, #ffcc66 0%, transparent 70%);
}
.scn-king-resolve .sky-sun {
  position: absolute; inset: 0 0 50% 0;
  background: radial-gradient(circle at 40% 15%, #ffeebb 0%, #ffcc66 40%, transparent 80%);
  animation: kr-sky 15s ease-in-out infinite alternate;
}
.scn-king-resolve .banner-left {
  position: absolute; bottom: 35%; left: 20%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #c8553d 0%, #7a2a1a 100%);
  border-radius: 10% 10% 0 0;
  transform-origin: bottom center;
  animation: kr-banner 4s ease-in-out infinite;
}
.scn-king-resolve .banner-right {
  position: absolute; bottom: 35%; right: 20%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #b08040 0%, #5a3a10 100%);
  border-radius: 10% 10% 0 0;
  transform-origin: bottom center;
  animation: kr-banner 4s ease-in-out infinite 0.5s;
}
.scn-king-resolve .king-figure {
  position: absolute; bottom: 25%; left: 45%; width: 50px; height: 85px;
  background: linear-gradient(180deg, #e8c488 0%, #6a3a10 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: kr-king 5s ease-in-out infinite;
}
.scn-king-resolve .soldier-figure {
  position: absolute; bottom: 25%; left: 30%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #a07840 0%, #3a2a10 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: kr-soldier 3s ease-in-out infinite;
}
.scn-king-resolve .ground {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #ccaa77 0%, #aa8855 100%);
  border-radius: 30% 70% 0 0;
}
@keyframes kr-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes kr-banner {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(1.1); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes kr-king {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes kr-soldier {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(0); }
}

.scn-king-entertainment-plan {
  background: linear-gradient(180deg, #ffeecc 0%, #ffdd99 40%, #eebb77 100%), radial-gradient(ellipse at 50% 30%, #ffeebb 0%, transparent 70%);
}
.scn-king-entertainment-plan .sky-sun {
  position: absolute; inset: 0 0 40% 0;
  background: radial-gradient(circle at 30% 10%, #fff3c4 0%, #ffdd88 40%, transparent 80%);
  animation: kep-sky 12s ease-in-out infinite alternate;
}
.scn-king-entertainment-plan .tent-left {
  position: absolute; bottom: 30%; left: 15%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #c8a060 0%, #8a6a30 100%);
  border-radius: 30% 30% 0 0;
  clip-path: polygon(0 100%, 20% 0%, 80% 0%, 100% 100%);
  animation: kep-tent 8s ease-in-out infinite alternate;
}
.scn-king-entertainment-plan .tent-right {
  position: absolute; bottom: 30%; right: 15%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #d8b070 0%, #9a7a40 100%);
  border-radius: 30% 30% 0 0;
  clip-path: polygon(0 100%, 20% 0%, 80% 0%, 100% 100%);
  animation: kep-tent 8s ease-in-out infinite alternate 1s;
}
.scn-king-entertainment-plan .figure-musician {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #c8553d 0%, #5a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: kep-musician 3s ease-in-out infinite;
}
.scn-king-entertainment-plan .figure-dancer {
  position: absolute; bottom: 25%; right: 35%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #b08040 0%, #4a2a10 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: kep-dancer 3.5s ease-in-out infinite;
}
.scn-king-entertainment-plan .table {
  position: absolute; bottom: 22%; left: 40%; width: 40px; height: 10px;
  background: linear-gradient(180deg, #a07840 0%, #6a4a20 100%);
  border-radius: 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: kep-table 6s ease-in-out infinite alternate;
}
@keyframes kep-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes kep-tent {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.05) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes kep-musician {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(5px) rotate(3deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes kep-dancer {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-5px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes kep-table {
  0% { transform: scaleX(1); opacity: 0.9; }
  50% { transform: scaleX(1.1); opacity: 1; }
  100% { transform: scaleX(1); opacity: 0.9; }
}

.scn-item-favours-verses {
  background:
    linear-gradient(180deg, #fef9e7 0%, #fce4c5 60%, #e8c392 100%),
    radial-gradient(ellipse at 60% 20%, #fff8e0 0%, transparent 70%);
}
.scn-item-favours-verses .window-sun {
  position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #fdf2d8 0%, #ffeec2 100%); border-radius: 0 0 20% 20% / 0 0 30% 30%; animation: ifv-sun 8s ease-in-out infinite alternate; filter: blur(2px);
}
.scn-item-favours-verses .desk {
  position:absolute; bottom:10%; left:10%; width:60%; height:20%; background: linear-gradient(180deg, #a47a52 0%, #7a5c3e 100%); border-radius: 8px 8px 4px 4px; box-shadow: inset 0 -4px 8px rgba(0,0,0,.3); animation: ifv-bob 6s ease-in-out infinite;
}
.scn-item-favours-verses .inkwell {
  position:absolute; bottom:22%; left:22%; width:18px; height:20px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: ifv-jig 4s ease-in-out infinite;
}
.scn-item-favours-verses .quill {
  position:absolute; bottom:32%; left:25%; width:4px; height:40px; background: linear-gradient(180deg, #d4c4a4 0%, #b8a888 100%); transform: rotate(-15deg); border-radius: 2px 2px 40% 40%; box-shadow: 0 0 4px rgba(0,0,0,.2); animation: ifv-sway 5s ease-in-out infinite;
}
.scn-item-favours-verses .paper {
  position:absolute; bottom:12%; left:24%; width:40px; height:30px; background: linear-gradient(135deg, #fff6e0 0%, #f7edd5 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.15); transform: rotate(2deg); animation: ifv-flutter 7s ease-in-out infinite;
}
.scn-item-favours-verses .big-o {
  position:absolute; bottom:35%; left:42%; width:24px; height:24px; background: radial-gradient(circle, #ffd080 0%, #e0a040 80%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,208,128,.6); animation: ifv-pulse 2s ease-in-out infinite alternate;
}
.scn-item-favours-verses .sparkle {
  position:absolute; width:10px; height:10px; background: #ffe080; border-radius: 50%; filter: blur(2px); opacity:0.7;
}
.scn-item-favours-verses .sparkle-a { top:15%; left:30%; animation: ifv-sparkle 4s ease-in-out infinite; }
.scn-item-favours-verses .sparkle-b { top:20%; right:20%; animation: ifv-sparkle 5s ease-in-out infinite 1s; }

@keyframes ifv-sun { 0% { opacity:.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:.85; transform: scale(.98); } }
@keyframes ifv-bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ifv-jig { 0%,100% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(2px,-1px) rotate(2deg); } 75% { transform: translate(-1px,1px) rotate(-1deg); } }
@keyframes ifv-sway { 0%,100% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-18deg) translateX(3px); } }
@keyframes ifv-flutter { 0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } }
@keyframes ifv-pulse { 0% { transform: scale(.8); opacity:.7; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(.95); opacity:.8; } }
@keyframes ifv-sparkle { 0%,100% { opacity:.2; transform: scale(.5); } 50% { opacity:.8; transform: scale(1.2); } }

.scn-boyet-news-muscovites {
  background:
    linear-gradient(180deg, #b8d4f0 0%, #e0f0ff 50%, #f5fafe 100%),
    radial-gradient(ellipse at 30% 10%, #fff8e0 0%, transparent 60%);
}
.scn-boyet-news-muscovites .sky-sun {
  position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #cde4ff 0%, #e6f2ff 100%); animation: bnm-sky 10s ease-in-out infinite alternate; filter: blur(2px);
}
.scn-boyet-news-muscovites .castle-bg {
  position:absolute; bottom:30%; left:10%; width:40%; height:60%; background: linear-gradient(180deg, #9a8a7a 0%, #6a5a4a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: bnm-hover 12s ease-in-out infinite;
}
.scn-boyet-news-muscovites .jester {
  position:absolute; bottom:20%; left:40%; width:30px; height:50px; background: linear-gradient(180deg, #704030 0%, #4a2010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bnm-jest 3s ease-in-out infinite;
}
.scn-boyet-news-muscovites .jester-hat {
  position:absolute; bottom:66%; left:42%; width:24px; height:16px; background: linear-gradient(180deg, #a05030 0%, #683018 100%); border-radius: 50% 50% 0 0; transform: rotate(-5deg); box-shadow: 0 -4px 8px rgba(0,0,0,.2); animation: bnm-hat 3s ease-in-out infinite;
}
.scn-boyet-news-muscovites .jester-bell {
  position:absolute; width:8px; height:8px; background: #e0b040; border-radius: 50%; box-shadow: 0 0 4px rgba(224,176,64,.5);
}
.scn-boyet-news-muscovites .bell-a { bottom:72%; left:40%; animation: bnm-bell 1.6s ease-in-out infinite; }
.scn-boyet-news-muscovites .bell-b { bottom:72%; right:10%; animation: bnm-bell 1.6s ease-in-out infinite 0.4s; }
.scn-boyet-news-muscovites .shadow {
  position:absolute; bottom:15%; left:35%; width:60px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.2) 0%, transparent 80%); animation: bnm-shadow 3s ease-in-out infinite;
}

@keyframes bnm-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes bnm-hover { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes bnm-jest { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(-5px) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes bnm-hat { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-4px); } }
@keyframes bnm-bell { 0%,100% { transform: scale(.9); } 50% { transform: scale(1.3); } }
@keyframes bnm-shadow { 0%,100% { transform: scaleX(1); opacity:.5; } 50% { transform: scaleX(.8); opacity:.3; } }

.scn-princess-counterplan {
  background:
    linear-gradient(180deg, #2a2a4a 0%, #3a3a6a 40%, #4a4a7a 100%),
    radial-gradient(ellipse at 70% 80%, #5a5a8a 0%, transparent 70%);
}
.scn-princess-counterplan .ballroom-floor {
  position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; box-shadow: inset 0 12px 24px rgba(0,0,0,.5); animation: pc-floor 12s ease-in-out infinite alternate;
}
.scn-princess-counterplan .ballroom-wall {
  position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #5a4a6a 0%, #3a2a4a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.3);
}
.scn-princess-counterplan .masquerade-figures {
  position:absolute; bottom:30%; left:20%; width:60%; height:50%; background: linear-gradient(180deg, rgba(30,20,30,0.8) 0%, rgba(20,10,20,0.6) 100%); clip-path: polygon(0% 100%, 10% 60%, 25% 50%, 40% 30%, 60% 40%, 75% 20%, 90% 50%, 100% 100%); animation: pc-figures 9s ease-in-out infinite;
}
.scn-princess-counterplan .mask {
  position:absolute; width:20px; height:14px; background: linear-gradient(180deg, #c0a060 0%, #a08040 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 0 8px rgba(0,0,0,.4); animation: pc-mask 6s ease-in-out infinite;
}
.scn-princess-counterplan .mask-left { bottom:48%; left:25%; transform: rotate(-10deg); animation-delay:0s; }
.scn-princess-counterplan .mask-right { bottom:40%; right:20%; transform: rotate(15deg); animation-delay:3s; }
.scn-princess-counterplan .candle-sconce {
  position:absolute; top:15%; width:8px; height:20px; background: linear-gradient(180deg, #604020 0%, #3a2010 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 12px 4px rgba(255,200,100,.5);
}
.scn-princess-counterplan .candle-l { left:15%; animation: pc-candle 3s ease-in-out infinite; }
.scn-princess-counterplan .candle-r { right:15%; animation: pc-candle 3s ease-in-out infinite 1.5s; }
.scn-princess-counterplan .shadow-tension {
  position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(ellipse at 50% 50%, transparent 30%, rgba(0,0,0,.4) 100%); animation: pc-shadow 10s ease-in-out infinite alternate;
}

@keyframes pc-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes pc-figures { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.05) translateY(-3px); } }
@keyframes pc-mask { 0%,100% { transform: rotate(-10deg) translateX(0); opacity:.8; } 50% { transform: rotate(10deg) translateX(4px); opacity:1; } }
@keyframes pc-candle { 0%,100% { box-shadow: 0 0 8px 2px rgba(255,200,100,.4); } 50% { box-shadow: 0 0 16px 6px rgba(255,200,100,.7); } }
@keyframes pc-shadow { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.7; } }

.scn-pageant-judas-ass {
  background:
    linear-gradient(180deg, #2a2030 0%, #3a2a40 30%, #4a3a50 60%, #5a4a60 100%),
    radial-gradient(ellipse at 50% 0%, #6a5a70 0%, transparent 70%);
}
.scn-pageant-judas-ass .dusk-sky {
  position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a4a6a 0%, #3a2a4a 100%); animation: pja-sky 14s ease-in-out infinite alternate; filter: blur(3px);
}
.scn-pageant-judas-ass .stage-platform {
  position:absolute; bottom:20%; left:5%; width:90%; height:30%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10px 10px 0 0; box-shadow: inset 0 -8px 16px rgba(0,0,0,.5); animation: pja-stage 8s ease-in-out infinite;
}
.scn-pageant-judas-ass .donkey {
  position:absolute; bottom:32%; left:30%; width:40px; height:30px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: pja-donkey 5s ease-in-out infinite;
}
.scn-pageant-judas-ass .donkey-ear {
  position:absolute; width:6px; height:18px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 20% 20% 50% 50%; transform-origin: bottom center;
}
.scn-pageant-judas-ass .ear-l { bottom:60%; left:28%; transform: rotate(-20deg); animation: pja-ear 4s ease-in-out infinite; }
.scn-pageant-judas-ass .ear-r { bottom:60%; left:36%; transform: rotate(25deg); animation: pja-ear 4s ease-in-out infinite 2s; }
.scn-pageant-judas-ass .lantern {
  position:absolute; bottom:45%; left:50%; width:10px; height:14px; background: radial-gradient(circle, #ffd080 0%, #b08040 60%); border-radius: 4px; box-shadow: 0 0 20px 6px rgba(255,208,128,.5), 0 0 40px 12px rgba(255,208,128,.2); animation: pja-lantern 4s ease-in-out infinite alternate;
}
.scn-pageant-judas-ass .judas-figure {
  position:absolute; bottom:28%; left:50%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: pja-judas 7s ease-in-out infinite;
}

@keyframes pja-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes pja-stage { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes pja-donkey { 0% { transform: rotate(-5deg) translateX(0); } 25% { transform: rotate(-3deg) translateX(2px); } 50% { transform: rotate(-8deg) translateX(-1px); } 75% { transform: rotate(-4deg) translateX(1px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes pja-ear { 0%,100% { transform: rotate(-20deg); } 50% { transform: rotate(-30deg); } }
@keyframes pja-lantern { 0% { box-shadow: 0 0 12px 2px rgba(255,208,128,.4); opacity:.8; } 100% { box-shadow: 0 0 30px 8px rgba(255,208,128,.7); opacity:1; } }
@keyframes pja-judas { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-5px); } }

/* biron-soliloquy-2 — tense, sunlit */
.scn-biron-soliloquy-2 {
  background: linear-gradient(180deg, #ffdb7a 0%, #f0b45a 40%, #c88a3a 100%),
    radial-gradient(ellipse at 80% 20%, #fff8e0 0%, transparent 60%);
}
.scn-biron-soliloquy-2 .sky-sun {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #ffe08a 0%, #ffcc66 30%, #e8a840 100%);
  animation: biron-sky 6s ease-in-out infinite alternate;
}
.scn-biron-soliloquy-2 .hills.sharp {
  position: absolute;
  bottom: 35%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(135deg, #8b6a3a 0%, #6b4a2a 100%);
  clip-path: polygon(0% 0%, 20% 20%, 40% 0%, 60% 25%, 80% 5%, 100% 15%, 100% 100%, 0% 100%);
  animation: biron-hills 4s ease-in-out infinite alternate;
}
.scn-biron-soliloquy-2 .field {
  position: absolute;
  bottom: 10%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #a08040 0%, #7a6020 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  animation: biron-field 3s ease-in-out infinite alternate;
}
.scn-biron-soliloquy-2 .figure.biron {
  position: absolute;
  bottom: 25%;
  left: 45%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: biron-figure 2s ease-in-out infinite alternate;
  box-shadow: -4px 0 8px rgba(0,0,0,0.5);
}
.scn-biron-soliloquy-2 .sheep {
  position: absolute;
  width: 20px;
  height: 14px;
  background: #c8b280;
  border-radius: 50% 50% 40% 40%;
  box-shadow: inset 0 -4px 0 #8a7040;
  animation: biron-sheep 5s ease-in-out infinite;
}
.scn-biron-soliloquy-2 .sheep1 {
  bottom: 18%;
  left: 20%;
  animation-delay: 0s;
}
.scn-biron-soliloquy-2 .sheep2 {
  bottom: 20%;
  left: 70%;
  animation-delay: 1.5s;
  transform: scaleX(-1);
}
.scn-biron-soliloquy-2 .shadow-sharp {
  position: absolute;
  bottom: 0;
  left: 30%;
  width: 40%;
  height: 20%;
  background: rgba(0,0,0,0.15);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: biron-shadow 3s ease-in-out infinite alternate;
}
@keyframes biron-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes biron-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes biron-field { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes biron-figure { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes biron-sheep { 0% { transform: translateX(0); } 25% { transform: translateX(10px); } 50% { transform: translateX(0); } 75% { transform: translateX(-5px); } 100% { transform: translateX(0); } }
@keyframes biron-shadow { 0% { opacity: 0.3; transform: skewX(0deg); } 50% { opacity: 0.6; transform: skewX(5deg); } 100% { opacity: 0.4; transform: skewX(-2deg); } }

/* king-sonnet — warm, sunlit, garden */
.scn-king-sonnet {
  background: linear-gradient(180deg, #fae5c0 0%, #e0c090 50%, #c0a070 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 70%);
}
.scn-king-sonnet .garden-bg {
  position: absolute;
  inset: 30% 0 0 0;
  background: linear-gradient(180deg, #b8a060 0%, #9a8640 100%);
  border-radius: 20% 20% 0 0;
  animation: king-bg 10s ease-in-out infinite alternate;
}
.scn-king-sonnet .arch-left {
  position: absolute;
  bottom: 20%;
  left: 5%;
  width: 30%;
  height: 60%;
  background: linear-gradient(135deg, #d0b080, #b09060);
  clip-path: polygon(0% 0%, 30% 0%, 30% 100%, 0% 100%);
  border-radius: 20px 0 0 20px;
  animation: king-arch 6s ease-in-out infinite alternate;
}
.scn-king-sonnet .arch-right {
  position: absolute;
  bottom: 20%;
  right: 5%;
  width: 30%;
  height: 60%;
  background: linear-gradient(225deg, #d0b080, #b09060);
  clip-path: polygon(70% 0%, 100% 0%, 100% 100%, 70% 100%);
  border-radius: 0 20px 20px 0;
  animation: king-arch 6s ease-in-out infinite alternate-reverse;
}
.scn-king-sonnet .king-figure {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: king-fig 4s ease-in-out infinite;
}
.scn-king-sonnet .paper.glow {
  position: absolute;
  bottom: 35%;
  left: 50%;
  width: 20px;
  height: 26px;
  background: #fff8e0;
  border-radius: 2px;
  transform: translateX(-50%) rotate(-5deg);
  box-shadow: 0 0 20px 8px rgba(255, 248, 224, 0.6);
  animation: king-paper 3s ease-in-out infinite alternate;
}
.scn-king-sonnet .sunburst {
  position: absolute;
  top: 5%;
  left: 50%;
  width: 80px;
  height: 80px;
  background: radial-gradient(circle, #ffe066 0%, transparent 70%);
  transform: translateX(-50%);
  animation: king-sun 8s ease-in-out infinite alternate;
}
.scn-king-sonnet .rose {
  position: absolute;
  bottom: 15%;
  left: 65%;
  width: 10px;
  height: 10px;
  background: #c8553d;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #c8553d;
  animation: king-rose 5s ease-in-out infinite;
}
.scn-king-sonnet .morning-drops {
  position: absolute;
  top: 40%;
  left: 20%;
  width: 4px;
  height: 6px;
  background: rgba(200, 220, 255, 0.4);
  border-radius: 50%;
  filter: blur(1px);
  animation: king-drops 2s ease-in-out infinite alternate;
}
@keyframes king-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes king-arch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.97); } }
@keyframes king-fig { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(2deg) translateY(-1px); } 75% { transform: translateX(-50%) rotate(-2deg) translateY(1px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes king-paper { 0% { transform: translateX(-50%) rotate(-5deg) scale(1); } 50% { transform: translateX(-50%) rotate(-3deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(-7deg) scale(0.98); } }
@keyframes king-sun { 0% { opacity: 0.5; transform: translateX(-50%) scale(1); } 50% { opacity: 0.8; transform: translateX(-50%) scale(1.2); } 100% { opacity: 0.6; transform: translateX(-50%) scale(0.9); } }
@keyframes king-rose { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes king-drops { 0% { opacity: 0; transform: translateY(0); } 50% { opacity: 0.5; transform: translateY(-5px); } 100% { opacity: 0; transform: translateY(-10px); } }

/* longaville-sonnet — warm, sunlit, similar but different composition */
.scn-longaville-sonnet {
  background: linear-gradient(180deg, #f0d8a0 0%, #d8b870 50%, #b89850 100%),
    radial-gradient(ellipse at 30% 40%, #fff0c0 0%, transparent 60%);
}
.scn-longaville-sonnet .garden-bg-alt {
  position: absolute;
  inset: 25% 0 0 0;
  background: linear-gradient(180deg, #c0a860 0%, #a08840 100%);
  clip-path: polygon(0% 10%, 30% 0%, 60% 15%, 100% 5%, 100% 100%, 0% 100%);
  animation: long-garden 12s ease-in-out infinite alternate;
}
.scn-longaville-sonnet .tree-left {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 40%;
  height: 70%;
  background: linear-gradient(135deg, #4a6a2a 0%, #2a4a1a 100%);
  border-radius: 0 60% 0 0;
  animation: long-tree 7s ease-in-out infinite alternate;
}
.scn-longaville-sonnet .long-figure {
  position: absolute;
  bottom: 20%;
  left: 55%;
  width: 28px;
  height: 55px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%) scaleX(-1);
  animation: long-fig 3.5s ease-in-out infinite alternate;
}
.scn-longaville-sonnet .paper-long {
  position: absolute;
  bottom: 32%;
  left: 55%;
  width: 18px;
  height: 24px;
  background: #fff8e0;
  border-radius: 2px;
  transform: translateX(-50%) rotate(5deg);
  box-shadow: 0 0 12px 4px rgba(255, 248, 224, 0.5);
  animation: long-paper 2.5s ease-in-out infinite alternate;
}
.scn-longaville-sonnet .rays-warm {
  position: absolute;
  top: 10%;
  left: 40%;
  width: 120%;
  height: 80%;
  background: repeating-linear-gradient(45deg, transparent, transparent 20px, rgba(255, 220, 100, 0.08) 20px, rgba(255, 220, 100, 0.08) 22px);
  animation: long-rays 15s linear infinite;
}
.scn-longaville-sonnet .bench {
  position: absolute;
  bottom: 15%;
  left: 40%;
  width: 30%;
  height: 8px;
  background: #7a6030;
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: long-bench 4s ease-in-out infinite alternate;
}
@keyframes long-garden { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes long-tree { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes long-fig { 0% { transform: translateX(-50%) scaleX(-1) rotate(0deg); } 50% { transform: translateX(-50%) scaleX(-1) rotate(3deg) translateY(-1px); } 100% { transform: translateX(-50%) scaleX(-1) rotate(-2deg) translateY(1px); } }
@keyframes long-paper { 0% { transform: translateX(-50%) rotate(5deg) scale(1); } 50% { transform: translateX(-50%) rotate(7deg) scale(1.03); } 100% { transform: translateX(-50%) rotate(3deg) scale(0.97); } }
@keyframes long-rays { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes long-bench { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }

/* longaville-reaction — funny, sunlit, comical */
.scn-longaville-reaction {
  background: linear-gradient(180deg, #ffe68a 0%, #f0c45a 50%, #d8a040 100%),
    radial-gradient(ellipse at 60% 30%, #fff0b0 0%, transparent 70%);
}
.scn-longaville-reaction .court-bg {
  position: absolute;
  inset: 40% 0 0 0;
  background: linear-gradient(180deg, #b89848 0%, #9a7830 100%);
  border-radius: 30% 30% 0 0;
  animation: react-bg 8s ease-in-out infinite alternate;
}
.scn-longaville-reaction .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 15%;
  background: linear-gradient(180deg, #7a6020 0%, #5a4010 100%);
  animation: react-floor 5s ease-in-out infinite alternate;
}
.scn-longaville-reaction .long-react-figure {
  position: absolute;
  bottom: 18%;
  left: 50%;
  width: 32px;
  height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(-5deg);
  animation: react-fig 1.5s ease-in-out infinite alternate;
}
.scn-longaville-reaction .goose {
  position: absolute;
  bottom: 20%;
  left: 60%;
  width: 25px;
  height: 18px;
  background: #b8a860;
  border-radius: 50% 50% 40% 40%;
  box-shadow: inset 0 -6px 0 #6a5a20;
  transform: translateX(-50%);
  animation: react-goose 2s ease-in-out infinite alternate;
}
.scn-longaville-reaction .paper-torn {
  position: absolute;
  bottom: 35%;
  left: 45%;
  width: 22px;
  height: 28px;
  background: #fff8e0;
  border-radius: 2px;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  transform: rotate(10deg);
  animation: react-paper 2.4s ease-in-out infinite alternate;
}
.scn-longaville-reaction .laugh-lines {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 40px;
  height: 20px;
  background: transparent;
  border: 2px dashed rgba(255, 200, 60, 0.4);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: react-laugh 1.6s ease-in-out infinite alternate;
}
.scn-longaville-reaction .shadow-funny {
  position: absolute;
  bottom: 0;
  left: 40%;
  width: 20%;
  height: 18%;
  background: rgba(0,0,0,0.1);
  border-radius: 50%;
  filter: blur(4px);
  animation: react-shadow 2s ease-in-out infinite alternate;
}
@keyframes react-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes react-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes react-fig { 0% { transform: translateX(-50%) rotate(-5deg) translateY(0); } 50% { transform: translateX(-50%) rotate(3deg) translateY(-3px); } 100% { transform: translateX(-50%) rotate(-5deg) translateY(0); } }
@keyframes react-goose { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes react-paper { 0% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(15deg) scale(1.1); } 100% { transform: rotate(5deg) scale(0.9); } }
@keyframes react-laugh { 0% { opacity: 0.3; transform: translate(-50%, -50%) scale(1); } 50% { opacity: 0.7; transform: translate(-50%, -50%) scale(1.3); } 100% { opacity: 0.4; transform: translate(-50%, -50%) scale(0.9); } }
@keyframes react-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } 100% { transform: scaleX(0.8); } }

.scn-armado-king-familiar {
  background: linear-gradient(180deg, #f9e7c2 0%, #e6c88a 40%, #c9a06a 100%),
              radial-gradient(ellipse at 50% 120%, #f1d6a0 0%, transparent 60%);
}
.scn-armado-king-familiar .sun-sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #ffe9c4 0%, #f9dcb0 60%, transparent 100%); animation: arma-sky 8s ease-in-out infinite alternate; }
.scn-armado-king-familiar .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #b8945e 0%, #8b6f3a 100%); border-radius: 30% 70% 0 0 / 20% 60% 0 0; }
.scn-armado-king-familiar .stage { position:absolute; bottom:20%; left:30%; right:30%; height:18%; background: linear-gradient(180deg, #b87a4a 0%, #7a4e2a 100%); border-radius: 6% 6% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.3); animation: arma-stage 12s ease-in-out infinite; }
.scn-armado-king-familiar .figure { position:absolute; bottom:28%; left:36%; width:20px; height:60px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: arma-figure 4s ease-in-out infinite; }
.scn-armado-king-familiar .familiar { position:absolute; bottom:25%; left:56%; width:16px; height:30px; background: linear-gradient(180deg, #8b5a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%; animation: arma-fam 5s ease-in-out infinite; }
.scn-armado-king-familiar .coin { position:absolute; bottom:46%; left:42%; width:10px; height:10px; background: radial-gradient(circle, #ffd700 0%, #b8860b 70%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(255,215,0,.5); animation: arma-coin 3s ease-in-out infinite; }
.scn-armado-king-familiar .horn { position:absolute; bottom:48%; left:54%; width:6px; height:16px; background: linear-gradient(180deg, #c8964e 0%, #8b6a3a 100%); border-radius: 40% 40% 20% 20%; transform: rotate(-30deg); transform-origin: bottom; animation: arma-horn 4s ease-in-out infinite; }
.scn-armado-king-familiar .tree { position:absolute; bottom:25%; left:10%; width:30px; height:80px; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%); border-radius: 30% 30% 20% 20%; box-shadow: inset -4px 0 8px rgba(0,0,0,.3); animation: arma-tree 20s linear infinite; }

@keyframes arma-sky { 0% { opacity:.85; transform: translateY(0); } 50% { opacity:1; transform: translateY(-5px); } 100% { opacity:.9; transform: translateY(2px); } }
@keyframes arma-stage { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes arma-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes arma-fam { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.05); } }
@keyframes arma-coin { 0% { transform: translateY(0) scale(1); opacity:1; } 50% { transform: translateY(-8px) scale(1.2); opacity:.9; } 100% { transform: translateY(0) scale(1); } }
@keyframes arma-horn { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(-30deg); } }
@keyframes arma-tree { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }

.scn-planning-nine-worhties {
  background: linear-gradient(180deg, #f7e1c0 0%, #d4b080 40%, #a67c52 100%),
              radial-gradient(ellipse at 50% 100%, #e8c896 0%, transparent 70%);
}
.scn-planning-nine-worhties .backdrop { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #c9a478 0%, #b8905e 100%); border-radius: 0 0 30% 30% / 0 0 40% 40%; animation: nine-back 15s ease-in-out infinite alternate; }
.scn-planning-nine-worhties .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #a07848 0%, #684a2a 100%); border-radius: 10% 10% 0 0; }
.scn-planning-nine-worhties .scaffold { position:absolute; bottom:35%; left:25%; right:25%; height:10%; background: linear-gradient(90deg, #7a5a3a 0%, #a07848 50%, #7a5a3a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-planning-nine-worhties .curtain-left { position:absolute; bottom:20%; left:10%; width:20%; height:60%; background: linear-gradient(180deg, #b87858 0%, #8a5030 100%); border-radius: 0 40% 0 0; transform-origin: top left; animation: nine-curtain-l 20s ease-in-out infinite; }
.scn-planning-nine-worhties .curtain-right { position:absolute; bottom:20%; right:10%; width:20%; height:60%; background: linear-gradient(180deg, #b87858 0%, #8a5030 100%); border-radius: 40% 0 0 0; transform-origin: top right; animation: nine-curtain-r 20s ease-in-out infinite; }
.scn-planning-nine-worhties .worthies { position:absolute; bottom:28%; width:14px; height:50px; background: linear-gradient(180deg, #c0a080 0%, #7a5a3a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; }
.scn-planning-nine-worhties .worthies-1 { left:30%; animation: nine-w1 4s ease-in-out infinite; }
.scn-planning-nine-worhties .worthies-2 { left:44%; animation: nine-w2 4.5s ease-in-out infinite reverse; }
.scn-planning-nine-worhties .worthies-3 { left:58%; animation: nine-w3 5s ease-in-out infinite; }
.scn-planning-nine-worhties .director { position:absolute; bottom:32%; left:20%; width:18px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: nine-dir 3s ease-in-out infinite; }

@keyframes nine-back { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes nine-curtain-l { 0%,100% { transform: rotate(0) scaleX(1); } 50% { transform: rotate(-3deg) scaleX(.95); } }
@keyframes nine-curtain-r { 0%,100% { transform: rotate(0) scaleX(1); } 50% { transform: rotate(3deg) scaleX(.95); } }
@keyframes nine-w1 { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes nine-w2 { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(-2deg); } }
@keyframes nine-w3 { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-5px) rotate(1deg); } }
@keyframes nine-dir { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(10px) rotate(2deg); } 50% { transform: translateX(20px) rotate(0); } 75% { transform: translateX(10px) rotate(-2deg); } 100% { transform: translateX(0) rotate(3deg); } }

.scn-dull-tabor-dance {
  background: linear-gradient(180deg, #eddeb8 0%, #d4bf96 30%, #b89e70 100%),
              radial-gradient(ellipse at 20% 100%, #f0d8a8 0%, transparent 60%);
}
.scn-dull-tabor-dance .meadow { position:absolute; inset:0; background: linear-gradient(180deg, #a8c080 0%, #7a9a5a 100%); clip-path: polygon(0 50%, 100% 45%, 100% 100%, 0 100%); animation: dull-meadow 25s ease-in-out infinite; }
.scn-dull-tabor-dance .dancer { position:absolute; bottom:30%; left:38%; width:20px; height:55px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: dull-dancer 1.5s ease-in-out infinite; }
.scn-dull-tabor-dance .drummer { position:absolute; bottom:30%; left:56%; width:18px; height:50px; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: dull-drummer 2s ease-in-out infinite; }
.scn-dull-tabor-dance .tabor { position:absolute; bottom:42%; left:58%; width:12px; height:12px; background: radial-gradient(circle, #c8a068 0%, #7a5a3a 70%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: dull-tabor 2s ease-in-out infinite; }
.scn-dull-tabor-dance .stick { position:absolute; bottom:50%; left:58%; width:3px; height:18px; background: #5a3a2a; border-radius: 10%; transform-origin: bottom; animation: dull-stick 1.5s ease-in-out infinite; }
.scn-dull-tabor-dance .hat { position:absolute; bottom:55%; left:36%; width:16px; height:8px; background: #8b6a3a; border-radius: 50% 50% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: dull-hat 1.5s ease-in-out infinite; }
.scn-dull-tabor-dance .grass-blade { position:absolute; bottom:35%; left:20%; width:4px; height:20px; background: #4a7a3a; border-radius: 50%; transform-origin: bottom; animation: dull-grass 4s ease-in-out infinite; }

@keyframes dull-meadow { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes dull-dancer { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-6px) rotate(5deg); } 50% { transform: translateY(-2px) rotate(-5deg); } 75% { transform: translateY(-8px) rotate(5deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes dull-drummer { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(3deg); } }
@keyframes dull-tabor { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.05); } }
@keyframes dull-stick { 0% { transform: rotate(-30deg); } 25% { transform: rotate(10deg); } 50% { transform: rotate(-20deg); } 75% { transform: rotate(15deg); } 100% { transform: rotate(-30deg); } }
@keyframes dull-hat { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes dull-grass { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }

.scn-ladies-wit-banter {
  background: linear-gradient(180deg, #f7e9d0 0%, #e6d3b0 40%, #cbb28a 100%),
              radial-gradient(ellipse at 40% 60%, #ffe4b0 0%, transparent 50%);
}
.scn-ladies-wit-banter .garden-wall { position:absolute; bottom:25%; left:15%; right:15%; height:55%; background: linear-gradient(180deg, #c8a478 0%, #a07848 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.2); animation: lady-wall 20s ease-in-out infinite alternate; }
.scn-ladies-wit-banter .lady-left { position:absolute; bottom:25%; left:25%; width:22px; height:70px; background: linear-gradient(180deg, #8a6a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: lady-left 4s ease-in-out infinite; }
.scn-ladies-wit-banter .lady-right { position:absolute; bottom:25%; right:25%; width:22px; height:70px; background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: lady-right 4.5s ease-in-out infinite reverse; }
.scn-ladies-wit-banter .fan { position:absolute; bottom:45%; left:35%; width:14px; height:20px; background: linear-gradient(180deg, #a06a4a 0%, #684a2a 100%); border-radius: 50% 50% 0 0; transform-origin: bottom; animation: lady-fan 2s ease-in-out infinite; }
.scn-ladies-wit-banter .parasol { position:absolute; bottom:60%; right:28%; width:20px; height:12px; background: radial-gradient(ellipse at 50% 100%, #c8a068 0%, #8b6a3a 100%); border-radius: 50%; box-shadow: 0 -4px 8px rgba(0,0,0,.2); animation: lady-para 8s ease-in-out infinite; }
.scn-ladies-wit-banter .rose { position:absolute; bottom:40%; left:44%; width:6px; height:6px; background: radial-gradient(circle, #b87858 0%, #8a5030 70%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(184,120,88,.4); animation: lady-rose 5s ease-in-out infinite; }
.scn-ladies-wit-banter .shrub { position:absolute; bottom:20%; left:10%; width:30px; height:40px; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius: 50% 50% 10% 10%; animation: lady-shrub 25s linear infinite; }

@keyframes lady-wall { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes lady-left { 0% { transform: translateY(0) rotate(-2deg); } 40% { transform: translateY(-6px) rotate(2deg); } 70% { transform: translateY(2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes lady-right { 0% { transform: translateY(0) rotate(2deg); } 40% { transform: translateY(-5px) rotate(-2deg); } 70% { transform: translateY(3px) rotate(1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes lady-fan { 0%,100% { transform: rotate(0) scaleX(1); } 50% { transform: rotate(15deg) scaleX(1.1); } }
@keyframes lady-para { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes lady-rose { 0%,100% { transform: translateY(0) scale(1); opacity:.8; } 50% { transform: translateY(-3px) scale(1.2); opacity:1; } }
@keyframes lady-shrub { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } 100% { transform: scaleX(1); } }

.scn-holofernes-nathaniel-meeting {
  background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 60%, #D2B48C 100%),
              radial-gradient(ellipse at 50% 0%, #FFF8DC 0%, transparent 50%);
}
.scn-holofernes-nathaniel-meeting .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 70%, transparent);
  animation: hnm-sky 12s ease-in-out infinite alternate;
}
.scn-holofernes-nathaniel-meeting .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #9ACD32 0%, #556B2F 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: hnm-ground 20s ease-in-out infinite alternate;
}
.scn-holofernes-nathaniel-meeting .tree {
  position: absolute; bottom: 32%; left: 20%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #6B4226 0%, #3E2723 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: hnm-tree 8s ease-in-out infinite;
}
.scn-holofernes-nathaniel-meeting .path {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(90deg, transparent, #D2B48C 20%, #D2B48C 80%, transparent);
  border-radius: 50%;
  filter: blur(2px);
  animation: hnm-path 15s linear infinite;
}
.scn-holofernes-nathaniel-meeting .figure {
  position: absolute; bottom: 12%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2E1A11 0%, #1A0F0A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-holofernes-nathaniel-meeting .figure-left {
  left: 32%;
  animation: hnm-figure-left 6s ease-in-out infinite alternate;
}
.scn-holofernes-nathaniel-meeting .figure-right {
  right: 32%;
  animation: hnm-figure-right 6s ease-in-out infinite alternate reverse;
}
@keyframes hnm-sky {
  0% { opacity: 0.8; background-position: 0% 0%; }
  50% { opacity: 1; background-position: 50% 0%; }
  100% { opacity: 0.9; background-position: 100% 0%; }
}
@keyframes hnm-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes hnm-tree {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes hnm-path {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes hnm-figure-left {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes hnm-figure-right {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(2deg); }
}

.scn-item-table-book {
  background: linear-gradient(180deg, #FFF5E0 0%, #EEDC82 40%, #C2A878 100%),
              radial-gradient(circle at 70% 80%, #FFFACD 0%, transparent 60%);
}
.scn-item-table-book .table {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #8B5E3C 0%, #5C3A1E 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
  animation: itb-table 30s linear infinite;
}
.scn-item-table-book .book {
  position: absolute; bottom: 25%; left: 35%; right: 35%; height: 20%;
  background: linear-gradient(135deg, #B22222 0%, #8B0000 100%);
  border-radius: 6% 30% 6% 30% / 10% 40% 10% 40%;
  transform: rotate(-3deg);
  animation: itb-book 8s ease-in-out infinite alternate;
}
.scn-item-table-book .bookmark {
  position: absolute; bottom: 35%; left: 47%; width: 4px; height: 15%;
  background: #FFD700;
  border-radius: 0 0 20% 20%;
  animation: itb-bookmark 4s ease-in-out infinite;
}
.scn-item-table-book .quill {
  position: absolute; bottom: 30%; right: 25%; width: 4px; height: 18%;
  background: linear-gradient(180deg, #D3D3D3 0%, #A9A9A9 80%, #333 100%);
  border-radius: 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: itb-quill 5s ease-in-out infinite alternate;
}
.scn-item-table-book .light-spot {
  position: absolute; bottom: 30%; left: 38%; width: 30%; height: 30%;
  background: radial-gradient(ellipse, rgba(255,255,200,0.4) 0%, transparent 80%);
  animation: itb-spot 6s ease-in-out infinite alternate;
}
@keyframes itb-table {
  0% { background-position: 0% 0%; }
  50% { background-position: 50% 0%; }
  100% { background-position: 100% 0%; }
}
@keyframes itb-book {
  0% { transform: rotate(-3deg) scale(1); }
  50% { transform: rotate(0deg) scale(1.02); }
  100% { transform: rotate(2deg) scale(1); }
}
@keyframes itb-bookmark {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes itb-quill {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes itb-spot {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(0.95); }
}

.scn-armado-costard-arrival {
  background: linear-gradient(180deg, #87CEEB 0%, #FFF8DC 50%, #F5E6CC 100%),
              radial-gradient(ellipse at 50% 100%, #FFFFE0 0%, transparent 70%);
}
.scn-armado-costard-arrival .sky {
  position: absolute; inset: 0 0 52% 0;
  background: linear-gradient(180deg, #87CEEB 0%, transparent);
  animation: aca-sky 10s ease-in-out infinite alternate;
}
.scn-armado-costard-arrival .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 48%;
  background: linear-gradient(180deg, #9ACD32 0%, #6B8E23 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
  animation: aca-ground 15s ease-in-out infinite;
}
.scn-armado-costard-arrival .figure-armado {
  position: absolute; bottom: 20%; left: 18%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #4A3B2A 0%, #2B1F14 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: aca-armado 3s ease-in-out infinite;
}
.scn-armado-costard-arrival .figure-moth {
  position: absolute; bottom: 20%; left: 45%; width: 16px; height: 42px;
  background: linear-gradient(180deg, #D2B48C 0%, #8B7355 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: aca-moth 4s ease-in-out infinite 0.5s;
}
.scn-armado-costard-arrival .figure-costard {
  position: absolute; bottom: 18%; left: 68%; width: 24px; height: 58px;
  background: linear-gradient(180deg, #5C4033 0%, #3E2723 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: aca-costard 3.5s ease-in-out infinite 1s;
}
.scn-armado-costard-arrival .shadow-armado,
.scn-armado-costard-arrival .shadow-moth,
.scn-armado-costard-arrival .shadow-costard {
  position: absolute; bottom: 15%; height: 6px; background: rgba(0,0,0,0.3);
  border-radius: 50%; filter: blur(2px);
}
.scn-armado-costard-arrival .shadow-armado { left: 18%; width: 30px; animation: aca-shadow 3s ease-in-out infinite; }
.scn-armado-costard-arrival .shadow-moth { left: 45%; width: 20px; animation: aca-shadow 4s ease-in-out infinite 0.5s; }
.scn-armado-costard-arrival .shadow-costard { left: 68%; width: 32px; animation: aca-shadow 3.5s ease-in-out infinite 1s; }
@keyframes aca-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes aca-ground {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes aca-armado {
  0% { transform: translateX(0) rotate(-3deg); }
  25% { transform: translateX(5px) rotate(3deg); }
  50% { transform: translateX(0) rotate(-2deg); }
  75% { transform: translateX(8px) rotate(4deg); }
  100% { transform: translateX(0) rotate(-3deg); }
}
@keyframes aca-moth {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(-3px) translateY(-2px) rotate(5deg); }
  60% { transform: translateX(3px) translateY(2px) rotate(-5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes aca-costard {
  0% { transform: translateX(0) rotate(2deg); }
  25% { transform: translateX(-4px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(1deg); }
  75% { transform: translateX(-2px) rotate(3deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes aca-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(0.8); opacity: 0.3; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

.scn-wit-duel-moth-holofernes {
  background: linear-gradient(180deg, #FFF8DC 0%, #F5DEB3 40%, #D2B48C 100%),
              radial-gradient(ellipse at 50% 60%, #FFFACD 0%, transparent 50%);
}
.scn-wit-duel-moth-holofernes .backdrop {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #B0E0E6 0%, transparent);
  animation: wdm-backdrop 14s ease-in-out infinite alternate;
}
.scn-wit-duel-moth-holofernes .figure-moth {
  position: absolute; bottom: 20%; left: 28%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #D2B48C 0%, #8B7355 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wdm-moth 3s ease-in-out infinite;
}
.scn-wit-duel-moth-holofernes .figure-holofernes {
  position: absolute; bottom: 18%; right: 28%; width: 24px; height: 65px;
  background: linear-gradient(180deg, #4A3B2A 0%, #2B1F14 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: wdm-holo 3.5s ease-in-out infinite;
}
.scn-wit-duel-moth-holofernes .speech-bubble-moth,
.scn-wit-duel-moth-holofernes .speech-bubble-holo {
  position: absolute; width: 40px; height: 30px;
  background: rgba(255,255,255,0.8);
  border-radius: 50% 50% 50% 20%;
  filter: blur(1px);
  animation: wdm-bubble 4s ease-in-out infinite;
}
.scn-wit-duel-moth-holofernes .speech-bubble-moth { bottom: 52%; left: 20%; }
.scn-wit-duel-moth-holofernes .speech-bubble-holo { bottom: 55%; right: 20%; animation-delay: 1s; }
.scn-wit-duel-moth-holofernes .sparks {
  position: absolute; top: 40%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle, #FFD700 0%, transparent 70%);
  animation: wdm-sparkle 2s ease-in-out infinite;
}
@keyframes wdm-backdrop {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes wdm-moth {
  0% { transform: translateX(0) rotate(-4deg); }
  25% { transform: translateX(8px) rotate(6deg); }
  50% { transform: translateX(0) rotate(-2deg); }
  75% { transform: translateX(-6px) rotate(8deg); }
  100% { transform: translateX(0) rotate(-4deg); }
}
@keyframes wdm-holo {
  0% { transform: translateX(0) rotate(3deg); }
  25% { transform: translateX(-5px) rotate(-5deg); }
  50% { transform: translateX(0) rotate(2deg); }
  75% { transform: translateX(7px) rotate(-4deg); }
  100% { transform: translateX(0) rotate(3deg); }
}
@keyframes wdm-bubble {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.1) translateY(-5px); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes wdm-sparkle {
  0% { opacity: 0; transform: scale(0.5); }
  50% { opacity: 1; transform: scale(1.5); }
  100% { opacity: 0; transform: scale(0.5); }
}

/* costard-jaquenetta-return */
.scn-costard-jaquenetta-return {
  background: linear-gradient(180deg, #4a90c4 0%, #7ab0e0 30%, #c0d8f0 60%, #e8f0f8 80%, #f0d8a0 100%),
              radial-gradient(ellipse at 20% 80%, #f0d8a0 0%, transparent 60%);
}
.scn-costard-jaquenetta-return .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a90c4 0%, #7ab0e0 60%, transparent);
  animation: cjr-sky 12s ease-in-out infinite alternate;
}
.scn-costard-jaquenetta-return .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #d0b080 0%, #a08060 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-costard-jaquenetta-return .pillar {
  position: absolute; bottom: 40%; width: 20px; height: 50%;
  background: linear-gradient(90deg, #c8b090 0%, #e0d0b0 30%, #c8b090 100%);
  box-shadow: 5px 0 10px rgba(0,0,0,0.3);
}
.scn-costard-jaquenetta-return .pillar.left { left: 15%; }
.scn-costard-jaquenetta-return .pillar.right { right: 15%; }
.scn-costard-jaquenetta-return .throne {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 60px;
  background: linear-gradient(180deg, #b09070 0%, #806040 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: cjr-throne 4s ease-in-out infinite alternate;
}
.scn-costard-jaquenetta-return .figure {
  position: absolute; bottom: 40%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #a08060 0%, #604030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-costard-jaquenetta-return .figure.costard { left: 35%; animation: cjr-walk1 5s ease-in-out infinite; }
.scn-costard-jaquenetta-return .figure.jaquenetta { right: 35%; animation: cjr-walk2 5s ease-in-out infinite 0.5s; }
.scn-costard-jaquenetta-return .letter {
  position: absolute; bottom: 55%; left: 48%; width: 14px; height: 10px;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0b090 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(10deg);
  animation: cjr-letter 4s ease-in-out infinite alternate;
}
.scn-costard-jaquenetta-return .light-ray {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.15) 0%, transparent 60%);
  clip-path: polygon(30% 0, 70% 0, 60% 100%, 40% 100%);
  animation: cjr-ray 8s ease-in-out infinite alternate;
}
@keyframes cjr-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes cjr-throne { 0%, 100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px); } }
@keyframes cjr-walk1 { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(-2deg); } 75% { transform: translateX(24px) rotate(2deg); } 100% { transform: translateX(32px) rotate(0); } }
@keyframes cjr-walk2 { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-8px) rotate(-2deg); } 50% { transform: translateX(-16px) rotate(2deg); } 75% { transform: translateX(-24px) rotate(-2deg); } 100% { transform: translateX(-32px) rotate(0); } }
@keyframes cjr-letter { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-4px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes cjr-ray { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.1); } 100% { opacity: 0.4; transform: scaleX(0.9); } }

/* biron-confession */
.scn-biron-confession {
  background: linear-gradient(180deg, #f5e6c8 0%, #f0d8a0 20%, #e0c080 50%, #c8a060 80%, #b08840 100%),
              radial-gradient(circle at 50% 10%, #fff8e0 0%, #f0d8a0 70%);
}
.scn-biron-confession .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f5e6c8 0%, #f0d8a0 60%, transparent);
  animation: bcn-sky 10s ease-in-out infinite alternate;
}
.scn-biron-confession .sun {
  position: absolute; top: 5%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8e0 0%, #f0d8a0 50%, transparent 75%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,240,200,0.6);
  animation: bcn-sun 6s ease-in-out infinite alternate;
}
.scn-biron-confession .pedestal {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 20px;
  background: linear-gradient(180deg, #c8a060 0%, #906030 100%);
  border-radius: 5px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-biron-confession .group {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 80px;
  background: radial-gradient(circle at 50% 40%, #c8a060 30%, #a08040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(160,128,64,0.4);
  animation: bcn-group 8s ease-in-out infinite alternate;
}
.scn-biron-confession .aura {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%) scale(0.8);
  width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(255,240,200,0.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: bcn-aura 10s ease-in-out infinite alternate;
}
.scn-biron-confession .flower {
  position: absolute; bottom: 10%; left: 35%; width: 12px; height: 12px;
  background: #e08060;
  border-radius: 50%;
  box-shadow: 0 0 6px #e08060;
  animation: bcn-flower 4s ease-in-out infinite;
}
@keyframes bcn-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes bcn-sun { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 40px 20px rgba(255,240,200,0.6); } 50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 60px 30px rgba(255,240,200,0.8); } 100% { transform: translateX(-50%) scale(0.95); box-shadow: 0 0 30px 15px rgba(255,240,200,0.4); } }
@keyframes bcn-group { 0% { transform: translateX(-50%) translateY(0) scale(1); } 50% { transform: translateX(-50%) translateY(-3px) scale(1.02); } 100% { transform: translateX(-50%) translateY(0) scale(0.98); } }
@keyframes bcn-aura { 0% { opacity: 0.3; transform: translateX(-50%) scale(0.8); } 50% { opacity: 0.7; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.4; transform: translateX(-50%) scale(0.9); } }
@keyframes bcn-flower { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.3) rotate(20deg); } }

/* biron-loves-rosaline */
.scn-biron-loves-rosaline {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 30%, #e0f0f8 60%, #fff8e0 100%),
              radial-gradient(ellipse at 50% 60%, #fff8e0 0%, transparent 70%);
}
.scn-biron-loves-rosaline .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 60%, transparent);
  animation: blr-sky 15s ease-in-out infinite alternate;
}
.scn-biron-loves-rosaline .sun {
  position: absolute; top: 10%; left: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8e0 0%, #f0d8a0 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,240,200,0.5);
  animation: blr-sun 8s ease-in-out infinite alternate;
}
.scn-biron-loves-rosaline .moon {
  position: absolute; top: 15%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f0f0f0 0%, #c0c0c0 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(200,200,200,0.3);
  animation: blr-moon 12s ease-in-out infinite alternate;
}
.scn-biron-loves-rosaline .star {
  position: absolute; top: 12%; right: 28%; width: 6px; height: 6px;
  background: #fff8e0;
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,248,224,0.8);
  animation: blr-star 4s ease-in-out infinite alternate;
}
.scn-biron-loves-rosaline .figure.biron {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #c8a060 0%, #806040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: blr-figure 6s ease-in-out infinite alternate;
}
.scn-biron-loves-rosaline .tree {
  position: absolute; bottom: 20%; left: 10%; width: 15px; height: 50px;
  background: linear-gradient(180deg, #6b4226 0%, #3b2213 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  animation: blr-tree 10s ease-in-out infinite alternate;
}
@keyframes blr-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes blr-sun { 0% { transform: translateX(0); } 50% { transform: translateX(10px) scale(1.05); } 100% { transform: translateX(-5px) scale(0.95); } }
@keyframes blr-moon { 0% { transform: translateY(0); opacity: 0.5; } 50% { transform: translateY(-5px); opacity: 0.8; } 100% { transform: translateY(2px); opacity: 0.6; } }
@keyframes blr-star { 0% { opacity: 0.2; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(0.9); } }
@keyframes blr-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-4px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes blr-tree { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.97); } }

/* biron-rosaline-black */
.scn-biron-rosaline-black {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 20%, #3a3a5e 50%, #5a4a3a 80%, #7a6a4a 100%),
              radial-gradient(circle at 80% 20%, #f0d8a0 0%, transparent 60%);
}
.scn-biron-rosaline-black .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 60%, transparent);
  animation: brb-sky 8s ease-in-out infinite alternate;
}
.scn-biron-rosaline-black .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-biron-rosaline-black .sun {
  position: absolute; top: 10%; right: 10%; width: 45px; height: 45px;
  background: radial-gradient(circle, #fff8e0 0%, #f0d8a0 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,240,200,0.4);
  animation: brb-sun 10s ease-in-out infinite alternate;
}
.scn-biron-rosaline-black .figure.dark {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 5px rgba(0,0,0,0.8);
  animation: brb-figure 5s ease-in-out infinite alternate;
}
.scn-biron-rosaline-black .shadow {
  position: absolute; bottom: 20%; left: 45%; width: 50px; height: 10px;
  background: rgba(0,0,0,0.6);
  border-radius: 50%;
  filter: blur(4px);
  animation: brb-shadow 5s ease-in-out infinite alternate;
}
.scn-biron-rosaline-black .halo {
  position: absolute; top: 5%; left: 40%; width: 70px; height: 70px;
  background: radial-gradient(circle, rgba(255,240,200,0.1) 0%, transparent 70%);
  border-radius: 50%;
  animation: brb-halo 12s ease-in-out infinite alternate;
}
@keyframes brb-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes brb-sun { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.7; } }
@keyframes brb-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes brb-shadow { 0% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(1.2); opacity: 0.8; } 100% { transform: scaleX(0.9); opacity: 0.4; } }
@keyframes brb-halo { 0% { transform: scale(0.8); opacity: 0.2; } 50% { transform: scale(1.3); opacity: 0.6; } 100% { transform: scale(0.9); opacity: 0.3; } }

.scn-item-carnation-ribbon {
  background: linear-gradient(180deg, #fdf6e3 0%, #f5e6c8 50%, #ede0b0 100%),
              radial-gradient(ellipse at 50% 30%, #fff8e7 0%, transparent 70%);
}
.scn-item-carnation-ribbon .counter {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #c8a87a 0%, #a0845c 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  animation: cr-counter 12s ease-in-out infinite alternate;
}
.scn-item-carnation-ribbon .ribbon {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 12px;
  transform: translateX(-50%) rotate(-8deg);
  background: linear-gradient(90deg, #b87878 0%, #d4a0a0 50%, #b87878 100%);
  border-radius: 6px; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: cr-ribbon 5s ease-in-out infinite;
}
.scn-item-carnation-ribbon .coin {
  position: absolute; bottom: 22%; width: 20px; height: 20px;
  background: radial-gradient(circle at 40% 40%, #f0d060 0%, #c8a830 100%);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: cr-coin 6s ease-in-out infinite;
}
.scn-item-carnation-ribbon .coin-1 { left: 25%; animation-delay: 0s; }
.scn-item-carnation-ribbon .coin-2 { left: 60%; animation-delay: 1.5s; }
.scn-item-carnation-ribbon .hand {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #e0c8a8 0%, #c4a888 100%);
  border-radius: 40% 40% 20% 20%; transform-origin: bottom center;
  animation: cr-hand 4s ease-in-out infinite;
}
.scn-item-carnation-ribbon .price-tag {
  position: absolute; bottom: 30%; left: 70%; width: 24px; height: 16px;
  background: #f5e6c8; border: 1px solid #a0845c; border-radius: 2px;
  transform: rotate(10deg); animation: cr-tag 7s ease-in-out infinite alternate;
}
.scn-item-carnation-ribbon .silk-scrap {
  position: absolute; bottom: 32%; left: 35%; width: 40px; height: 20px;
  background: linear-gradient(135deg, #b87878 30%, transparent 70%);
  border-radius: 60% 20% 40% 40%; filter: blur(2px); opacity: 0.6;
  animation: cr-scrap 8s ease-in-out infinite;
}
@keyframes cr-counter { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes cr-ribbon { 0%,100% { transform: translateX(-50%) rotate(-8deg) translateY(0); } 25% { transform: translateX(-50%) rotate(-5deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(-10deg) translateY(0); } 75% { transform: translateX(-50%) rotate(-6deg) translateY(-1px); } }
@keyframes cr-coin { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(15deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-10deg); } }
@keyframes cr-hand { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-8px) rotate(5deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(6px) rotate(3deg); } }
@keyframes cr-tag { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes cr-scrap { 0% { opacity: 0.6; transform: translateX(0) scale(1); } 50% { opacity: 1; transform: translateX(4px) scale(1.05); } 100% { opacity: 0.6; transform: translateX(0) scale(1); } }

.scn-biron-gives-letter {
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a0 50%, #c0b080 100%),
              radial-gradient(ellipse at 50% 80%, #e8d8b0 0%, transparent 70%);
}
.scn-biron-gives-letter .desk {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 8px 8px 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
  animation: bg-desk 10s ease-in-out infinite alternate;
}
.scn-biron-gives-letter .desk-shadow {
  position: absolute; bottom: 8%; left: 5%; right: 5%; height: 4px;
  background: rgba(0,0,0,0.15); filter: blur(3px);
  animation: bg-shadow 10s ease-in-out infinite alternate;
}
.scn-biron-gives-letter .letter {
  position: absolute; bottom: 28%; left: 50%; width: 50px; height: 35px;
  transform: translateX(-50%) rotate(-5deg);
  background: linear-gradient(180deg, #f5f0e0 0%, #e8dcc0 100%);
  border: 1px solid #c0a880; border-radius: 2px;
  animation: bg-letter 4s ease-in-out infinite;
}
.scn-biron-gives-letter .hand-give {
  position: absolute; bottom: 25%; left: 38%; width: 28px; height: 36px;
  background: linear-gradient(180deg, #d8b890 0%, #c0a080 100%);
  border-radius: 40% 30% 20% 40%; transform-origin: bottom center;
  animation: bg-hand-give 3s ease-in-out infinite;
}
.scn-biron-gives-letter .hand-take {
  position: absolute; bottom: 24%; left: 56%; width: 26px; height: 34px;
  background: linear-gradient(180deg, #d0b090 0%, #b89878 100%);
  border-radius: 30% 40% 40% 20%; transform-origin: bottom center;
  animation: bg-hand-take 3.5s ease-in-out infinite;
}
.scn-biron-gives-letter .candle {
  position: absolute; bottom: 26%; right: 15%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #f0e0c0 0%, #e0c890 100%);
  border-radius: 4px 4px 2px 2px;
  animation: bg-candle 6s ease-in-out infinite;
}
.scn-biron-gives-letter .inkwell {
  position: absolute; bottom: 24%; left: 20%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: bg-inkwell 8s ease-in-out infinite alternate;
}
@keyframes bg-desk { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } }
@keyframes bg-shadow { 0% { opacity: 0.15; } 50% { opacity: 0.25; } 100% { opacity: 0.15; } }
@keyframes bg-letter { 0%,100% { transform: translateX(-50%) rotate(-5deg) translateY(0); } 30% { transform: translateX(-50%) rotate(-3deg) translateY(-2px); } 60% { transform: translateX(-50%) rotate(-7deg) translateY(0); } 100% { transform: translateX(-50%) rotate(-5deg) translateY(0); } }
@keyframes bg-hand-give { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(5deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(3px) rotate(3deg); } }
@keyframes bg-hand-take { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-3px) rotate(-4deg); } 60% { transform: translateX(0) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bg-candle { 0%,100% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.05) rotate(2deg); } }
@keyframes bg-inkwell { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

.scn-biron-soliloquy {
  background: linear-gradient(180deg, #f5e6c8 0%, #e8d8b0 50%, #d4c098 100%),
              radial-gradient(ellipse at 50% 50%, #fff8e7 0%, transparent 80%);
}
.scn-biron-soliloquy .pedestal {
  position: absolute; bottom: 15%; left: 50%; width: 60px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c0a880 0%, #a08860 100%);
  border-radius: 8px 8px 4px 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: bs-pedestal 10s ease-in-out infinite alternate;
}
.scn-biron-soliloquy .figure {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: bs-figure 4s ease-in-out infinite;
}
.scn-biron-soliloquy .swirl {
  position: absolute; bottom: 40%; left: 30%; width: 60px; height: 40px;
  background: radial-gradient(circle at 50% 50%, transparent 20%, #d4a0a0 40%, transparent 60%);
  border-radius: 50%; filter: blur(4px); opacity: 0.6;
  animation: bs-swirl 6s linear infinite;
}
.scn-biron-soliloquy .heart {
  position: absolute; bottom: 50%; left: 60%; width: 30px; height: 28px;
  background: radial-gradient(circle at 50% 40%, #c8553d 0%, #b0402a 100%);
  border-radius: 50% 50% 0 0; transform: rotate(45deg);
  animation: bs-heart 3s ease-in-out infinite;
}
.scn-biron-soliloquy .clock {
  position: absolute; bottom: 45%; right: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f0e0c0 0%, #c0a880 70%);
  border-radius: 50%; border: 2px solid #a08860;
  animation: bs-clock 12s linear infinite;
}
.scn-biron-soliloquy .mask {
  position: absolute; bottom: 35%; left: 20%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #e0c8a8 0%, #c0a080 100%);
  border-radius: 50% 50% 30% 30%;
  animation: bs-mask 5s ease-in-out infinite alternate;
}
@keyframes bs-pedestal { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.95); } }
@keyframes bs-figure { 0%,100% { transform: translateX(-50%) rotate(0deg); } 20% { transform: translateX(-50%) rotate(5deg); } 40% { transform: translateX(-50%) rotate(-3deg); } 60% { transform: translateX(-50%) rotate(4deg); } 80% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes bs-swirl { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(10px) rotate(180deg); opacity: 0.8; } 100% { transform: translateX(0) rotate(360deg); opacity: 0.6; } }
@keyframes bs-heart { 0%,100% { transform: rotate(45deg) scale(1); } 50% { transform: rotate(45deg) scale(1.2); } }
@keyframes bs-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes bs-mask { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-3px) scale(0.95); } }

.scn-princess-hunting-arrival {
  background: linear-gradient(180deg, #fde9c8 0%, #f0d8a0 50%, #d8b880 100%),
              radial-gradient(ellipse at 50% 0%, #fff5d6 0%, transparent 60%);
}
.scn-princess-hunting-arrival .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f0d8a0 0%, #e8c890 50%, transparent 100%);
  animation: ph-sky 15s ease-in-out infinite alternate;
}
.scn-princess-hunting-arrival .sun {
  position: absolute; top: 5%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff0b0 0%, #f0d060 70%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(240,208,96,0.4);
  animation: ph-sun 20s ease-in-out infinite;
}
.scn-princess-hunting-arrival .tree-left {
  position: absolute; bottom: 30%; left: 8%; width: 40px; height: 120px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: inset -4px 0 8px rgba(0,0,0,0.3);
  animation: ph-tree 12s ease-in-out infinite alternate;
}
.scn-princess-hunting-arrival .tree-right {
  position: absolute; bottom: 30%; right: 10%; width: 50px; height: 140px;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: inset 4px 0 8px rgba(0,0,0,0.3);
  animation: ph-tree 14s ease-in-out infinite alternate-reverse;
}
.scn-princess-hunting-arrival .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 40% 30% 0 0 / 60% 50% 0 0;
  animation: ph-ground 10s ease-in-out infinite alternate;
}
.scn-princess-hunting-arrival .figure {
  position: absolute; bottom: 32%; left: 45%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ph-figure 8s ease-in-out infinite;
}
.scn-princess-hunting-arrival .bow {
  position: absolute; bottom: 33%; left: 42%; width: 40px; height: 8px;
  background: linear-gradient(90deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4px; transform: rotate(-20deg);
  animation: ph-bow 6s ease-in-out infinite;
}
.scn-princess-hunting-arrival .ray {
  position: absolute; top: 0; width: 100px; height: 4px;
  background: linear-gradient(90deg, transparent, rgba(255,240,176,0.3), transparent);
  filter: blur(2px); animation: ph-ray 8s linear infinite;
}
.scn-princess-hunting-arrival .ray-1 { left: 20%; transform: rotate(15deg); animation-delay: 0s; }
.scn-princess-hunting-arrival .ray-2 { left: 50%; transform: rotate(-10deg); animation-delay: 4s; }
@keyframes ph-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ph-sun { 0%,100% { transform: scale(1); } 50% { transform: scale(1.05); box-shadow: 0 0 40px 15px rgba(240,208,96,0.5); } }
@keyframes ph-tree { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.02) translateX(2px); } 100% { transform: scaleY(1) translateX(0); } }
@keyframes ph-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes ph-figure { 0%,100% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(2deg); } 60% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes ph-bow { 0%,100% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg); } }
@keyframes ph-ray { 0% { opacity: 0; transform: translateX(-30px) rotate(15deg); } 50% { opacity: 0.6; } 100% { opacity: 0; transform: translateX(30px) rotate(15deg); } }

/* biron-task-hospital – tense, dusk */
.scn-biron-task-hospital {
  background: linear-gradient(180deg, #1b1a3a 0%, #2c2448 30%, #4a3a4e 70%, #3a2a2a 100%),
              radial-gradient(ellipse at 40% 20%, #5a4a6e 0%, transparent 60%);
}
.scn-biron-task-hospital .sky-dusk {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1a3a 0%, #4a3a5a 40%, transparent 100%);
  animation: btask-sky 12s ease-in-out infinite alternate;
}
.scn-biron-task-hospital .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}
.scn-biron-task-hospital .building {
  position: absolute; bottom: 25%; left: 45%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
  transform: translateX(-50%);
  animation: btask-build 8s ease-in-out infinite;
}
.scn-biron-task-hospital .window {
  position: absolute; bottom: 38%; left: 50%; width: 24px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c88040 0%, #a06020 60%, transparent 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 6px #a06020, 0 0 40px 12px rgba(160,96,32,.3);
  animation: btask-window 3s ease-in-out infinite alternate;
}
.scn-biron-task-hospital .bar1,
.scn-biron-task-hospital .bar2 {
  position: absolute; width: 4px; height: 30px;
  background: #1a1a1a;
  bottom: 38%; left: 50%;
  transform: translateX(-50%);
}
.scn-biron-task-hospital .bar1 { margin-left: -6px; }
.scn-biron-task-hospital .bar2 { margin-left: 6px; }
.scn-biron-task-hospital .figure-biron {
  position: absolute; bottom: 28%; left: 36%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: btask-figure 5s ease-in-out infinite;
}
.scn-biron-task-hospital .arm-mocking {
  position: absolute; bottom: 42%; left: 34%;
  width: 28px; height: 6px;
  background: #1a1a2a;
  border-radius: 20% 20% 20% 20%;
  transform-origin: 0% 50%;
  animation: btask-arm 2s ease-in-out infinite alternate;
}
.scn-biron-task-hospital .ray {
  position: absolute; bottom: 20%; left: 10%;
  width: 100px; height: 2px;
  background: linear-gradient(90deg, rgba(200,128,64,.4) 0%, transparent 100%);
  filter: blur(1px);
  animation: btask-ray 6s ease-in-out infinite;
}
@keyframes btask-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes btask-build { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes btask-window { 0% { box-shadow: 0 0 14px 3px #a06020; opacity:.7 } 50% { box-shadow: 0 0 30px 8px #e08040; opacity:1 } 100% { box-shadow: 0 0 18px 4px #a06020; opacity:.8 } }
@keyframes btask-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(1deg) } 50% { transform: translateX(10px) rotate(-1deg) } 75% { transform: translateX(15px) rotate(2deg) } 100% { transform: translateX(20px) rotate(0) } }
@keyframes btask-arm { 0% { transform: rotate(-30deg) } 100% { transform: rotate(30deg) } }
@keyframes btask-ray { 0% { opacity:0 } 50% { opacity:.6 } 100% { opacity:0 } }

/* impossible-task – tense, dusk */
.scn-impossible-task {
  background: linear-gradient(180deg, #10102a 0%, #202040 40%, #3a2a4a 80%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a5a 0%, transparent 70%);
}
.scn-impossible-task .dusk-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #3a2a4a 50%, transparent 100%);
  animation: imp-sky 15s ease-in-out infinite alternate;
}
.scn-impossible-task .ground-void {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0a0a1a 0%, #000010 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
}
.scn-impossible-task .death-tower {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(20,20,40,.8);
  animation: imp-death 9s ease-in-out infinite;
}
.scn-impossible-task .death-eye {
  position: absolute; bottom: 50%; left: 50%; width: 12px; height: 18px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c03a2a 0%, #8a2020 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #8a2020;
  animation: imp-eye 2s ease-in-out infinite alternate;
}
.scn-impossible-task .mirth-figure {
  position: absolute; bottom: 22%; left: 35%;
  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: imp-mirth 4s ease-in-out infinite;
}
.scn-impossible-task .mirth-gesture {
  position: absolute; bottom: 35%; left: 32%;
  width: 20px; height: 4px;
  background: #2a2a3a;
  border-radius: 20% 20% 20% 20%;
  transform-origin: 0% 50%;
  animation: imp-gesture 1.5s ease-in-out infinite alternate;
}
.scn-impossible-task .crack {
  position: absolute; bottom: 35%; left: 49%;
  width: 6px; height: 40px;
  background: linear-gradient(180deg, transparent 0%, #3a3a5a 20%, transparent 40%, #3a3a5a 60%, transparent 80%);
  filter: blur(1px);
  animation: imp-crack 7s ease-in-out infinite;
}
@keyframes imp-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes imp-death { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } }
@keyframes imp-eye { 0% { opacity:.6; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.3) } 100% { opacity:.7; transform: translateX(-50%) scale(1) } }
@keyframes imp-mirth { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-2deg) } 75% { transform: translateX(12px) rotate(1deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes imp-gesture { 0% { transform: rotate(-40deg) } 100% { transform: rotate(40deg) } }
@keyframes imp-crack { 0% { opacity:0 } 50% { opacity:.8 } 100% { opacity:0 } }

/* biron-accepts-hospital – warm, dusk */
.scn-biron-accepts-hospital {
  background: linear-gradient(180deg, #4a2a1a 0%, #7a4a2a 30%, #9a6a3a 60%, #6a4a2a 100%),
              radial-gradient(ellipse at 60% 20%, #c08040 0%, transparent 60%);
}
.scn-biron-accepts-hospital .warm-sky {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #6a3a1a 0%, #9a5a2a 40%, transparent 100%);
  animation: bacc-sky 14s ease-in-out infinite alternate;
}
.scn-biron-accepts-hospital .path {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 25%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3a1a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
}
.scn-biron-accepts-hospital .tree-left {
  position: absolute; bottom: 20%; left: 12%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  animation: bacc-tree 10s ease-in-out infinite;
}
.scn-biron-accepts-hospital .tree-right {
  position: absolute; bottom: 20%; right: 12%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  animation: bacc-tree 12s ease-in-out infinite reverse;
}
.scn-biron-accepts-hospital .figure-biron-warm {
  position: absolute; bottom: 10%; left: 42%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bacc-walk 6s ease-in-out infinite;
}
.scn-biron-accepts-hospital .figure-lady {
  position: absolute; bottom: 10%; left: 35%;
  width: 18px; height: 48px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bacc-walk 6s ease-in-out infinite 0.2s;
}
.scn-biron-accepts-hospital .lantern-glow {
  position: absolute; bottom: 18%; left: 46%;
  width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px #c08040, 0 0 48px 16px rgba(192,128,64,.3);
  animation: bacc-lantern 4s ease-in-out infinite alternate;
}
@keyframes bacc-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes bacc-tree { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } }
@keyframes bacc-walk { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(5px) rotate(1deg) } 50% { transform: translateX(10px) rotate(-1deg) } 75% { transform: translateX(15px) rotate(1deg) } 100% { transform: translateX(20px) rotate(0) } }
@keyframes bacc-lantern { 0% { box-shadow: 0 0 18px 4px #c08040; opacity:.8 } 50% { box-shadow: 0 0 36px 10px #ffc060; opacity:1 } 100% { box-shadow: 0 0 22px 5px #c08040; opacity:.9 } }

/* reenter-armado – funny, dusk */
.scn-reenter-armado {
  background: linear-gradient(180deg, #2a2040 0%, #4a3050 30%, #6a4060 60%, #5a3050 100%),
              radial-gradient(ellipse at 50% 30%, #7a5070 0%, transparent 70%);
}
.scn-reenter-armado .comic-sky {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #3a2a4a 0%, #6a4060 50%, transparent 100%);
  animation: arma-sky 18s ease-in-out infinite alternate;
}
.scn-reenter-armado .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
}
.scn-reenter-armado .armado-body {
  position: absolute; bottom: 8%; left: 50%; width: 30px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a3a 0%, #2a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: arma-body 3s ease-in-out infinite;
}
.scn-reenter-armado .armado-head {
  position: absolute; bottom: 54%; left: 50%; width: 18px; height: 22px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a4a 0%, #3a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: arma-head 2s ease-in-out infinite alternate;
}
.scn-reenter-armado .armado-hat {
  position: absolute; bottom: 68%; left: 50%; width: 40px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  animation: arma-hat 4s ease-in-out infinite;
}
.scn-reenter-armado .hat-plume {
  position: absolute; bottom: 72%; left: 62%;
  width: 8px; height: 20px;
  background: linear-gradient(180deg, #b87878 0%, #8a5a5a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: arma-plume 1.5s ease-in-out infinite alternate;
}
.scn-reenter-armado .armado-arm {
  position: absolute; bottom: 30%; left: 44%;
  width: 24px; height: 6px;
  background: #3a1a2a;
  border-radius: 20% 20% 20% 20%;
  transform-origin: 100% 50%;
  animation: arma-arm 2s ease-in-out infinite alternate;
}
.scn-reenter-armado .sparkle {
  position: absolute; bottom: 50%; left: 30%;
  width: 4px; height: 4px;
  background: #f0d080;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #f0d080;
  animation: arma-sparkle 2s ease-in-out infinite alternate;
}
.scn-reenter-armado .shadow-line {
  position: absolute; bottom: 0; left: 40%; right: 40%; height: 2px;
  background: #1a1a2a;
  border-radius: 50%;
  filter: blur(2px);
  animation: arma-shadow 3s ease-in-out infinite;
}
@keyframes arma-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes arma-body { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(-3deg) } }
@keyframes arma-head { 0% { transform: translateX(-50%) rotate(-5deg) } 100% { transform: translateX(-50%) rotate(5deg) } }
@keyframes arma-hat { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(5deg) } }
@keyframes arma-plume { 0% { transform: rotate(-10deg) } 100% { transform: rotate(10deg) } }
@keyframes arma-arm { 0% { transform: rotate(-40deg) } 100% { transform: rotate(20deg) } }
@keyframes arma-sparkle { 0% { opacity:.3; transform: scale(1) } 100% { opacity:1; transform: scale(1.5) } }
@keyframes arma-shadow { 0% { opacity:.3; transform: scaleY(1) } 50% { opacity:.6; transform: scaleY(2) } 100% { opacity:.3; transform: scaleY(1) } }

.scn-ladies-rated-letters {
  background:
    linear-gradient(180deg, #3a2a4a 0%, #6b4a5a 30%, #c89a6a 70%, #e8c88a 100%),
    radial-gradient(ellipse at 50% 80%, #e8c88a 0%, transparent 60%);
}
.scn-ladies-rated-letters .sky-lrl {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #5a4a6a 0%, #8a6a7a 50%, transparent 100%);
  animation: lrl-sky 15s ease-in-out infinite alternate;
}
.scn-ladies-rated-letters .garden-lrl {
  position:absolute; bottom:30%; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 100%);
  border-radius: 60% 40% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: lrl-garden 20s ease-in-out infinite alternate;
}
.scn-ladies-rated-letters .table-lrl {
  position:absolute; bottom:25%; left:50%; width:140px; height:24px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #8a6a4a, #b08a6a, #8a6a4a);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-ladies-rated-letters .figure-lrl {
  position:absolute; bottom:25%; left:50%; width:28px; height:60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lrl-figure 6s ease-in-out infinite;
}
.scn-ladies-rated-letters .letter-lrl {
  position:absolute; bottom:28%; width:16px; height:20px;
  background: linear-gradient(135deg, #e0c8a0, #c8a880);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: lrl-float 8s ease-in-out infinite;
}
.scn-ladies-rated-letters .letter-a-lrl { left:38%; }
.scn-ladies-rated-letters .letter-b-lrl { left:46%; animation-delay: -2s; }
.scn-ladies-rated-letters .letter-c-lrl { left:54%; animation-delay: -4s; }
.scn-ladies-rated-letters .lantern-lrl {
  position:absolute; bottom:30%; left:30%; width:12px; height:18px;
  background: radial-gradient(circle, #ffd080 0%, #c09050 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 8px rgba(255,208,128,0.6);
  animation: lrl-lantern 4s ease-in-out infinite alternate;
}
.scn-ladies-rated-letters .glow-lrl {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 40% 50%, rgba(255,208,128,0.15) 0%, transparent 60%);
  animation: lrl-glow 10s ease-in-out infinite alternate;
}
@keyframes lrl-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes lrl-garden { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes lrl-figure { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes lrl-float { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-6px) rotate(5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes lrl-lantern { 0% { box-shadow: 0 0 12px 4px rgba(255,208,128,0.5); transform: rotate(-3deg); } 100% { box-shadow: 0 0 24px 12px rgba(255,208,128,0.7); transform: rotate(3deg); } }
@keyframes lrl-glow { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.5 } }

.scn-latest-minute-bargain {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #8a5a3a 70%, #c08050 100%),
    radial-gradient(ellipse at 50% 90%, #c08050 0%, transparent 70%);
}
.scn-latest-minute-bargain .sky-lmb {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #7a5a3a 50%, transparent 100%);
  animation: lmb-sky 12s ease-in-out infinite alternate;
}
.scn-latest-minute-bargain .ground-lmb {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 70% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-latest-minute-bargain .figure-lmb {
  position:absolute; bottom:20%; width:30px; height:70px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lmb-figure 2s ease-in-out infinite alternate;
}
.scn-latest-minute-bargain .figure-left-lmb { left:30%; transform-origin: bottom center; }
.scn-latest-minute-bargain .figure-right-lmb { left:55%; transform-origin: bottom center; animation-delay: -0.5s; }
.scn-latest-minute-bargain .ring-lmb {
  position:absolute; bottom:35%; left:50%; width:16px; height:16px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c88050 0%, #a06030 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(200,128,80,0.7);
  animation: lmb-ring 1.5s ease-in-out infinite alternate;
}
.scn-latest-minute-bargain .mist-lmb {
  position:absolute; bottom:10%; width:120px; height:20px;
  background: linear-gradient(90deg, transparent, rgba(200,160,100,0.2), transparent);
  border-radius: 50%;
  filter: blur(8px);
  animation: lmb-mist 8s linear infinite;
}
.scn-latest-minute-bargain .mist-a-lmb { left:10%; }
.scn-latest-minute-bargain .mist-b-lmb { right:10%; animation-delay: -4s; }
.scn-latest-minute-bargain .shadow-lmb {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: lmb-shadow 4s ease-in-out infinite alternate;
}
@keyframes lmb-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.5 } }
@keyframes lmb-figure { 0% { transform: translateY(0) rotate(-2deg) scale(1) } 100% { transform: translateY(-3px) rotate(2deg) scale(1.02) } }
@keyframes lmb-ring { 0% { transform: translateX(-50%) scale(0.9) rotate(-10deg); box-shadow: 0 0 10px 4px rgba(200,128,80,0.5); } 100% { transform: translateX(-50%) scale(1.1) rotate(10deg); box-shadow: 0 0 30px 15px rgba(200,128,80,0.8); } }
@keyframes lmb-mist { 0% { transform: translateX(-30px) scaleX(1); opacity:0.3; } 50% { transform: translateX(30px) scaleX(1.5); opacity:0.6; } 100% { transform: translateX(-30px) scaleX(1); opacity:0.3; } }
@keyframes lmb-shadow { 0% { opacity:0.5 } 100% { opacity:1 } }

.scn-king-accepts-year {
  background:
    linear-gradient(180deg, #8a5a2a 0%, #c08040 30%, #e8b860 70%, #ffd880 100%),
    radial-gradient(ellipse at 50% 30%, #ffd880 0%, transparent 60%);
}
.scn-king-accepts-year .bg-kay {
  position:absolute; inset:0 0 30% 0;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,216,128,0.3) 0%, transparent 70%);
  animation: kay-bg 20s ease-in-out infinite alternate;
}
.scn-king-accepts-year .throne-kay {
  position:absolute; bottom:20%; left:50%; width:100px; height:80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a, #3a2a1a 80%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-king-accepts-year .king-kay {
  position:absolute; bottom:25%; left:50%; width:40px; height:90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a3a 0%, #4a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: kay-king 6s ease-in-out infinite;
}
.scn-king-accepts-year .crown-kay {
  position:absolute; bottom:80%; left:50%; width:30px; height:12px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #c8a040, #e8c860, #c8a040);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: 0 0 10px 4px rgba(232,200,96,0.5);
  animation: kay-crown 2s ease-in-out infinite alternate;
}
.scn-king-accepts-year .sceptre-kay {
  position:absolute; bottom:35%; left:55%; width:8px; height:50px;
  background: linear-gradient(180deg, #c8a040, #8a6a20);
  border-radius: 4px;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: kay-sceptre 4s ease-in-out infinite alternate;
}
.scn-king-accepts-year .light-kay {
  position:absolute; top:0; width:12px; height:100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.6) 0%, transparent 100%);
  filter: blur(6px);
  animation: kay-light 8s ease-in-out infinite alternate;
}
.scn-king-accepts-year .light-a-kay { left:30%; }
.scn-king-accepts-year .light-b-kay { right:30%; animation-delay: -4s; }
.scn-king-accepts-year .scroll-kay {
  position:absolute; bottom:38%; left:45%; width:20px; height:14px;
  background: linear-gradient(135deg, #e8d8b0, #c8b890);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: kay-scroll 5s ease-in-out infinite;
}
@keyframes kay-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes kay-king { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(0.5deg) translateY(-2px) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes kay-crown { 0% { transform: translateX(-50%) scaleY(1) } 100% { transform: translateX(-50%) scaleY(1.1) } }
@keyframes kay-sceptre { 0% { transform: rotate(12deg) scale(1) } 100% { transform: rotate(18deg) scale(1.05) } }
@keyframes kay-light { 0% { opacity:0.3; transform: scaleY(0.9); } 50% { opacity:0.7; transform: scaleY(1.1); } 100% { opacity:0.4; transform: scaleY(0.95); } }
@keyframes kay-scroll { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0deg) } }

.scn-rosaline-twelve-month {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #2a2a5a 30%, #4a4a7a 70%, #6a6a9a 100%),
    radial-gradient(ellipse at 50% 0%, #6a6a9a 0%, transparent 50%);
}
.scn-rosaline-twelve-month .sky-rtm {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #2a2a5a 0%, #4a4a7a 50%, transparent 100%);
  animation: rtm-sky 18s ease-in-out infinite alternate;
}
.scn-rosaline-twelve-month .window-rtm {
  position:absolute; bottom:20%; left:50%; width:120px; height:150px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%);
  border-radius: 4px 4px 8px 8px;
  border: 4px solid #5a3a1a;
  box-sizing: border-box;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-rosaline-twelve-month .sill-rtm {
  position:absolute; bottom:20%; left:42%; width:16%; height:6px;
  background: linear-gradient(90deg, #6a4a2a, #8a6a4a, #6a4a2a);
  border-radius: 2px;
}
.scn-rosaline-twelve-month .figure-rtm {
  position:absolute; bottom:28%; left:50%; width:24px; height:70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rtm-figure 8s ease-in-out infinite;
}
.scn-rosaline-twelve-month .moon-rtm {
  position:absolute; top:12%; left:60%; width:30px; height:30px;
  background: radial-gradient(circle at 65% 40%, #e8e0c0 0%, #c8c8a0 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px rgba(232,224,192,0.4);
  animation: rtm-moon 12s ease-in-out infinite alternate;
}
.scn-rosaline-twelve-month .stars-rtm {
  position:absolute; width:4px; height:4px;
  background: #e8e0c0;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(232,224,192,0.6);
  animation: rtm-star 4s ease-in-out infinite alternate;
}
.scn-rosaline-twelve-month .star-a-rtm { top:8%; left:25%; }
.scn-rosaline-twelve-month .star-b-rtm { top:18%; left:75%; animation-delay: -2s; }
.scn-rosaline-twelve-month .drapes-rtm {
  position:absolute; top:0; width:20%; height:100%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: rtm-drape 10s ease-in-out infinite alternate;
}
.scn-rosaline-twelve-month .drape-left-rtm { left:0; transform-origin: left center; }
.scn-rosaline-twelve-month .drape-right-rtm { right:0; transform-origin: right center; animation-delay: -3s; }
@keyframes rtm-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes rtm-figure { 0% { transform: translateX(-50%) rotate(0deg) scale(1) } 50% { transform: translateX(-50%) rotate(-1deg) translateY(-3px) scale(1.01) } 100% { transform: translateX(-50%) rotate(0deg) scale(1) } }
@keyframes rtm-moon { 0% { transform: translateY(0) scale(0.95); box-shadow: 0 0 20px 8px rgba(232,224,192,0.3); } 50% { transform: translateY(-4px) scale(1.05); box-shadow: 0 0 40px 20px rgba(232,224,192,0.5); } 100% { transform: translateY(0) scale(0.98); box-shadow: 0 0 30px 12px rgba(232,224,192,0.4); } }
@keyframes rtm-star { 0% { opacity:0.4; transform: scale(0.8); } 100% { opacity:1; transform: scale(1.2); } }
@keyframes rtm-drape { 0% { transform: scaleX(1) } 100% { transform: scaleX(1.03) } }

/* costard-ladies-putdown */
.scn-costard-ladies-putdown {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 40%, #b89a70 100%), radial-gradient(ellipse at 50% 30%, #fff5e0 0%, transparent 70%);
}
.scn-costard-ladies-putdown .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4e8 60%, #d4e8f0 100%);
  animation: clp-sky 12s ease-in-out infinite alternate;
}
.scn-costard-ladies-putdown .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #7da86a 0%, #5c8a4e 40%, #3a6030 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
  animation: clp-ground 18s ease-in-out infinite alternate;
}
.scn-costard-ladies-putdown .clown {
  position: absolute; bottom: 30%; left: 40%;
  width: 50px; height: 80px;
  background: linear-gradient(180deg, #e8b88a 0%, #c89060 50%, #a87040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: clp-clown 4s ease-in-out infinite;
}
.scn-costard-ladies-putdown .lady-left {
  position: absolute; bottom: 35%; left: 20%;
  width: 40px; height: 90px;
  background: linear-gradient(180deg, #f0d0b8 0%, #d8b098 60%, #b88870 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: clp-lady-l 6s ease-in-out infinite alternate;
}
.scn-costard-ladies-putdown .lady-right {
  position: absolute; bottom: 35%; left: 60%;
  width: 40px; height: 90px;
  background: linear-gradient(180deg, #f0d0b8 0%, #d8b098 60%, #b88870 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: clp-lady-r 6s ease-in-out infinite alternate;
  animation-delay: -3s;
}
.scn-costard-ladies-putdown .hat {
  position: absolute; bottom: 85%; left: 37%;
  width: 60px; height: 20px;
  background: #c8553d; /* terracotta, not red */
  border-radius: 50px 50px 20px 20px;
  transform: rotate(-10deg);
  animation: clp-hat 4s ease-in-out infinite;
}
.scn-costard-ladies-putdown .gesture {
  position: absolute; bottom: 45%; left: 44%;
  width: 30px; height: 10px;
  background: #c89060;
  border-radius: 50%;
  transform-origin: left center;
  animation: clp-gesture 2s ease-in-out infinite alternate;
}
.scn-costard-ladies-putdown .sun-ray {
  position: absolute; top: 5%; left: 70%;
  width: 80px; height: 3px;
  background: linear-gradient(90deg, transparent, #fff8dc, transparent);
  filter: blur(2px);
  animation: clp-sunray 10s linear infinite;
}
@keyframes clp-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes clp-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes clp-clown {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(6px) translateY(-3px) rotate(2deg); }
  50% { transform: translateX(12px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(6px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes clp-lady-l {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes clp-lady-r {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes clp-hat {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-3px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes clp-gesture {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(-20deg); }
}
@keyframes clp-sunray {
  0% { opacity: 0; transform: translateX(-50px); }
  50% { opacity: 0.6; }
  100% { opacity: 0; transform: translateX(50px); }
}

/* holofernes-nathaniel-dull */
.scn-holofernes-nathaniel-dull {
  background: linear-gradient(180deg, #e5dcc0 0%, #c5b390 40%, #a09070 100%), radial-gradient(ellipse at 50% 70%, #f0e8d0 0%, transparent 60%);
}
.scn-holofernes-nathaniel-dull .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #a8c4a0 0%, #7da86a 60%);
  animation: hnd-bg 8s ease-in-out infinite alternate;
}
.scn-holofernes-nathaniel-dull .deer-antler {
  position: absolute; top: 15%; left: 50%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, #8a6a4a 0%, transparent 70%);
  border-radius: 50% 90% 0 0 / 100% 90% 0 0;
  transform: translateX(-50%);
  box-shadow: 0 0 20px rgba(138,106,74,0.3);
  animation: hnd-antler 12s ease-in-out infinite alternate;
}
.scn-holofernes-nathaniel-dull .scholar-left {
  position: absolute; bottom: 25%; left: 15%;
  width: 35px; height: 70px;
  background: linear-gradient(180deg, #c09070 0%, #a07050 60%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: hnd-left 5s ease-in-out infinite;
}
.scn-holofernes-nathaniel-dull .scholar-mid {
  position: absolute; bottom: 25%; left: 40%;
  width: 40px; height: 75px;
  background: linear-gradient(180deg, #b88870 0%, #906050 60%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: hnd-mid 5s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-holofernes-nathaniel-dull .scholar-right {
  position: absolute; bottom: 25%; left: 65%;
  width: 35px; height: 70px;
  background: linear-gradient(180deg, #a88a70 0%, #887050 60%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: hnd-right 5s ease-in-out infinite;
  animation-delay: -4s;
}
.scn-holofernes-nathaniel-dull .book {
  position: absolute; bottom: 35%; left: 48%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0aa80 100%);
  border-radius: 5px;
  transform: skewX(-10deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.2);
  animation: hnd-book 3s ease-in-out infinite alternate;
}
.scn-holofernes-nathaniel-dull .staff {
  position: absolute; bottom: 30%; left: 72%;
  width: 6px; height: 50px;
  background: #8a6a4a;
  border-radius: 3px;
  transform: rotate(15deg);
  animation: hnd-staff 6s ease-in-out infinite alternate;
}
@keyframes hnd-bg {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes hnd-antler {
  0% { transform: translateX(-50%) rotate(-3deg); }
  50% { transform: translateX(-50%) rotate(3deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes hnd-left {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(0); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes hnd-mid {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes hnd-right {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-3px) rotate(0); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes hnd-book {
  0% { transform: skewX(-10deg) translateY(0); }
  50% { transform: skewX(-10deg) translateY(-2px); }
  100% { transform: skewX(-10deg) translateY(0); }
}
@keyframes hnd-staff {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-2px); }
  100% { transform: rotate(15deg) translateY(0); }
}

/* holofernes-moon-riddle */
.scn-holofernes-moon-riddle {
  background: linear-gradient(180deg, #ffe8b0 0%, #d4b080 40%, #a08050 100%), radial-gradient(ellipse at 50% 20%, #fff0c0 0%, transparent 60%);
}
.scn-holofernes-moon-riddle .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #c0e0f0 60%, #e0f0ff 100%);
  animation: hmr-sky 15s ease-in-out infinite alternate;
}
.scn-holofernes-moon-riddle .moon-crescent {
  position: absolute; top: 15%; left: 65%;
  width: 40px; height: 40px;
  background: radial-gradient(circle at 30% 50%, #f5e6a0 0%, #d4c080 60%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(245,230,160,0.6);
  animation: hmr-moon 6s ease-in-out infinite alternate;
}
.scn-holofernes-moon-riddle .sun-sphere {
  position: absolute; top: 20%; left: 25%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd060 0%, #f0a030 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(255,208,96,0.5);
  animation: hmr-sun 8s linear infinite;
}
.scn-holofernes-moon-riddle .pointer-arm {
  position: absolute; bottom: 30%; left: 42%;
  width: 25px; height: 8px;
  background: #a08050;
  border-radius: 50%;
  transform-origin: right center;
  animation: hmr-point 4s ease-in-out infinite alternate;
}
.scn-holofernes-moon-riddle .scroll {
  position: absolute; bottom: 40%; left: 30%;
  width: 25px; height: 35px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c8a870 100%);
  border-radius: 5px 5px 15px 15px;
  transform: rotate(-10deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.2);
  animation: hmr-scroll 10s ease-in-out infinite alternate;
}
.scn-holofernes-moon-riddle .figure {
  position: absolute; bottom: 25%; left: 38%;
  width: 30px; height: 65px;
  background: linear-gradient(180deg, #b09070 0%, #887050 60%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: hmr-figure 7s ease-in-out infinite;
}
.scn-holofernes-moon-riddle .dust {
  position: absolute; bottom: 20%; left: 50%;
  width: 8px; height: 8px;
  background: #e0c8a0;
  border-radius: 50%;
  filter: blur(3px);
  animation: hmr-dust 3s ease-in-out infinite alternate;
}
@keyframes hmr-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes hmr-moon {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-10px) scale(1.05); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes hmr-sun {
  0% { transform: rotate(0deg) scale(1); opacity: 0.8; }
  50% { transform: rotate(180deg) scale(1.1); opacity: 1; }
  100% { transform: rotate(360deg) scale(1); opacity: 0.7; }
}
@keyframes hmr-point {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes hmr-scroll {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-3px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes hmr-figure {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes hmr-dust {
  0% { transform: translate(0,0) scale(1); opacity: 0.5; }
  50% { transform: translate(10px,-10px) scale(1.5); opacity: 0.8; }
  100% { transform: translate(0,0) scale(1); opacity: 0.5; }
}

/* holofernes-praise */
.scn-holofernes-praise {
  background: linear-gradient(180deg, #f5e6c0 0%, #d4b080 40%, #b88860 100%), radial-gradient(ellipse at 50% 80%, #ffe8c0 0%, transparent 70%);
}
.scn-holofernes-praise .warm-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8d4b0 0%, #c8a880 60%);
  animation: hp-bg 10s ease-in-out infinite alternate;
}
.scn-holofernes-praise .teacher {
  position: absolute; bottom: 30%; left: 40%;
  width: 50px; height: 90px;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 60%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: hp-teacher 4s ease-in-out infinite;
}
.scn-holofernes-praise .student-left {
  position: absolute; bottom: 28%; left: 20%;
  width: 35px; height: 60px;
  background: linear-gradient(180deg, #b89878 0%, #987858 60%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: hp-stu-l 5s ease-in-out infinite alternate;
}
.scn-holofernes-praise .student-right {
  position: absolute; bottom: 28%; left: 58%;
  width: 35px; height: 60px;
  background: linear-gradient(180deg, #b89878 0%, #987858 60%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: hp-stu-r 5s ease-in-out infinite alternate;
  animation-delay: -2.5s;
}
.scn-holofernes-praise .book-open {
  position: absolute; bottom: 35%; left: 46%;
  width: 50px; height: 30px;
  background: linear-gradient(180deg, #f0d8b8 0%, #d0b090 100%);
  border-radius: 5px;
  transform: perspective(100px) rotateX(20deg);
  box-shadow: 2px 2px 8px rgba(0,0,0,0.25);
  animation: hp-book 3s ease-in-out infinite alternate;
}
.scn-holofernes-praise .lantern {
  position: absolute; bottom: 40%; left: 70%;
  width: 15px; height: 20px;
  background: radial-gradient(circle, #ffd060 0%, #c88030 60%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(255,208,96,0.5);
  animation: hp-lantern 6s ease-in-out infinite alternate;
}
.scn-holofernes-praise .halo {
  position: absolute; top: 50%; left: 42%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,240,200,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: hp-halo 8s ease-in-out infinite alternate;
}
@keyframes hp-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes hp-teacher {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes hp-stu-l {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px) rotate(-3deg); }
  100% { transform: translateY(0); }
}
@keyframes hp-stu-r {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0); }
}
@keyframes hp-book {
  0% { transform: perspective(100px) rotateX(20deg) translateY(0); }
  50% { transform: perspective(100px) rotateX(25deg) translateY(-2px); }
  100% { transform: perspective(100px) rotateX(20deg) translateY(0); }
}
@keyframes hp-lantern {
  0% { box-shadow: 0 0 20px 5px rgba(255,208,96,0.4); opacity: 0.9; }
  50% { box-shadow: 0 0 40px 15px rgba(255,208,96,0.7); opacity: 1; }
  100% { box-shadow: 0 0 20px 5px rgba(255,208,96,0.4); opacity: 0.9; }
}
@keyframes hp-halo {
  0% { transform: scale(1); opacity: 0.3; }
  50% { transform: scale(1.2); opacity: 0.6; }
  100% { transform: scale(1); opacity: 0.3; }
}

.scn-navarre-park {
  background: linear-gradient(180deg, #b8d8e8 0%, #d4e6b0 45%, #7aaa5a 65%), radial-gradient(ellipse at 50% 0%, #f0e8c0 0%, transparent 60%);
}
.scn-navarre-park .sky {
  position:absolute; inset:0 0 60% 0;
  background: linear-gradient(180deg, #a0cce8 0%, #c8e8f0 40%, #e0f0d0 70%, transparent 100%);
  animation: np-sky 18s ease-in-out infinite alternate;
}
.scn-navarre-park .sun {
  position:absolute; top:8%; left:72%;
  width:60px; height:60px;
  background: radial-gradient(circle, #fff8e0 0%, #f0d878 40%, #e8b840 70%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 80px 40px rgba(240,216,120,.35), 0 0 160px 80px rgba(240,216,120,.15);
  animation: np-sun 24s ease-in-out infinite alternate;
}
.scn-navarre-park .trees-back {
  position:absolute; bottom:40%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #5a7a3a 0%, #4a6a2a 50%, #3a5a1a 100%);
  border-radius: 30% 70% 20% 80% / 60% 40% 60% 40%;
  filter: blur(2px);
  animation: np-trees 30s ease-in-out infinite alternate;
}
.scn-navarre-park .trees-mid {
  position:absolute; bottom:35%; left:5%; right:5%; height:25%;
  background: linear-gradient(180deg, #6a8a4a 0%, #5a7a3a 50%, #4a6a2a 100%);
  border-radius: 60% 40% 50% 50% / 70% 50% 50% 30%;
  box-shadow: 0 -8px 20px rgba(0,0,0,.15);
  animation: np-trees-mid 22s ease-in-out infinite alternate;
}
.scn-navarre-park .path {
  position:absolute; bottom:12%; left:30%; right:30%; height:18%;
  background: linear-gradient(180deg, #c8b890 0%, #b8a880 40%, #a89870 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.12);
  animation: np-path 16s ease-in-out infinite alternate;
}
.scn-navarre-park .figure-standing {
  position:absolute; bottom:15%; left:45%;
  width:22px; height:48px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 60%, #2a1a12 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: np-stand 5s ease-in-out infinite;
  box-shadow: -2px 0 6px rgba(0,0,0,.2);
}
.scn-navarre-park .figure-sitting {
  position:absolute; bottom:14%; left:38%;
  width:28px; height:28px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: np-sit 7s ease-in-out infinite;
  box-shadow: -1px 0 4px rgba(0,0,0,.15);
}
.scn-navarre-park .butterflies {
  position:absolute; top:25%; left:20%;
  width:8px; height:6px;
  background: radial-gradient(circle, #e8b040 0%, #d09030 60%);
  border-radius: 50%;
  box-shadow: 12px -8px 0 #c08030, -8px 14px 0 #f0c050, 20px 6px 0 #d0a040;
  animation: np-bfly 14s ease-in-out infinite;
  filter: blur(1px);
}

@keyframes np-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes np-sun { 0% { transform: translate(0,0) scale(1); box-shadow: 0 0 60px 30px rgba(240,216,120,.3) } 50% { transform: translate(4px,-3px) scale(1.02); box-shadow: 0 0 100px 50px rgba(240,216,120,.4) } 100% { transform: translate(2px,2px) scale(.98); box-shadow: 0 0 70px 35px rgba(240,216,120,.25) } }
@keyframes np-trees { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(.98) } }
@keyframes np-trees-mid { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-.5deg) } }
@keyframes np-path { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes np-stand { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(.5deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-3px) rotate(-.5deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes np-sit { 0% { transform: translateX(0) scaleY(1) } 33% { transform: translateX(2px) scaleY(.98) } 66% { transform: translateX(-1px) scaleY(1.02) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes np-bfly { 0% { transform: translate(0,0) rotate(-10deg) scale(1) } 25% { transform: translate(8px,-12px) rotate(5deg) scale(1.1) } 50% { transform: translate(18px,-4px) rotate(15deg) scale(.95) } 75% { transform: translate(10px,8px) rotate(-5deg) scale(1.05) } 100% { transform: translate(0,0) rotate(-10deg) scale(1) } }

.scn-armado-costard-banter {
  background: linear-gradient(135deg, #e8d0a0 0%, #d4b890 40%, #c0a070 80%), radial-gradient(ellipse at 30% 50%, #f0e0c0 0%, transparent 70%);
}
.scn-armado-costard-banter .wall-back {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #d8c098 0%, #c8b088 60%, #b8a078 100%);
  box-shadow: inset 0 6px 20px rgba(0,0,0,.1);
  animation: ac-wall 20s ease-in-out infinite alternate;
}
.scn-armado-costard-banter .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #a08868 0%, #907858 50%, #806848 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.2);
}
.scn-armado-costard-banter .table {
  position:absolute; bottom:22%; left:35%; right:35%; height:14%;
  background: linear-gradient(180deg, #8a6a4a 0%, #7a5a3a 50%, #6a4a2a 100%);
  border-radius: 4%;
  box-shadow: 0 6px 14px rgba(0,0,0,.25);
  animation: ac-table 4s ease-in-out infinite;
}
.scn-armado-costard-banter .tankard {
  position:absolute; bottom:30%; left:48%;
  width:16px; height:20px;
  background: linear-gradient(180deg, #c09870 0%, #b08860 50%, #a07850 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: 2px 0 6px rgba(0,0,0,.2);
  animation: ac-tankard 6s ease-in-out infinite;
}
.scn-armado-costard-banter .figure-left {
  position:absolute; bottom:12%; left:25%;
  width:26px; height:56px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 60%, #2a1a0a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: ac-fig-l 5s ease-in-out infinite;
}
.scn-armado-costard-banter .figure-right {
  position:absolute; bottom:14%; right:28%;
  width:22px; height:48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 60%, #1a0a00 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: ac-fig-r 5s ease-in-out infinite .5s;
}
.scn-armado-costard-banter .speech-spark {
  position:absolute; top:22%; left:42%;
  width:12px; height:12px;
  background: radial-gradient(circle, #f0e068 0%, #e8c840 50%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 20px 8px rgba(232,200,64,.4);
  animation: ac-spark 2s ease-in-out infinite;
  filter: blur(2px);
}

@keyframes ac-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.92 } }
@keyframes ac-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ac-tankard { 0% { transform: translate(0,0) rotate(-1deg) } 30% { transform: translate(2px,-3px) rotate(2deg) } 60% { transform: translate(-1px,-1px) rotate(-2deg) } 100% { transform: translate(0,0) rotate(-1deg) } }
@keyframes ac-fig-l { 0% { transform: translateX(0) rotate(-2deg) } 20% { transform: translateX(4px) rotate(1deg) } 40% { transform: translateX(2px) rotate(-1deg) } 60% { transform: translateX(6px) rotate(2deg) } 80% { transform: translateX(1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes ac-fig-r { 0% { transform: translateX(0) rotate(2deg) } 20% { transform: translateX(-3px) rotate(-1deg) } 40% { transform: translateX(-1px) rotate(1deg) } 60% { transform: translateX(-5px) rotate(-2deg) } 80% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes ac-spark { 0% { opacity:.3; transform: scale(.6) } 25% { opacity:1; transform: scale(1.3) } 50% { opacity:.6; transform: scale(.8) } 75% { opacity:.9; transform: scale(1.1) } 100% { opacity:.3; transform: scale(.6) } }

.scn-item-armados-letter {
  background: linear-gradient(160deg, #d8b888 0%, #c0a070 40%, #a88858 100%), radial-gradient(ellipse at 50% 60%, #e8d0a0 0%, transparent 70%);
}
.scn-item-armados-letter .room-bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #c8a878 0%, #b89868 60%, #a88858 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.15);
  animation: ial-room 20s ease-in-out infinite alternate;
}
.scn-item-armados-letter .desk {
  position:absolute; bottom:10%; left:20%; right:20%; height:20%;
  background: linear-gradient(180deg, #8a6a4a 0%, #7a5a3a 50%, #6a4a2a 100%);
  border-radius: 2% 2% 6% 6%;
  box-shadow: 0 8px 20px rgba(0,0,0,.25);
  animation: ial-desk 8s ease-in-out infinite;
}
.scn-item-armados-letter .letter {
  position:absolute; bottom:28%; left:44%; right:44%; height:6%;
  background: linear-gradient(180deg, #f0e0c0 0%, #e8d0a0 50%, #d8c090 100%);
  border-radius: 2%;
  box-shadow: 0 2px 8px rgba(0,0,0,.15);
  transform: rotate(2deg);
  animation: ial-letter 6s ease-in-out infinite;
}
.scn-item-armados-letter .hand-left {
  position:absolute; bottom:24%; left:38%;
  width:20px; height:28px;
  background: linear-gradient(180deg, #d8b080 0%, #c09868 60%, #a88050 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ial-hand-l 5s ease-in-out infinite;
}
.scn-item-armados-letter .hand-right {
  position:absolute; bottom:22%; right:38%;
  width:18px; height:26px;
  background: linear-gradient(180deg, #d0a878 0%, #b89060 60%, #a07848 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ial-hand-r 5s ease-in-out infinite .7s;
}
.scn-item-armados-letter .wax-seal {
  position:absolute; bottom:30%; left:48%; width:8px; height:8px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 60%, #70243a 100%);
  border-radius:50%;
  box-shadow: 0 0 6px 2px rgba(168,70,26,.3);
  animation: ial-seal 4s ease-in-out infinite;
}
.scn-item-armados-letter .candle {
  position:absolute; bottom:22%; left:62%; width:6px; height:20px;
  background: linear-gradient(180deg, #f0e0c8 0%, #e0c8a8 60%, #c8a880 100%);
  border-radius: 20% 20% 4% 4%;
  box-shadow: -2px 0 6px rgba(0,0,0,.15);
  animation: ial-candle 3s ease-in-out infinite;
}
.scn-item-armados-letter .warm-glow {
  position:absolute; bottom:18%; left:55%; right:20%; height:40%;
  background: radial-gradient(ellipse at 50% 80%, rgba(232,184,80,.25) 0%, transparent 100%);
  animation: ial-glow 4s ease-in-out infinite alternate;
}

@keyframes ial-room { 0% { opacity:.88 } 50% { opacity:1 } 100% { opacity:.92 } }
@keyframes ial-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ial-letter { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-3px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes ial-hand-l { 0% { transform: translate(0,0) rotate(-3deg) } 25% { transform: translate(3px,-2px) rotate(-1deg) } 50% { transform: translate(1px,-4px) rotate(-4deg) } 75% { transform: translate(4px,-1px) rotate(-2deg) } 100% { transform: translate(0,0) rotate(-3deg) } }
@keyframes ial-hand-r { 0% { transform: translate(0,0) rotate(3deg) } 25% { transform: translate(-2px,-3px) rotate(1deg) } 50% { transform: translate(-1px,-5px) rotate(4deg) } 75% { transform: translate(-3px,-2px) rotate(2deg) } 100% { transform: translate(0,0) rotate(3deg) } }
@keyframes ial-seal { 0% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.85; transform: scale(.95) } }
@keyframes ial-candle { 0% { opacity:.9; transform: scaleY(1) } 25% { opacity:1; transform: scaleY(1.03) } 50% { opacity:.95; transform: scaleY(.97) } 75% { opacity:1; transform: scaleY(1.02) } 100% { opacity:.9; transform: scaleY(1) } }
@keyframes ial-glow { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }

.scn-costard-remuneration {
  background: linear-gradient(180deg, #e0c8a0 0%, #c8b088 40%, #b09878 100%), radial-gradient(ellipse at 50% 60%, #f0e0c0 0%, transparent 70%);
}
.scn-costard-remuneration .wall-bg {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #d4b890 0%, #c0a078 60%, #b09068 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,.1);
  animation: cr-wall 22s ease-in-out infinite alternate;
}
.scn-costard-remuneration .counter {
  position:absolute; bottom:18%; left:20%; right:20%; height:12%;
  background: linear-gradient(180deg, #8a6a4a 0%, #7a5a3a 50%, #6a4a2a 100%);
  border-radius: 4% 4% 10% 10%;
  box-shadow: 0 6px 16px rgba(0,0,0,.2);
}
.scn-costard-remuneration .hand-coin {
  position:absolute; bottom:30%; left:35%;
  width:22px; height:30px;
  background: linear-gradient(180deg, #d0a878 0%, #b89060 60%, #a07848 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: cr-hand 4s ease-in-out infinite;
}
.scn-costard-remuneration .coin-1 {
  position:absolute; bottom:38%; left:42%;
  width:12px; height:12px;
  background: radial-gradient(circle at 40% 40%, #f0d878 0%, #d8b850 60%, #c0a040 100%);
  border-radius:50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: cr-coin-1 3s ease-in-out infinite;
}
.scn-costard-remuneration .coin-2 {
  position:absolute; bottom:36%; left:46%;
  width:10px; height:10px;
  background: radial-gradient(circle at 40% 40%, #e8c868 0%, #d0b048 60%, #b89838 100%);
  border-radius:50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: cr-coin-2 3.2s ease-in-out infinite .3s;
}
.scn-costard-remuneration .coin-3 {
  position:absolute; bottom:40%; left:50%;
  width:8px; height:8px;
  background: radial-gradient(circle at 40% 40%, #e8c868 0%, #d0b048 60%, #b89838 100%);
  border-radius:50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: cr-coin-3 2.8s ease-in-out infinite .6s;
}
.scn-costard-remuneration .fingers {
  position:absolute; bottom:32%; left:38%;
  width:28px; height:16px;
  background: linear-gradient(180deg, #d0a878 0%, #b89060 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: center;
  animation: cr-fingers 4s ease-in-out infinite .5s;
  filter: blur(1px);
}
.scn-costard-remuneration .sparkle {
  position:absolute; top:30%; left:44%;
  width:8px; height:8px;
  background: radial-gradient(circle, #f0e878 0%, #e8d050 60%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 16px 6px rgba(232,200,80,.4);
  animation: cr-sparkle 2s ease-in-out infinite;
}

@keyframes cr-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.92 } }
@keyframes cr-hand { 0% { transform: translate(0,0) rotate(5deg) } 25% { transform: translate(2px,-3px) rotate(3deg) } 50% { transform: translate(1px,-6px) rotate(6deg) } 75% { transform: translate(3px,-2px) rotate(4deg) } 100% { transform: translate(0,0) rotate(5deg) } }
@keyframes cr-coin-1 { 0% { transform: translate(0,0) rotate(0deg) scale(1) } 25% { transform: translate(4px,-4px) rotate(15deg) scale(1.1) } 50% { transform: translate(2px,-8px) rotate(30deg) scale(.95) } 75% { transform: translate(5px,-3px) rotate(15deg) scale(1.05) } 100% { transform: translate(0,0) rotate(0deg) scale(1) } }
@keyframes cr-coin-2 { 0% { transform: translate(0,0) rotate(0deg) scale(1) } 25% { transform: translate(-3px,-5px) rotate(-20deg) scale(1.08) } 50% { transform: translate(-1px,-9px) rotate(-40deg) scale(.92) } 75% { transform: translate(-4px,-4px) rotate(-20deg) scale(1.03) } 100% { transform: translate(0,0) rotate(0deg) scale(1) } }
@keyframes cr-coin-3 { 0% { transform: translate(0,0) rotate(0deg) scale(1) } 25% { transform: translate(5px,-3px) rotate(25deg) scale(1.05) } 50% { transform: translate(3px,-7px) rotate(50deg) scale(.97) } 75% { transform: translate(6px,-2px) rotate(25deg) scale(1.02) } 100% { transform: translate(0,0) rotate(0deg) scale(1) } }
@keyframes cr-fingers { 0% { transform: translate(0,0) rotate(-5deg) scaleY(1) } 25% { transform: translate(2px,2px) rotate(-3deg) scaleY(1.05) } 50% { transform: translate(1px,4px) rotate(-6deg) scaleY(.95) } 75% { transform: translate(3px,1px) rotate(-4deg) scaleY(1.03) } 100% { transform: translate(0,0) rotate(-5deg) scaleY(1) } }
@keyframes cr-sparkle { 0% { opacity:.2; transform: scale(.5) } 25% { opacity:1; transform: scale(1.4) } 50% { opacity:.5; transform: scale(.7) } 75% { opacity:.8; transform: scale(1.1) } 100% { opacity:.2; transform: scale(.5) } }

/* winter-spring-song */
.scn-winter-spring-song {
  background: linear-gradient(180deg, #2c1a3a 0%, #5a3a5a 30%, #8a5a4a 70%, #4a3a2a 100%),
              radial-gradient(ellipse at 70% 20%, #9a6a5a 0%, transparent 60%);
}
.scn-winter-spring-song .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a0a2a 0%, #4a2a4a 50%, #7a4a3a 100%);
  animation: wss-sky 8s ease-in-out infinite alternate;
}
.scn-winter-spring-song .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
  animation: wss-ground 15s ease-in-out infinite;
}
.scn-winter-spring-song .tree {
  position: absolute; bottom: 48%; left: 50%; width: 14px; height: 70px;
  background: #1a1a2e; border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: -8px 12px 0 #1a1a2e, 8px 10px 0 #1a1a2e, 0 20px 0 #1a1a2e;
  animation: wss-tree 6s ease-in-out infinite;
}
.scn-winter-spring-song .winter-figure {
  position: absolute; bottom: 48%; left: 28%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a4a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wss-winter 3s ease-in-out infinite;
}
.scn-winter-spring-song .spring-figure {
  position: absolute; bottom: 48%; right: 28%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #6a7a5a 0%, #3a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wss-spring 5s ease-in-out infinite;
}
.scn-winter-spring-song .icicle {
  position: absolute; bottom: 52%; left: 23%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #c0d0d0 0%, #809090 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 0 4px rgba(192,208,208,0.6);
  animation: wss-icicle 4s ease-in-out infinite;
}
.scn-winter-spring-song .daisy {
  position: absolute; bottom: 46%; right: 23%; width: 12px; height: 12px;
  background: radial-gradient(circle, #f0e8c0 0%, #d0c898 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(240,232,192,0.5);
  animation: wss-daisy 7s ease-in-out infinite;
}
.scn-winter-spring-song .bird {
  position: absolute; top: 18%; right: 15%; width: 10px; height: 6px;
  background: #1a1a2e;
  border-radius: 50% 50% 0 0;
  clip-path: polygon(0 100%, 50% 0, 100% 100%);
  animation: wss-bird 12s linear infinite;
}
@keyframes wss-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes wss-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes wss-tree {
  0% { transform: translateX(-50%) rotate(-1deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(0) translateY(1px); }
}
@keyframes wss-winter {
  0% { transform: translate(0, 0) rotate(-2deg); }
  50% { transform: translate(2px, -1px) rotate(1deg); }
  100% { transform: translate(0, 1px) rotate(-1deg); }
}
@keyframes wss-spring {
  0% { transform: translate(0, 0) rotate(0) scale(1); }
  50% { transform: translate(-2px, -2px) rotate(3deg) scale(1.02); }
  100% { transform: translate(1px, 0) rotate(-1deg) scale(0.98); }
}
@keyframes wss-icicle {
  0% { transform: translateY(0); opacity: 0.8; }
  50% { transform: translateY(3px); opacity: 0.5; }
  100% { transform: translateY(0); opacity: 0.9; }
}
@keyframes wss-daisy {
  0% { transform: scale(0.8); opacity: 0.7; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.8; }
}
@keyframes wss-bird {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(20px) translateY(-10px); }
  50% { transform: translateX(40px) translateY(0); }
  75% { transform: translateX(60px) translateY(-5px); }
  100% { transform: translateX(80px) translateY(0); }
}

/* winter-song */
.scn-winter-song {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5a 30%, #3a3a5a 60%, #2a2a4a 100%),
              radial-gradient(ellipse at 50% 0%, #4a4a6a 0%, transparent 70%);
}
.scn-winter-song .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0f0f2a 0%, #2a2a4a 50%, #3a3a5a 100%);
  animation: ws-sky 10s ease-in-out infinite alternate;
}
.scn-winter-song .snow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 80% 20% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: ws-snow 20s ease-in-out infinite;
}
.scn-winter-song .cottage {
  position: absolute; bottom: 35%; left: 40%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: ws-cottage 9s ease-in-out infinite;
}
.scn-winter-song .roof {
  position: absolute; bottom: 60%; left: 38%; width: 64px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(0 100%, 50% 0, 100% 100%);
  transform-origin: bottom center;
  animation: ws-roof 8s ease-in-out infinite;
}
.scn-winter-song .window {
  position: absolute; bottom: 40%; left: 46%; width: 16px; height: 20px;
  background: radial-gradient(circle, #f0c868 0%, #c08040 70%);
  border-radius: 2px;
  box-shadow: 0 0 16px 4px #c08040, 0 0 32px 8px rgba(192,128,64,0.4);
  animation: ws-window 3s ease-in-out infinite alternate;
}
.scn-winter-song .chimney-smoke {
  position: absolute; bottom: 68%; left: 42%; width: 10px; height: 20px;
  background: radial-gradient(circle, rgba(200,200,210,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ws-smoke 6s ease-in-out infinite;
}
.scn-winter-song .icicle {
  position: absolute; bottom: 62%; left: 38%; width: 3px; height: 18px;
  background: linear-gradient(180deg, #c0d0d0 0%, #809090 100%);
  border-radius: 0 0 40% 40%;
  box-shadow: 0 0 4px rgba(192,208,208,0.5);
  animation: ws-icicle 4s ease-in-out infinite alternate;
}
.scn-winter-song .shepherd {
  position: absolute; bottom: 32%; left: 30%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ws-shepherd 3s ease-in-out infinite;
}
.scn-winter-song .owl {
  position: absolute; bottom: 55%; right: 15%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ws-owl 7s ease-in-out infinite;
}
@keyframes ws-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes ws-snow {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-3px) scaleX(0.98); }
  100% { transform: translateY(2px) scaleX(1.01); }
}
@keyframes ws-cottage {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes ws-roof {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(0); }
}
@keyframes ws-window {
  0% { box-shadow: 0 0 12px 2px #c08040, 0 0 24px 6px rgba(192,128,64,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 24px 6px #f0c868, 0 0 48px 12px rgba(240,200,104,0.5); opacity: 1; }
  100% { box-shadow: 0 0 14px 3px #c08040, 0 0 28px 8px rgba(192,128,64,0.35); opacity: 0.9; }
}
@keyframes ws-smoke {
  0% { transform: translateY(0) scale(0.8); opacity: 0.4; }
  50% { transform: translateY(-12px) scale(1.2); opacity: 0.1; }
  100% { transform: translateY(0) scale(0.9); opacity: 0.5; }
}
@keyframes ws-icicle {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.1); }
  100% { transform: scaleY(0.9); }
}
@keyframes ws-shepherd {
  0% { transform: scaleX(0.95) scaleY(1) translateY(0); }
  50% { transform: scaleX(1.02) scaleY(0.98) translateY(-2px); }
  100% { transform: scaleX(0.98) scaleY(1.01) translateY(0); }
}
@keyframes ws-owl {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-3px); }
  100% { transform: rotate(-3deg) translateY(1px); }
}

.scn-pageant-hector-arrival {
  background:
    linear-gradient(180deg, #2b1a2e 0%, #4a2e3a 50%, #6b4a3a 100%),
    radial-gradient(ellipse at 50% 0%, #8a5a3a 0%, transparent 60%);
}
.scn-pageant-hector-arrival .backdrop {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a3a 0%, #4a3a3a 100%);
  animation: s1backdrop 12s ease-in-out infinite alternate;
}
.scn-pageant-hector-arrival .floor {
  position: absolute; bottom: 0; left: -5%; right: -5%; height: 40%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  transform: perspective(400px) rotateX(10deg);
  animation: s1floor 8s ease-in-out infinite;
}
.scn-pageant-hector-arrival .curtain-left {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(90deg, #6a4a3a 0%, #8a5a4a 50%, #6a4a3a 100%);
  border-radius: 0 40% 40% 0;
  animation: s1curtain 10s ease-in-out infinite alternate;
}
.scn-pageant-hector-arrival .curtain-right {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(90deg, #6a4a3a 0%, #8a5a4a 50%, #6a4a3a 100%);
  border-radius: 40% 0 0 40%;
  animation: s1curtain 10s ease-in-out infinite alternate-reverse;
}
.scn-pageant-hector-arrival .figure-hector {
  position: absolute; bottom: 35%; left: 50%; width: 50px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a2a 0%, #3a1a1a 50%, #2a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s1hector 4s ease-in-out infinite;
}
.scn-pageant-hector-arrival .figure-hector::after {
  content: ''; position: absolute; bottom: 0; left: 10%; width: 30px; height: 20px;
  background: #5a2a1a; border-radius: 0 0 30% 30% / 0 0 50% 50%;
  transform-origin: top center;
  animation: s1calf 4s ease-in-out infinite;
}
.scn-pageant-hector-arrival .spotlight {
  position: absolute; top: -20%; left: 30%; width: 200px; height: 300px;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,220,180,0.3) 0%, transparent 70%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: s1spotlight 6s ease-in-out infinite alternate;
}
.scn-pageant-hector-arrival .prop-spear {
  position: absolute; bottom: 38%; left: 55%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: s1spear 3s ease-in-out infinite;
}
@keyframes s1backdrop {
  0% { opacity: 0.7; filter: brightness(0.9); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.8; filter: brightness(1); }
}
@keyframes s1floor {
  0% { transform: perspective(400px) rotateX(10deg) translateY(0); }
  50% { transform: perspective(400px) rotateX(10deg) translateY(-3px); }
  100% { transform: perspective(400px) rotateX(10deg) translateY(0); }
}
@keyframes s1curtain {
  0% { width: 20%; }
  50% { width: 22%; }
  100% { width: 20%; }
}
@keyframes s1hector {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(-50%) rotate(-2deg); }
  75% { transform: translateX(-50%) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes s1calf {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.3); }
  100% { transform: scaleY(1); }
}
@keyframes s1spotlight {
  0% { transform: translateX(-10px) scaleX(1); opacity: 0.8; }
  50% { transform: translateX(10px) scaleX(1.1); opacity: 1; }
  100% { transform: translateX(-5px) scaleX(1); opacity: 0.9; }
}
@keyframes s1spear {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}

.scn-armado-gilt-nutmeg {
  background:
    linear-gradient(180deg, #2a1a2e 0%, #4a2e3a 40%, #6a4a3a 100%),
    radial-gradient(ellipse at 30% 20%, #8a5a3a 0%, transparent 60%);
}
.scn-armado-gilt-nutmeg .bg-interior {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2a3a 0%, #4a3a3a 100%);
  animation: s2bg 15s ease-in-out infinite alternate;
}
.scn-armado-gilt-nutmeg .table {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 10%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  transform: perspective(300px) rotateX(20deg);
  animation: s2table 9s ease-in-out infinite;
}
.scn-armado-gilt-nutmeg .platter {
  position: absolute; bottom: 32%; left: 35%; width: 80px; height: 30px;
  background: radial-gradient(ellipse, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50%;
  animation: s2platter 5s ease-in-out infinite;
}
.scn-armado-gilt-nutmeg .lemon {
  position: absolute; bottom: 37%; left: 42%; width: 30px; height: 28px;
  background: radial-gradient(circle at 40% 30%, #d0a040 0%, #b08020 60%, #6a4a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset -3px -3px 6px rgba(0,0,0,0.3);
  animation: s2lemon 3s ease-in-out infinite;
}
.scn-armado-gilt-nutmeg .clove {
  position: absolute; bottom: 38%; left: 44%; width: 6px; height: 8px;
  background: #3a2a1a;
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 6px 0 0 #3a2a1a, 10px -4px 0 0 #3a2a1a, -8px -2px 0 0 #3a2a1a;
  animation: s2clove 4s ease-in-out infinite alternate;
}
.scn-armado-gilt-nutmeg .hand-armado {
  position: absolute; bottom: 35%; left: 28%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: s2hand 3s ease-in-out infinite alternate;
}
.scn-armado-gilt-nutmeg .sparkle {
  position: absolute; top: 40%; left: 40%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  animation: s2sparkle 2s ease-in-out infinite;
}
@keyframes s2bg {
  0% { opacity: 0.7; filter: brightness(0.9); }
  50% { opacity: 1; filter: brightness(1.2); }
  100% { opacity: 0.8; filter: brightness(1); }
}
@keyframes s2table {
  0% { transform: perspective(300px) rotateX(20deg) translateY(0); }
  50% { transform: perspective(300px) rotateX(20deg) translateY(-2px); }
  100% { transform: perspective(300px) rotateX(20deg) translateY(0); }
}
@keyframes s2platter {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes s2lemon {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-4px) rotate(10deg); }
  60% { transform: translateY(-2px) rotate(-8deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes s2clove {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(15deg); }
}
@keyframes s2hand {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(-10deg) translateX(5px); }
  100% { transform: rotate(5deg) translateX(2px); }
}
@keyframes s2sparkle {
  0% { transform: scale(1) rotate(0deg); opacity: 1; }
  50% { transform: scale(1.5) rotate(180deg); opacity: 0.5; }
  100% { transform: scale(1) rotate(360deg); opacity: 1; }
}

.scn-pageant-banter-hector {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #3a2a3a 50%, #5a3a3a 100%),
    radial-gradient(ellipse at 60% 30%, #7a4a3a 0%, transparent 50%);
}
.scn-pageant-banter-hector .bg-stage {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1a2e 0%, #4a3a3a 100%);
  animation: s3bg 14s ease-in-out infinite alternate;
}
.scn-pageant-banter-hector .floor {
  position: absolute; bottom: 0; left: -10%; right: -10%; height: 35%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  transform: perspective(500px) rotateX(15deg);
  animation: s3floor 10s ease-in-out infinite;
}
.scn-pageant-banter-hector .figure-hector {
  position: absolute; bottom: 25%; left: 30%; width: 45px; height: 80px;
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s3hector 4s ease-in-out infinite;
}
.scn-pageant-banter-hector .figure-longaville {
  position: absolute; bottom: 25%; right: 30%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s3longaville 4.5s ease-in-out infinite;
}
.scn-pageant-banter-hector .greyhound {
  position: absolute; bottom: 30%; left: 15%; width: 40px; height: 25px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 30% 20% 10% / 60% 40% 30% 20%;
  clip-path: polygon(0% 50%, 20% 0%, 40% 0%, 60% 30%, 80% 20%, 100% 40%, 90% 60%, 70% 70%, 50% 100%, 30% 100%, 10% 80%);
  animation: s3dog 3s ease-in-out infinite alternate;
}
.scn-pageant-banter-hector .speech-bubble {
  position: absolute; top: 20%; left: 40%; width: 50px; height: 30px;
  background: rgba(255,255,255,0.1);
  border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%;
  filter: blur(2px);
  animation: s3bubble 6s ease-in-out infinite;
}
@keyframes s3bg {
  0% { opacity: 0.6; filter: brightness(0.8); }
  50% { opacity: 1; filter: brightness(1.2); }
  100% { opacity: 0.8; filter: brightness(1); }
}
@keyframes s3floor {
  0% { transform: perspective(500px) rotateX(15deg) translateY(0); }
  50% { transform: perspective(500px) rotateX(15deg) translateY(-3px); }
  100% { transform: perspective(500px) rotateX(15deg) translateY(0); }
}
@keyframes s3hector {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-5px) rotate(-3deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(5px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes s3longaville {
  0% { 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(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes s3dog {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(10px) scaleX(1.1); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes s3bubble {
  0% { transform: scale(0.8) translateY(0); opacity: 0.3; }
  50% { transform: scale(1.2) translateY(-10px); opacity: 0.7; }
  100% { transform: scale(0.9) translateY(0); opacity: 0.4; }
}

.scn-armado-adores-slipper {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 30%, #4a2e3a 70%, #5a3a3a 100%),
    radial-gradient(ellipse at 70% 40%, #7a4a3a 0%, transparent 60%);
}
.scn-armado-adores-slipper .bg-dusk {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a2e 0%, #3a2a3a 50%, #4a3a3a 100%);
  animation: s4bg 12s ease-in-out infinite alternate;
}
.scn-armado-adores-slipper .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  transform: perspective(400px) rotateX(10deg);
  animation: s4floor 8s ease-in-out infinite;
}
.scn-armado-adores-slipper .figure-kneeling {
  position: absolute; bottom: 15%; left: 35%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: s4kneel 4s ease-in-out infinite;
}
.scn-armado-adores-slipper .slipper {
  position: absolute; bottom: 25%; left: 55%; width: 30px; height: 15px;
  background: linear-gradient(135deg, #8a5a4a 0%, #6a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: s4slipper 3s ease-in-out infinite alternate;
}
.scn-armado-adores-slipper .foot {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 10px;
  background: #3a2a1a;
  border-radius: 0 50% 50% 0;
  transform: rotate(-20deg);
  animation: s4foot 2s ease-in-out infinite alternate;
}
.scn-armado-adores-slipper .heart-left {
  position: absolute; top: 30%; left: 45%; width: 12px; height: 12px;
  background: radial-gradient(circle, #b85858 0%, transparent 70%);
  border-radius: 50% 0 50% 0;
  transform: rotate(45deg);
  animation: s4heart 2s ease-in-out infinite;
}
.scn-armado-adores-slipper .heart-right {
  position: absolute; top: 30%; left: 52%; width: 12px; height: 12px;
  background: radial-gradient(circle, #b85858 0%, transparent 70%);
  border-radius: 50% 0 50% 0;
  transform: rotate(45deg);
  animation: s4heart 2s ease-in-out infinite reverse;
}
@keyframes s4bg {
  0% { opacity: 0.7; filter: brightness(0.8); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.9; filter: brightness(1); }
}
@keyframes s4floor {
  0% { transform: perspective(400px) rotateX(10deg) translateY(0); }
  50% { transform: perspective(400px) rotateX(10deg) translateY(-2px); }
  100% { transform: perspective(400px) rotateX(10deg) translateY(0); }
}
@keyframes s4kneel {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-5deg) translateY(-3px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes s4slipper {
  0% { transform: translateX(0) rotate(0deg) scale(1); }
  50% { transform: translateX(5px) rotate(15deg) scale(1.1); }
  100% { transform: translateX(0) rotate(0deg) scale(1); }
}
@keyframes s4foot {
  0% { transform: rotate(-20deg) translateY(0); }
  100% { transform: rotate(-10deg) translateY(-2px); }
}
@keyframes s4heart {
  0% { transform: rotate(45deg) scale(1); opacity: 0.8; }
  50% { transform: rotate(45deg) scale(1.5); opacity: 1; }
  100% { transform: rotate(45deg) scale(1); opacity: 0.8; }
}

.scn-jaquenetta-costard-enter {
  background: linear-gradient(180deg, #7ec8e3 0%, #f9d976 60%, #d4a373 100%),
              radial-gradient(ellipse at 40% 30%, #fef9c3 0%, transparent 60%);
}
.scn-jaquenetta-costard-enter .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 100%), url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="50"><circle cx="10" cy="10" r="4" fill="white" opacity="0.3"/><circle cx="30" cy="20" r="2" fill="white" opacity="0.2"/><circle cx="70" cy="5" r="3" fill="white" opacity="0.25"/></svg>'); background-blend-mode: overlay; animation: ja-sky 12s ease-in-out infinite alternate; }
.scn-jaquenetta-costard-enter .sun { position:absolute; top:18%; left:55%; width:70px; height:70px; background: radial-gradient(circle at 50% 50%, #fff7a0 0%, #f9d976 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(249,217,118,0.5), 0 0 160px 60px rgba(254,249,195,0.3); animation: ja-sun 8s ease-in-out infinite; }
.scn-jaquenetta-costard-enter .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #b8d4a3 0%, #6b8e23 50%, #3b5323 100%); border-radius:20% 30% 0 0 / 40% 50% 0 0; }
.scn-jaquenetta-costard-enter .tree { position:absolute; bottom:50%; left:28%; width:40px; height:120px; background: linear-gradient(180deg, #654321 0%, #3e2723 100%); border-radius:30% 30% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: ja-tree 15s ease-in-out infinite; }
.scn-jaquenetta-costard-enter .costard { position:absolute; bottom:42%; left:38%; width:55px; height:60px; background: linear-gradient(180deg, #c27a3a 0%, #a0522d 40%, #8b4513 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: ja-costard 3s ease-in-out infinite; }
.scn-jaquenetta-costard-enter .costard::before { content:''; position:absolute; top:20%; left:15%; width:70%; height:12px; background: #5c2e0e; border-radius:30%; }
.scn-jaquenetta-costard-enter .jaquenetta { position:absolute; bottom:40%; left:50%; width:28px; height:70px; background: linear-gradient(180deg, #d4a373 0%, #c27a3a 60%, #8b4513 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ja-jaquenetta 4s ease-in-out infinite alternate; }
.scn-jaquenetta-costard-enter .road { position:absolute; bottom:10%; left:25%; right:25%; height:20%; background: linear-gradient(180deg, #c4a882 0%, #a0896a 100%); border-radius:30% 30% 0 0 / 60% 60% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.2); animation: ja-road 20s linear infinite; }

@keyframes ja-sky { 0% { opacity:.8; filter: brightness(1) } 50% { opacity:1; filter: brightness(1.1) } 100% { opacity:0.7; filter: brightness(0.95) } }
@keyframes ja-sun { 0% { transform: scale(1) translate(0,0); box-shadow: 0 0 80px 30px rgba(249,217,118,0.5); } 50% { transform: scale(1.05) translate(5px,-3px); box-shadow: 0 0 100px 40px rgba(249,217,118,0.6); } 100% { transform: scale(0.98) translate(-2px,2px); box-shadow: 0 0 60px 20px rgba(249,217,118,0.4); } }
@keyframes ja-tree { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(1.5deg); } 100% { transform: rotate(0deg); } }
@keyframes ja-costard { 0% { transform: translateX(0) rotate(0deg) scale(1); } 30% { transform: translateX(5px) rotate(3deg) scale(1.02); } 60% { transform: translateX(-3px) rotate(-2deg) scale(0.98); } 100% { transform: translateX(0) rotate(0deg) scale(1); } }
@keyframes ja-jaquenetta { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(1px); } }
@keyframes ja-road { 0% { background-position: 0 0; } 100% { background-position: -50px 0; } }

.scn-item-berowne-sonnet {
  background: linear-gradient(135deg, #f5e6ca 0%, #e3c9a6 50%, #d4a373 100%),
              radial-gradient(ellipse at 70% 40%, #fef9c3 0%, transparent 70%);
}
.scn-item-berowne-sonnet .wall { position:absolute; inset:0; background: linear-gradient(180deg, #e9d8b5 0%, #dac39a 100%); }
.scn-item-berowne-sonnet .window { position:absolute; top:10%; left:20%; width:40%; height:50%; background: linear-gradient(180deg, #b6d7f0 0%, #f9e79f 100%); border: 6px solid #7a623a; border-radius:4px; box-shadow: inset 0 0 50px rgba(255,255,255,0.3), 0 0 40px 10px rgba(249,231,159,0.2); animation: it-window 8s ease-in-out infinite alternate; }
.scn-item-berowne-sonnet .desk { position:absolute; bottom:10%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #6b4226 0%, #4a2c1a 100%); border-radius:4px 4px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.3); transform: perspective(400px) rotateX(5deg); animation: it-desk 6s ease-in-out infinite; }
.scn-item-berowne-sonnet .paper { position:absolute; bottom:35%; left:30%; width:35%; height:20%; background: linear-gradient(135deg, #fdf6e3 0%, #f5e6ca 100%); border-radius:2px; transform: rotate(-2deg); box-shadow: 2px 2px 8px rgba(0,0,0,0.15); animation: it-paper 12s ease-in-out infinite; }
.scn-item-berowne-sonnet .pen { position:absolute; bottom:38%; left:55%; width:30px; height:30px; background: linear-gradient(180deg, #2c2c2c 0%, #1a1a1a 100%); border-radius:50% 50% 30% 30% / 40% 40% 30% 30%; transform: rotate(30deg); box-shadow: -2px 2px 4px rgba(0,0,0,0.4); animation: it-pen 5s ease-in-out infinite alternate; }
.scn-item-berowne-sonnet .figure { position:absolute; bottom:15%; left:15%; width:60px; height:80px; background: linear-gradient(180deg, #8b6f47 0%, #5c4033 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: it-figure 10s ease-in-out infinite; }

@keyframes it-window { 0% { filter:brightness(0.9); transform:scale(1); } 50% { filter:brightness(1.1); transform:scale(1.01); } 100% { filter:brightness(0.95); transform:scale(0.99); } }
@keyframes it-desk { 0% { transform: perspective(400px) rotateX(5deg) translateY(0); } 50% { transform: perspective(400px) rotateX(5deg) translateY(-2px); } 100% { transform: perspective(400px) rotateX(5deg) translateY(0); } }
@keyframes it-paper { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(3deg) scale(1.02); } 100% { transform: rotate(-4deg) scale(0.98); } }
@keyframes it-pen { 0% { transform: rotate(30deg) translateX(0); } 50% { transform: rotate(35deg) translateX(2px); } 100% { transform: rotate(25deg) translateX(-1px); } }
@keyframes it-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(2deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(2px) rotate(0deg); } }

.scn-holofernes-approval {
  background: linear-gradient(180deg, #a9d6e5 0%, #f0e68c 40%, #b8d4a3 100%),
              radial-gradient(ellipse at 60% 20%, #fefcbf 0%, transparent 60%);
}
.scn-holofernes-approval .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #c3e0f0 0%, #f9e79f 100%); animation: ho-sky 14s ease-in-out infinite alternate; }
.scn-holofernes-approval .ground { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #9cb87a 0%, #6b8e23 60%, #3b5323 100%); border-radius:30% 20% 0 0 / 50% 40% 0 0; }
.scn-holofernes-approval .tree-stump { position:absolute; bottom:40%; left:35%; width:50px; height:40px; background: linear-gradient(180deg, #7a5230 0%, #4a2c1a 100%); border-radius:40% 40% 20% 20% / 60% 60% 20% 20%; box-shadow: inset 0 4px 8px rgba(0,0,0,0.3); animation: ho-stump 20s linear infinite; }
.scn-holofernes-approval .holofernes { position:absolute; bottom:35%; left:25%; width:45px; height:75px; background: linear-gradient(180deg, #8b4513 0%, #5c2e0e 60%, #3e1f0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ho-holo 4s ease-in-out infinite; }
.scn-holofernes-approval .holofernes::after { content:''; position:absolute; top:5%; left:-10px; width:60px; height:20px; background: #2e1a0a; border-radius:50%; transform: rotate(-10deg); }
.scn-holofernes-approval .nathaniel { position:absolute; bottom:36%; left:45%; width:35px; height:65px; background: linear-gradient(180deg, #6b4c30 0%, #3e2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ho-nathan 5s ease-in-out infinite alternate; }
.scn-holofernes-approval .scroll { position:absolute; bottom:38%; left:35%; width:40px; height:15px; background: linear-gradient(90deg, #f5e6ca 0%, #dfc8a0 50%, #c4a882 100%); border-radius:4px; transform: rotate(-15deg); box-shadow: 1px 1px 4px rgba(0,0,0,0.2); animation: ho-scroll 3s ease-in-out infinite; }
.scn-holofernes-approval .spectacles { position:absolute; bottom:58%; left:30%; width:20px; height:10px; background: transparent; border: 3px solid #8b7355; border-radius:50%; box-shadow: 0 0 0 0 transparent; animation: ho-specs 6s ease-in-out infinite; }

@keyframes ho-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes ho-stump { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(0.98) translateY(1px); } }
@keyframes ho-holo { 0% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-3px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ho-nathan { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(5deg) scale(1.02); } 100% { transform: rotate(-3deg) scale(0.98); } }
@keyframes ho-scroll { 0% { transform: rotate(-15deg) scale(1); opacity:0.8; } 50% { transform: rotate(-10deg) scale(1.05); opacity:1; } 100% { transform: rotate(-18deg) scale(0.95); opacity:0.7; } }
@keyframes ho-specs { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(5deg); } 50% { transform: translateY(0) rotate(-3deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-dull-departure {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 40%, #b8d4a3 70%, #6b8e23 100%);
}
.scn-dull-departure .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #a2d9e8 0%, #f9e79f 100%); animation: du-sky 18s ease-in-out infinite alternate; }
.scn-dull-departure .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #9cb87a 0%, #5a7a2a 100%); }
.scn-dull-departure .path { position:absolute; bottom:10%; left:20%; right:20%; height:25%; background: linear-gradient(180deg, #c4a882 0%, #a0896a 100%); border-radius:40% 40% 0 0 / 60% 60% 0 0; animation: du-path 25s linear infinite; }
.scn-dull-departure .dull { position:absolute; bottom:30%; left:30%; width:40px; height:70px; background: linear-gradient(180deg, #5c3a1a 0%, #3e2a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: du-dull 4s ease-in-out infinite; }
.scn-dull-departure .dull::before { content:''; position:absolute; top:5%; left:0; width:100%; height:20px; background: #7a5230; border-radius:30% 30% 0 0; }
.scn-dull-departure .staff { position:absolute; bottom:25%; left:45%; width:6px; height:45px; background: linear-gradient(180deg, #8b7355 0%, #5c4033 100%); border-radius:4px; transform: rotate(10deg); transform-origin: bottom center; animation: du-staff 5s ease-in-out infinite alternate; }
.scn-dull-departure .cloud { position:absolute; top:15%; right:10%; width:70px; height:18px; background: rgba(255,255,255,0.5); filter: blur(6px); border-radius:50%; animation: du-cloud 40s linear infinite; }
.scn-dull-departure .signpost { position:absolute; bottom:38%; left:60%; width:8px; height:45px; background: #5c3a1a; animation: du-signpost 20s linear infinite; }
.scn-dull-departure .signpost::after { content:''; position:absolute; top:0; left:-5px; width:18px; height:10px; background: #8b7355; border-radius:2px; }

@keyframes du-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes du-path { 0% { background-position: 0 0; } 100% { background-position: -100px 0; } }
@keyframes du-dull { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(15px) rotate(1deg); } 100% { transform: translateX(20px) rotate(0deg); } }
@keyframes du-staff { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(15deg) scaleY(1.02); } 100% { transform: rotate(8deg) scaleY(0.98); } }
@keyframes du-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }
@keyframes du-signpost { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.97); } }

/* === jacquenetta-quick (jq) === */
.scn-jacquenetta-quick {
  background: 
    linear-gradient(180deg, #1a1020 0%, #3a2030 30%, #c06030 70%, #e08040 100%),
    radial-gradient(ellipse at 70% 20%, #e09050 0%, transparent 60%);
}
.scn-jacquenetta-quick .sky-jq { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a1a30 0%, #5a3040 40%, transparent 100%); animation: jq-sky 8s ease-in-out infinite alternate; }
.scn-jacquenetta-quick .ground-jq { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #1a1a10 0%, #2a2018 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
.scn-jacquenetta-quick .woman-jq { position:absolute; bottom:30%; left:35%; width:50px; height:80px; background: linear-gradient(180deg, #1a1015 0%, #0a080a 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jq-woman 4s ease-in-out infinite; }
.scn-jacquenetta-quick .woman-jq::after { content:''; position:absolute; bottom:10%; left:15%; width:70%; height:25%; background: radial-gradient(ellipse at 50% 60%, #1a1a2a 0%, #0a080a 100%); border-radius:50%; } /* belly */
.scn-jacquenetta-quick .man-jq { position:absolute; bottom:30%; left:55%; width:40px; height:70px; background: linear-gradient(180deg, #181018 0%, #0a080a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: jq-man 4s ease-in-out infinite; }
.scn-jacquenetta-quick .glow-jq { position:absolute; bottom:38%; left:38%; width:30px; height:30px; background: radial-gradient(circle, #ffe080 0%, #e08040 40%, transparent 70%); border-radius:50%; animation: jq-glow 2s ease-in-out infinite alternate; }
.scn-jacquenetta-quick .sparkle-jq { position:absolute; width:8px; height:8px; background: #ffe080; border-radius:50%; filter: blur(1px); }
.scn-jacquenetta-quick .sparkle-jq.a { top:20%; left:25%; animation: jq-sparkle 3s ease-in-out infinite; }
.scn-jacquenetta-quick .sparkle-jq.b { top:30%; right:20%; animation: jq-sparkle 2.5s ease-in-out infinite 1s; }
@keyframes jq-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes jq-woman { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-3px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(2px) rotate(0) } }
@keyframes jq-man { 0% { transform: translateX(0) translateY(0) rotate(0) } 20% { transform: translateX(-5px) translateY(-2px) rotate(-5deg) } 50% { transform: translateX(2px) translateY(0) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes jq-glow { 0% { transform: scale(0.8); opacity:0.6 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(0.9); opacity:0.7 } }
@keyframes jq-sparkle { 0% { opacity:0; transform: scale(0.5) } 50% { opacity:0.8; transform: scale(1.2) } 100% { opacity:0; transform: scale(0.3) } }

/* === praise-pompey (pp) === */
.scn-praise-pompey {
  background: 
    linear-gradient(180deg, #1a1025 0%, #3a2040 50%, #b06040 100%),
    radial-gradient(ellipse at 30% 50%, #c07040 0%, transparent 70%);
}
.scn-praise-pompey .sky-pp { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a1a35 0%, #5a3045 40%, transparent 100%); animation: pp-sky 12s ease-in-out infinite alternate; }
.scn-praise-pompey .ground-pp { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #1a1508 0%, #2a2008 100%); border-radius: 40% 30% 0 0 / 60% 40% 0 0; }
.scn-praise-pompey .pompey-pp { position:absolute; bottom:20%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #201020 0%, #0a0508 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pp-pompey 6s ease-in-out infinite; }
.scn-praise-pompey .pompey-pp::before { content:''; position:absolute; bottom:10%; left:50%; width:40px; height:20px; background: #201020; border-radius:50%; transform:translateX(-50%) rotate(-10deg); } /* huge arm */
.scn-praise-pompey .hector-pp { position:absolute; bottom:30%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #180a10 0%, #0a0508 100%); border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pp-hector 3s ease-in-out infinite; }
.scn-praise-pompey .cheer-pp { position:absolute; width:10px; height:20px; background: #c06030; border-radius: 20% 20% 0 0; }
.scn-praise-pompey .cheer-pp.a { bottom:35%; left:40%; animation: pp-cheer 2s ease-in-out infinite; }
.scn-praise-pompey .cheer-pp.b { bottom:35%; right:35%; animation: pp-cheer 2.3s ease-in-out infinite 0.5s; }
.scn-praise-pompey .cheer-pp.c { bottom:38%; right:45%; width:8px; height:15px; animation: pp-cheer 2.6s ease-in-out infinite 1s; }
@keyframes pp-sky { 0% { opacity:0.75 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes pp-pompey { 0% { transform: translateX(-50%) scale(1) rotate(0) } 30% { transform: translateX(-50%) scale(1.05) rotate(2deg) } 60% { transform: translateX(-50%) scale(0.95) rotate(-2deg) } 100% { transform: translateX(-50%) scale(1) rotate(0) } }
@keyframes pp-hector { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-5px) rotate(-8deg) } 50% { transform: translateX(3px) rotate(5deg) } 75% { transform: translateX(-2px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pp-cheer { 0% { transform: translateY(0) rotate(-10deg) } 50% { transform: translateY(-10px) rotate(10deg) } 100% { transform: translateY(0) rotate(-5deg) } }

/* === challenge-pole (cp) === */
.scn-challenge-pole {
  background: 
    linear-gradient(180deg, #0f0a18 0%, #1f1528 40%, #7a4020 80%, #b05730 100%),
    radial-gradient(ellipse at 50% 40%, #6a3020 0%, transparent 50%);
}
.scn-challenge-pole .sky-cp { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a0a20 0%, #3a1a2a 50%, transparent 100%); animation: cp-sky 4s ease-in-out infinite alternate; }
.scn-challenge-pole .ground-cp { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #0a080a 0%, #1a1010 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; }
.scn-challenge-pole .fighter1-cp { position:absolute; bottom:30%; left:25%; width:30px; height:55px; background: #0a0508; border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cp-fighter1 1.5s ease-in-out infinite alternate; }
.scn-challenge-pole .fighter2-cp { position:absolute; bottom:30%; right:25%; width:30px; height:55px; background: #0a0508; border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cp-fighter2 1.5s ease-in-out infinite alternate; }
.scn-challenge-pole .pole-cp { position:absolute; bottom:40%; left:28%; width:50px; height:6px; background: #3a2010; border-radius: 2px; transform-origin: left center; animation: cp-pole 1.5s ease-in-out infinite alternate; }
.scn-challenge-pole .sword-cp { position:absolute; bottom:35%; right:30%; width:30px; height:5px; background: #807070; border-radius: 2px; transform-origin: right center; transform: rotate(-30deg); animation: cp-sword 1.5s ease-in-out infinite alternate; }
.scn-challenge-pole .dust-cp { position:absolute; width:8px; height:8px; background: #3a3020; border-radius:50%; filter: blur(2px); }
.scn-challenge-pole .dust-cp.a { bottom:30%; left:30%; animation: cp-dust 2s ease-out infinite; }
.scn-challenge-pole .dust-cp.b { bottom:30%; left:70%; animation: cp-dust 2.4s ease-out infinite 0.3s; }
@keyframes cp-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes cp-fighter1 { 0% { transform: translateX(0) rotate(0) } 100% { transform: translateX(10px) rotate(10deg) } }
@keyframes cp-fighter2 { 0% { transform: translateX(0) rotate(0) } 100% { transform: translateX(-10px) rotate(-10deg) } }
@keyframes cp-pole { 0% { transform: rotate(0) } 100% { transform: rotate(40deg) } }
@keyframes cp-sword { 0% { transform: rotate(-30deg) } 100% { transform: rotate(20deg) } }
@keyframes cp-dust { 0% { transform: translateY(0) scale(1); opacity:0.6 } 100% { transform: translateY(-30px) scale(0.5); opacity:0 } }

/* === shirtless-combat (sc) === */
.scn-shirtless-combat {
  background: 
    linear-gradient(180deg, #1a0a1a 0%, #2a1520 50%, #a05830 100%),
    radial-gradient(ellipse at 40% 30%, #b06030 0%, transparent 60%);
}
.scn-shirtless-combat .sky-sc { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1025 0%, #4a2030 60%, transparent 100%); animation: sc-sky 10s ease-in-out infinite alternate; }
.scn-shirtless-combat .ground-sc { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #0a0808 0%, #1a1010 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-shirtless-combat .figure-sc { position:absolute; bottom:30%; left:40%; width:35px; height:65px; background: linear-gradient(180deg, #0a050a 0%, #150810 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sc-figure 3s ease-in-out infinite; }
.scn-shirtless-combat .figure-sc::before { content:''; position:absolute; top:-5px; left:50%; width:20px; height:10px; background: #0a050a; border-radius: 50% 50% 0 0; transform:translateX(-50%); } /* head */
.scn-shirtless-combat .figure-sc::after { content:''; position:absolute; bottom:0; left:50%; width:12px; height:15px; background: #0a050a; border-radius: 50%; transform:translateX(-50%); } /* loincloth */
.scn-shirtless-combat .sword-sc { position:absolute; bottom:35%; right:45%; width:35px; height:5px; background: #706060; border-radius: 2px; transform-origin: right center; transform: rotate(20deg); animation: sc-sword 3s ease-in-out infinite; }
.scn-shirtless-combat .cloak-sc { position:absolute; bottom:25%; left:30%; width:25px; height:18px; background: #2a1510; border-radius: 10% 10% 50% 50%; filter: blur(1px); opacity:0.6; animation: sc-cloak 4s ease-in-out infinite; }
.scn-shirtless-combat .sweat-sc { position:absolute; width:4px; height:4px; background: #c0a080; border-radius:50%; filter: blur(1px); }
.scn-shirtless-combat .sweat-sc.a { bottom:50%; left:45%; animation: sc-sweat 1.5s ease-out infinite; }
.scn-shirtless-combat .sweat-sc.b { bottom:50%; right:48%; animation: sc-sweat 1.8s ease-out infinite 0.5s; }
@keyframes sc-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes sc-figure { 0% { transform: translateX(0) rotate(0) scale(1) } 25% { transform: translateX(3px) rotate(5deg) scale(1.02) } 50% { transform: translateX(-2px) rotate(-3deg) scale(0.98) } 75% { transform: translateX(1px) rotate(2deg) scale(1) } 100% { transform: translateX(0) rotate(0) scale(1) } }
@keyframes sc-sword { 0% { transform: rotate(20deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(20deg) } }
@keyframes sc-cloak { 0% { transform: translateX(0) translateY(0) rotate(-5deg) } 50% { transform: translateX(5px) translateY(-3px) rotate(5deg) } 100% { transform: translateX(0) translateY(0) rotate(-5deg) } }
@keyframes sc-sweat { 0% { transform: translateY(0) scale(1); opacity:0.8 } 100% { transform: translateY(-20px) scale(0.3); opacity:0 } }

.scn-princess-deer-hunt { background: linear-gradient(180deg, #2a5a3a 0%, #4a7a4a 50%, #8aaa6a 100%), radial-gradient(ellipse at 20% 30%, #ffdd88 0%, transparent 60%); }
.scn-princess-deer-hunt .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a9ad6 0%, #b0d0f0 100%); animation: pdh-sky 15s ease-in-out infinite alternate; }
.scn-princess-deer-hunt .forest-bg { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a5a2a 0%, #1a2a0a 100%); border-radius: 30% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.4); animation: pdh-forest 20s ease-in-out infinite alternate; }
.scn-princess-deer-hunt .deer { position:absolute; bottom:30%; left:40%; width:40px; height:60px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pdh-deer 6s ease-in-out infinite; }
.scn-princess-deer-hunt .hunter { position:absolute; bottom:30%; right:30%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: pdh-hunter 8s ease-in-out infinite; }
.scn-princess-deer-hunt .arrow { position:absolute; bottom:45%; left:55%; width:6px; height:30px; background: #8a6a3a; border-radius: 50% 50% 0 0; transform: rotate(30deg); animation: pdh-arrow 4s ease-in-out infinite; }
.scn-princess-deer-hunt .sunray { position:absolute; top:10%; left:20%; width:100px; height:200px; background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%); filter: blur(10px); animation: pdh-sunray 10s ease-in-out infinite alternate; }
@keyframes pdh-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes pdh-forest { 0% { transform:translateY(0); } 50% { transform:translateY(-5px); } 100% { transform:translateY(0); } }
@keyframes pdh-deer { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(10px) rotate(2deg); } 50% { transform:translateX(20px) rotate(0deg); } 75% { transform:translateX(10px) rotate(-2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes pdh-hunter { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-5px) rotate(-3deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes pdh-arrow { 0% { transform:rotate(30deg) translateX(0); } 50% { transform:rotate(30deg) translateX(10px); } 100% { transform:rotate(30deg) translateX(0); } }
@keyframes pdh-sunray { 0% { opacity:0.3; transform:scale(1); } 50% { opacity:0.6; transform:scale(1.1); } 100% { opacity:0.4; transform:scale(1); } }

.scn-letter-mistake { background: linear-gradient(180deg, #d4c4a0 0%, #b09a70 50%, #8a7a5a 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 40%); }
.scn-letter-mistake .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e8dcc0 0%, #c8b898 100%); animation: lm-wall 20s ease-in-out infinite alternate; }
.scn-letter-mistake .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); animation: lm-floor 15s ease-in-out infinite alternate; }
.scn-letter-mistake .table { position:absolute; bottom:35%; left:40%; width:80px; height:30px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: lm-table 10s ease-in-out infinite; }
.scn-letter-mistake .letter { position:absolute; bottom:42%; left:45%; width:40px; height:50px; background: linear-gradient(180deg, #f0e6c0 0%, #d0c0a0 100%); transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: lm-letter 4s ease-in-out infinite; }
.scn-letter-mistake .figure { position:absolute; bottom:30%; left:20%; width:40px; height:80px; background: linear-gradient(180deg, #3a2a5a 0%, #1a1a3a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: lm-figure 6s ease-in-out infinite; }
.scn-letter-mistake .feather { position:absolute; bottom:45%; left:10%; width:10px; height:30px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 50% 50% 0 0; transform: rotate(20deg); animation: lm-feather 3s ease-in-out infinite; }
@keyframes lm-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes lm-floor { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes lm-table { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(0); } }
@keyframes lm-letter { 0% { transform:rotate(-10deg) translateY(0); } 50% { transform:rotate(-5deg) translateY(-3px); } 100% { transform:rotate(-10deg) translateY(0); } }
@keyframes lm-figure { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(5px) rotate(2deg); } 50% { transform:translateX(10px) rotate(-1deg); } 75% { transform:translateX(5px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes lm-feather { 0% { transform:rotate(20deg) translateY(0); } 50% { transform:rotate(30deg) translateY(-5px); } 100% { transform:rotate(20deg) translateY(0); } }

.scn-boyet-rosaline-banter { background: linear-gradient(180deg, #6ac4e6 0%, #a0d8ef 50%, #c8e8f8 100%), radial-gradient(ellipse at 50% 80%, #b0e0f0 0%, transparent 60%); }
.scn-boyet-rosaline-banter .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8ad6f0 0%, #b0e8f8 100%); animation: brb-sky 15s ease-in-out infinite alternate; }
.scn-boyet-rosaline-banter .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a9a4a 0%, #4a7a2a 100%); border-radius: 20% 20% 0 0; animation: brb-ground 12s ease-in-out infinite alternate; }
.scn-boyet-rosaline-banter .target { position:absolute; bottom:30%; left:50%; width:60px; height:60px; transform:translateX(-50%); background: radial-gradient(circle, #ffffff 0%, #e0e0e0 30%, #c0c0c0 60%, #a0a0a0 100%); border: 4px solid #8a6a3a; border-radius:50%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: brb-target 8s ease-in-out infinite; }
.scn-boyet-rosaline-banter .figure-a { position:absolute; bottom:30%; left:20%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a5a 0%, #1a1a3a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: brb-fig-a 5s ease-in-out infinite; }
.scn-boyet-rosaline-banter .figure-b { position:absolute; bottom:30%; right:20%; width:30px; height:70px; background: linear-gradient(180deg, #5a2a2a 0%, #3a1a1a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: brb-fig-b 4s ease-in-out infinite alternate; }
.scn-boyet-rosaline-banter .bow { position:absolute; bottom:40%; left:28%; width:8px; height:50px; background: #8a6a3a; border-radius: 50% 50% 0 0; transform: rotate(-30deg); animation: brb-bow 3s ease-in-out infinite; }
@keyframes brb-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes brb-ground { 0% { transform:scaleY(1); } 50% { transform:scaleY(0.98); } 100% { transform:scaleY(1); } }
@keyframes brb-target { 0% { transform:translateX(-50%) scale(1); } 50% { transform:translateX(-50%) scale(0.97); } 100% { transform:translateX(-50%) scale(1); } }
@keyframes brb-fig-a { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(5px) rotate(2deg); } 50% { transform:translateX(10px) rotate(-1deg); } 75% { transform:translateX(5px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes brb-fig-b { 0% { transform:translateX(0) rotate(0deg); } 100% { transform:translateX(-10px) rotate(-3deg); } }
@keyframes brb-bow { 0% { transform:rotate(-30deg) translateX(0); } 50% { transform:rotate(-20deg) translateX(5px); } 100% { transform:rotate(-30deg) translateX(0); } }

.scn-boyet-maria-banter { background: linear-gradient(180deg, #8ac6a0 0%, #b0e0c0 50%, #d0f0d8 100%), radial-gradient(ellipse at 40% 60%, #e0ffd0 0%, transparent 50%); }
.scn-boyet-maria-banter .bg-top { position:absolute; inset:0; background: linear-gradient(180deg, #90d0a8 0%, #b8e8c8 100%); animation: bmb-bg 20s ease-in-out infinite alternate; }
.scn-boyet-maria-banter .target-overhead { position:absolute; top:50%; left:50%; width:80px; height:80px; transform:translate(-50%, -50%); background: radial-gradient(circle, #ffffff 0%, #e0e0e0 20%, #c0c0c0 40%, #a0a0a0 60%, #808080 80%, #606060 100%); border: 6px solid #8a6a3a; border-radius:50%; box-shadow: 0 8px 16px rgba(0,0,0,0.3); animation: bmb-target 10s ease-in-out infinite; }
.scn-boyet-maria-banter .arrow-1 { position:absolute; top:45%; left:48%; width:4px; height:30px; background: #a07850; border-radius:2px; transform: rotate(15deg); animation: bmb-arrow1 5s ease-in-out infinite; }
.scn-boyet-maria-banter .arrow-2 { position:absolute; top:55%; left:52%; width:4px; height:30px; background: #a07850; border-radius:2px; transform: rotate(-20deg); animation: bmb-arrow2 7s ease-in-out infinite; }
.scn-boyet-maria-banter .shadow-figure { position:absolute; top:30%; left:30%; width:60px; height:100px; background: rgba(0,0,0,0.2); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(10deg); animation: bmb-shadow 8s ease-in-out infinite alternate; }
.scn-boyet-maria-banter .sparkle { position:absolute; top:35%; left:60%; width:8px; height:8px; background: #ffffc0; border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,255,200,0.6); animation: bmb-sparkle 3s ease-in-out infinite; }
@keyframes bmb-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes bmb-target { 0% { transform:translate(-50%, -50%) scale(1); } 50% { transform:translate(-50%, -50%) scale(0.98); } 100% { transform:translate(-50%, -50%) scale(1); } }
@keyframes bmb-arrow1 { 0% { transform:rotate(15deg) translateY(0); } 50% { transform:rotate(15deg) translateY(-5px); } 100% { transform:rotate(15deg) translateY(0); } }
@keyframes bmb-arrow2 { 0% { transform:rotate(-20deg) translateY(0); } 50% { transform:rotate(-20deg) translateY(-5px); } 100% { transform:rotate(-20deg) translateY(0); } }
@keyframes bmb-shadow { 0% { transform:rotate(10deg) translateX(0); } 100% { transform:rotate(10deg) translateX(15px); } }
@keyframes bmb-sparkle { 0% { opacity:0.3; transform:scale(1); } 50% { opacity:1; transform:scale(1.5); } 100% { opacity:0.3; transform:scale(1); } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.leaf { position: absolute; pointer-events: none; }
.motes { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-alexander-performance {
  background: linear-gradient(180deg, #f9e6b3 0%, #e8c880 50%, #d4a54a 100%),
              radial-gradient(circle at 20% 80%, #ffe280 0%, transparent 60%);
}
.scn-alexander-performance .stage-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #c8a060 0%, #a07a40 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
}
.scn-alexander-performance .curtain-left {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(135deg, #a0461a 0%, #702a10 100%);
  border-radius: 0 80% 80% 0 / 0 50% 50% 0;
  animation: ap-curtain 6s ease-in-out infinite alternate;
}
.scn-alexander-performance .curtain-right {
  position: absolute; top: 0; right: 0; width: 30%; height: 100%;
  background: linear-gradient(225deg, #a0461a 0%, #702a10 100%);
  border-radius: 80% 0 0 80% / 50% 0 0 50%;
  animation: ap-curtain 6s ease-in-out infinite alternate-reverse;
}
.scn-alexander-performance .figure-alex {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0d0803 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ap-figure 3s ease-in-out infinite;
}
.scn-alexander-performance .nose-overlay {
  position: absolute; bottom: 72%; left: 50%; width: 30px; height: 20px;
  background: radial-gradient(circle at 50% 100%, #3a2a1a 0%, transparent 70%);
  border-radius: 50% 50% 40% 40%;
  transform: translateX(-50%) rotate(-5deg);
  animation: ap-nose 2s ease-in-out infinite alternate;
}
.scn-alexander-performance .spotlight {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,230,150,0.9) 0%, transparent 70%);
  animation: ap-spotlight 4s ease-in-out infinite alternate;
}
@keyframes ap-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.9); }
  100% { transform: scaleX(1); }
}
@keyframes ap-figure {
  0% { transform: translateX(-50%) rotate(-2deg); }
  25% { transform: translateX(-45%) rotate(1deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  75% { transform: translateX(-55%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes ap-nose {
  0% { transform: translateX(-50%) rotate(-8deg) scaleY(1); }
  50% { transform: translateX(-50%) rotate(5deg) scaleY(1.2); }
  100% { transform: translateX(-50%) rotate(-3deg) scaleY(1); }
}
@keyframes ap-spotlight {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(0.95); }
}

.scn-judas-herocles-performance {
  background: linear-gradient(180deg, #fce4a0 0%, #e8c060 50%, #c89438 100%),
              radial-gradient(ellipse at 80% 20%, #ffe060 0%, transparent 60%);
}
.scn-judas-herocles-performance .sunlit-sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #a0c8f0 0%, transparent 100%);
  animation: jh-sky 10s ease-in-out infinite alternate;
}
.scn-judas-herocles-performance .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8a6a30 0%, #5a3e18 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-judas-herocles-performance .judas-figure {
  position: absolute; bottom: 35%; left: 30%; width: 55px; height: 110px;
  background: linear-gradient(180deg, #5e1a1d 0%, #2a0a0c 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: jh-judas 5s ease-in-out infinite;
}
.scn-judas-herocles-performance .herocles-figure {
  position: absolute; bottom: 35%; right: 30%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #c8553d 0%, #6a2416 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jh-herocles 4s ease-in-out infinite;
}
.scn-judas-herocles-performance .club {
  position: absolute; bottom: 40%; right: 25%; width: 12px; height: 60px;
  background: linear-gradient(180deg, #8a6a40 0%, #4a2a10 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(15deg);
  animation: jh-club 2s ease-in-out infinite alternate;
}
.scn-judas-herocles-performance .wreath {
  position: absolute; top: 20%; right: 28%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f0d050 0%, #c89020 60%, transparent 70%);
  border-radius: 50%;
  animation: jh-wreath 3s ease-in-out infinite alternate;
}
@keyframes jh-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes jh-judas {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-5px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes jh-herocles {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(10px) scale(1.05); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes jh-club {
  0% { transform: rotate(10deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(15deg); }
}
@keyframes jh-wreath {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(10deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-hector-performance {
  background: linear-gradient(180deg, #f5e6c0 0%, #d4b880 50%, #b89860 100%),
              radial-gradient(circle at 50% 70%, #ffe080 0%, transparent 60%);
}
.scn-hector-performance .meadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #9ac070 0%, #689040 100%);
  border-radius: 40% 60% 0 0 / 30% 50% 0 0;
}
.scn-hector-performance .hector-silhouette {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform: translateX(-50%);
  animation: he-figure 4s ease-in-out infinite;
}
.scn-hector-performance .leg-left {
  position: absolute; bottom: 28%; left: 47%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(-5deg);
  animation: he-leg-l 3s ease-in-out infinite alternate;
}
.scn-hector-performance .leg-right {
  position: absolute; bottom: 28%; left: 53%; width: 22px; height: 62px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(5deg);
  animation: he-leg-r 3s ease-in-out infinite alternate;
}
.scn-hector-performance .spear {
  position: absolute; bottom: 40%; left: 50%; width: 4px; height: 80px;
  background: linear-gradient(180deg, #8a7a60 0%, #4a3a20 100%);
  transform: translateX(-50%) rotate(10deg);
  animation: he-spear 2s ease-in-out infinite alternate;
}
.scn-hector-performance .shadow-dots {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 10px;
  background: radial-gradient(circle, rgba(0,0,0,0.3) 30%, transparent 70%);
  background-size: 20px 10px;
  animation: he-dots 5s linear infinite;
}
@keyframes he-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  30% { transform: translateX(-50%) rotate(3deg); }
  60% { transform: translateX(-50%) rotate(-2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes he-leg-l {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes he-leg-r {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-2px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes he-spear {
  0% { transform: translateX(-50%) rotate(5deg); }
  50% { transform: translateX(-50%) rotate(15deg); }
  100% { transform: translateX(-50%) rotate(10deg); }
}
@keyframes he-dots {
  0% { background-position: 0 0; }
  100% { background-position: 40px 0; }
}

.scn-news-of-death {
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 50%, #1a2a3a 100%),
              radial-gradient(circle at 30% 40%, #5a6a7a 0%, transparent 60%);
}
.scn-news-of-death .overcast-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  animation: nd-bg 15s ease-in-out infinite alternate;
}
.scn-news-of-death .dark-tower {
  position: absolute; bottom: 15%; left: 50%; width: 60px; height: 150px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  transform: translateX(-50%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: nd-tower 8s ease-in-out infinite alternate;
}
.scn-news-of-death .figure-mourner {
  position: absolute; bottom: 15%; left: 50%; width: 30px; height: 70px;
  background: radial-gradient(ellipse at 50% 80%, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: nd-mourner 6s ease-in-out infinite;
}
.scn-news-of-death .clouds-top {
  position: absolute; top: 5%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a6a7a 0%, transparent 80%);
  filter: blur(4px);
  animation: nd-clouds 20s linear infinite;
}
.scn-news-of-death .mist {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(100,120,140,0.4) 0%, transparent 70%);
  animation: nd-mist 12s ease-in-out infinite alternate;
}
.scn-news-of-death .raven {
  position: absolute; top: 15%; right: 20%; width: 20px; height: 14px;
  background: #1a1a2a;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: nd-raven 9s ease-in-out infinite;
}
@keyframes nd-bg {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}
@keyframes nd-tower {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(0.98); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes nd-mourner {
  0% { transform: translateX(-50%) translateY(0); }
  25% { transform: translateX(-50%) translateY(-3px); }
  50% { transform: translateX(-50%) translateY(0); }
  75% { transform: translateX(-50%) translateY(2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes nd-clouds {
  0% { transform: translateX(-10px); }
  50% { transform: translateX(10px); }
  100% { transform: translateX(-10px); }
}
@keyframes nd-mist {
  0% { opacity: 0.4; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.1); }
  100% { opacity: 0.5; transform: scaleY(1); }
}
@keyframes nd-raven {
  0% { transform: translate(0, 0) rotate(0deg); }
  25% { transform: translate(-20px, -10px) rotate(-10deg); }
  50% { transform: translate(10px, -5px) rotate(5deg); }
  75% { transform: translate(-10px, 5px) rotate(-5deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}

/* armados-letter */
.scn-armados-letter {
  background: 
    linear-gradient(180deg, #fbe9d0 0%, #f5d6a8 40%, #e8b87a 100%),
    radial-gradient(ellipse at 50% 20%, #ffe4b0 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-armados-letter .letter-bg {
  position: absolute; inset: 5% 10%; background: #f4e4c1;
  border-radius: 4px; box-shadow: 0 8px 24px rgba(0,0,0,0.15);
  transform: rotate(-1deg); animation: al-float 6s ease-in-out infinite;
}
.scn-armados-letter .letter-paper {
  position: absolute; inset: 10% 15%; background: #fcf3e0;
  border-radius: 2px; box-shadow: inset 0 0 0 1px #dbb88a;
  animation: al-shimmer 9s ease-in-out infinite;
}
.scn-armados-letter .letter-fold {
  position: absolute; top: 25%; left: 30%; right: 30%; height: 6px;
  background: linear-gradient(90deg, transparent, #dbb88a 30%, #c8a06a 50%, #dbb88a 70%, transparent);
  animation: al-fold 4s ease-in-out infinite alternate;
}
.scn-armados-letter .seal {
  position: absolute; bottom: 20%; left: 50%; width: 28px; height: 28px;
  transform: translateX(-50%); background: radial-gradient(circle at 40% 40%, #b44b2a 0%, #8a2e1a 70%);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: al-seal 5s ease-in-out infinite;
}
.scn-armados-letter .ink-scroll-1 {
  position: absolute; top: 40%; left: 20%; width: 40px; height: 3px;
  background: #3a2a1a; border-radius: 1px; transform: rotate(15deg);
  animation: al-ink1 3s ease-in-out infinite alternate;
}
.scn-armados-letter .ink-scroll-2 {
  position: absolute; top: 55%; left: 40%; width: 30px; height: 3px;
  background: #3a2a1a; border-radius: 1px; transform: rotate(-10deg);
  animation: al-ink2 3.5s ease-in-out infinite alternate-reverse;
}
.scn-armados-letter .light-burst {
  position: absolute; top: 10%; left: 30%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(255,220,150,0.4) 0%, transparent 70%);
  animation: al-burst 7s ease-in-out infinite;
}
@keyframes al-float { 0% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-4px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes al-shimmer { 0% { opacity: 0.9; } 50% { opacity: 1; box-shadow: inset 0 0 0 1px #dbb88a, 0 0 12px rgba(200,160,100,0.2); } 100% { opacity: 0.9; } }
@keyframes al-fold { 0% { transform: scaleY(0); opacity: 0; } 50% { transform: scaleY(1); opacity: 1; } 100% { transform: scaleY(0.5); opacity: 0.6; } }
@keyframes al-seal { 0% { transform: translateX(-50%) scale(0.95); } 50% { transform: translateX(-50%) scale(1.05); } 100% { transform: translateX(-50%) scale(0.95); } }
@keyframes al-ink1 { 0% { width: 40px; opacity: 0.6; } 100% { width: 60px; opacity: 1; } }
@keyframes al-ink2 { 0% { width: 30px; opacity: 0.5; } 100% { width: 50px; opacity: 0.8; } }
@keyframes al-burst { 0% { opacity: 0; transform: scale(0.8); } 50% { opacity: 0.6; transform: scale(1.2); } 100% { opacity: 0; transform: scale(0.8); } }

/* armados-letter-read */
.scn-armados-letter-read {
  background:
    linear-gradient(180deg, #f3d6a0 0%, #e2b872 40%, #c9994a 100%),
    radial-gradient(ellipse at 50% 80%, #fce8c0 0%, transparent 60%);
}
.scn-armados-letter-read .read-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #eedbb0 0%, transparent);
  animation: alr-sky 14s ease-in-out infinite alternate;
}
.scn-armados-letter-read .reader-figure {
  position: absolute; bottom: 10%; left: 40%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg); animation: alr-bob 5s ease-in-out infinite;
}
.scn-armados-letter-read .reader-hand {
  position: absolute; bottom: 25%; left: 52%; width: 20px; height: 30px;
  background: #b88a6a; border-radius: 40% 40% 20% 20%;
  transform: rotate(20deg); transform-origin: bottom left;
  animation: alr-hand 4s ease-in-out infinite alternate;
}
.scn-armados-letter-read .letter-held {
  position: absolute; bottom: 32%; left: 55%; width: 40px; height: 30px;
  background: #fcf3e0; border: 1px solid #dbb88a; border-radius: 2px;
  transform: rotate(-15deg); animation: alr-letter 6s ease-in-out infinite;
}
.scn-armados-letter-read .floating-word-1 {
  position: absolute; top: 15%; left: 20%; width: 8px; height: 8px;
  background: #7a5a3a; border-radius: 50%; filter: blur(2px);
  animation: alr-word1 9s ease-in-out infinite;
}
.scn-armados-letter-read .floating-word-2 {
  position: absolute; top: 25%; right: 25%; width: 10px; height: 10px;
  background: #7a5a3a; border-radius: 50%; filter: blur(2px);
  animation: alr-word2 11s ease-in-out infinite;
}
.scn-armados-letter-read .sunbeam {
  position: absolute; top: 0; left: 30%; width: 8px; height: 100%;
  background: linear-gradient(180deg, rgba(255,230,180,0.3) 0%, transparent);
  transform: rotate(10deg); animation: alr-beam 8s ease-in-out infinite alternate;
}
@keyframes alr-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes alr-bob { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes alr-hand { 0% { transform: rotate(20deg); } 100% { transform: rotate(30deg); } }
@keyframes alr-letter { 0% { transform: rotate(-15deg) scale(1); } 50% { transform: rotate(-10deg) scale(1.02); } 100% { transform: rotate(-15deg) scale(1); } }
@keyframes alr-word1 { 0% { transform: translate(0,0); opacity:0; } 30% { opacity:0.5; } 60% { opacity:0.2; } 100% { transform: translate(-40px,-60px); opacity:0; } }
@keyframes alr-word2 { 0% { transform: translate(0,0); opacity:0; } 20% { opacity:0.6; } 70% { opacity:0.1; } 100% { transform: translate(50px,-90px); opacity:0; } }
@keyframes alr-beam { 0% { transform: rotate(10deg) scaleY(0.8); opacity:0.5; } 100% { transform: rotate(15deg) scaleY(1); opacity:0.8; } }

/* costard-confesses */
.scn-costard-confesses {
  background:
    linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 30%, #1a1a2e 70%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 40%, #8a6a4a 0%, transparent 60%);
}
.scn-costard-confesses .confess-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2a4a 0%, transparent 40%);
  animation: cc-darken 10s ease-in-out infinite alternate;
}
.scn-costard-confesses .confess-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #2e2e3e 0%, #1e1e2e 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: cc-floor 12s ease-in-out infinite alternate;
}
.scn-costard-confesses .figure-kneeling {
  position: absolute; bottom: 20%; left: 35%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: cc-kneel 8s ease-in-out infinite;
}
.scn-costard-confesses .judge-shadow {
  position: absolute; bottom: 40%; right: 20%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: skewX(-10deg); filter: blur(3px);
  animation: cc-judge 9s ease-in-out infinite alternate;
}
.scn-costard-confesses .chains {
  position: absolute; bottom: 22%; left: 32%; width: 20px; height: 40px;
  border: 2px solid #8a7a6a; border-radius: 40%; filter: blur(1px);
  animation: cc-chains 3s ease-in-out infinite;
}
.scn-costard-confesses .dust-motes-1 {
  position: absolute; top: 20%; left: 10%; width: 4px; height: 4px;
  background: #a0a0b0; border-radius: 50%; filter: blur(1px);
  animation: cc-dust1 7s linear infinite;
}
.scn-costard-confesses .dust-motes-2 {
  position: absolute; top: 30%; left: 60%; width: 6px; height: 6px;
  background: #b0b0c0; border-radius: 50%; filter: blur(1px);
  animation: cc-dust2 9s linear infinite;
}
@keyframes cc-darken { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cc-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes cc-kneel { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95) rotate(2deg); } 100% { transform: scaleY(1); } }
@keyframes cc-judge { 0% { transform: skewX(-10deg) translateX(0); } 50% { transform: skewX(-8deg) translateX(-5px); } 100% { transform: skewX(-10deg) translateX(0); } }
@keyframes cc-chains { 0% { opacity: 0.6; transform: rotate(0deg); } 50% { opacity: 1; transform: rotate(5deg); } 100% { opacity: 0.6; transform: rotate(0deg); } }
@keyframes cc-dust1 { 0% { transform: translate(0,0) scale(1); opacity:0; } 20% { opacity:0.4; } 80% { opacity:0.1; } 100% { transform: translate(30px,-80px) scale(0.5); opacity:0; } }
@keyframes cc-dust2 { 0% { transform: translate(0,0) scale(1); opacity:0; } 30% { opacity:0.5; } 70% { opacity:0.2; } 100% { transform: translate(-40px,-100px) scale(0.3); opacity:0; } }

/* costards-sentence */
.scn-costards-sentence {
  background:
    linear-gradient(180deg, #d4b87a 0%, #c8a86a 30%, #b8985a 70%, #a88a4a 100%),
    radial-gradient(ellipse at 50% 0%, #f0d8a0 0%, transparent 50%);
}
.scn-costards-sentence .sentence-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e0c890 0%, #d0b870 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  animation: cs-bg 8s ease-in-out infinite alternate;
}
.scn-costards-sentence .court-dais {
  position: absolute; bottom: 5%; left: 25%; right: 25%; height: 10%;
  background: linear-gradient(0deg, #9a7a4a 0%, #b0905a 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.2);
  animation: cs-dais 10s ease-in-out infinite;
}
.scn-costards-sentence .king-figure {
  position: absolute; bottom: 20%; left: 55%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(2deg); animation: cs-king 6s ease-in-out infinite;
}
.scn-costards-sentence .prisoner-figure {
  position: absolute; bottom: 12%; left: 30%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-5deg); animation: cs-prisoner 7s ease-in-out infinite;
}
.scn-costards-sentence .gavel {
  position: absolute; bottom: 28%; left: 60%; width: 8px; height: 20px;
  background: #7a5a2a; border-radius: 2px;
  transform-origin: bottom center; animation: cs-gavel 4s ease-in-out infinite;
}
.scn-costards-sentence .statue-left {
  position: absolute; bottom: 10%; left: 10%; width: 20px; height: 50px;
  background: #8a7a5a; border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  filter: blur(1px); animation: cs-statue1 15s linear infinite;
}
.scn-costards-sentence .statue-right {
  position: absolute; bottom: 10%; right: 10%; width: 20px; height: 50px;
  background: #7a6a4a; border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  filter: blur(1px); animation: cs-statue2 18s linear infinite reverse;
}
.scn-costards-sentence .sun-ray {
  position: absolute; top: 0; left: 40%; width: 12px; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,180,0.2) 0%, transparent);
  transform: rotate(5deg); animation: cs-ray 9s ease-in-out infinite alternate;
}
@keyframes cs-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cs-dais { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cs-king { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-3px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes cs-prisoner { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-7deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes cs-gavel { 0% { transform: rotate(0deg); } 25% { transform: rotate(30deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-30deg); } 100% { transform: rotate(0deg); } }
@keyframes cs-statue1 { 0% { opacity: 0.3; transform: scale(0.9); } 50% { opacity: 0.6; transform: scale(1); } 100% { opacity: 0.3; transform: scale(0.9); } }
@keyframes cs-statue2 { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(1); } }
@keyframes cs-ray { 0% { transform: rotate(5deg) scaleY(0.8); opacity: 0.3; } 100% { transform: rotate(8deg) scaleY(1); opacity: 0.6; } }

.scn-defense-of-love {
  background: 
    linear-gradient(180deg, #fadc9f 0%, #ecc57a 40%, #d4a45a 100%),
    radial-gradient(ellipse at 30% 20%, #fff3d6 0%, transparent 60%);
}
.scn-defense-of-love .window-arch {
  position:absolute; inset:8% 25% 40% 25%;
  background: linear-gradient(180deg, #8bb8d9 0%, #5f8eb3 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 0 40px rgba(255,230,150,.3);
}
.scn-defense-of-love .sill {
  position:absolute; bottom:40%; left:20%; right:20%; height:4%;
  background: linear-gradient(180deg, #b88a5e 0%, #7a5a3a 100%);
  border-radius: 2px;
}
.scn-defense-of-love .sunbeam {
  position:absolute; top:8%; left:35%; width:30%; height:50%;
  background: linear-gradient(135deg, rgba(255,240,180,.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: dol-beam 12s ease-in-out infinite alternate;
}
.scn-defense-of-love .bookstack {
  position:absolute; bottom:22%; left:38%; width:24%; height:18%;
  background: 
    linear-gradient(180deg, #9a6a3a 0%, #6a4a2a 100%),
    linear-gradient(90deg, transparent 20%, #7a5a3a 20%, #7a5a3a 80%, transparent 80%);
  background-blend-mode: multiply;
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.3);
  animation: dol-book 8s ease-in-out infinite;
}
.scn-defense-of-love .scholar {
  position:absolute; bottom:20%; left:45%; width:10%; height:30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dol-fig 6s ease-in-out infinite;
}
.scn-defense-of-love .open-book {
  position:absolute; bottom:18%; left:48%; width:8%; height:6%;
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b58a 100%);
  border-radius: 4px 12px 12px 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: dol-book 6s ease-in-out infinite alternate;
}
.scn-defense-of-love .dust {
  position:absolute; top:15%; left:20%; width:60%; height:30%;
  background: radial-gradient(circle at 15% 40%, rgba(255,230,150,.15) 0%, transparent 40%),
              radial-gradient(circle at 80% 30%, rgba(255,230,150,.1) 0%, transparent 30%);
  filter: blur(12px);
  animation: dol-dust 20s linear infinite;
}
@keyframes dol-beam {
  0% { opacity:.3; transform: scaleY(.9); }
  50% { opacity:.7; transform: scaleY(1.05); }
  100% { opacity:.4; transform: scaleY(.95); }
}
@keyframes dol-book {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes dol-fig {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-3px) rotate(0deg); }
  100% { transform: translateX(0); }
}
@keyframes dol-dust {
  0% { opacity:.2; transform: translateY(0); }
  50% { opacity:.5; transform: translateY(-10px); }
  100% { opacity:.2; transform: translateY(0); }
}

.scn-holofernes-armado {
  background: 
    linear-gradient(180deg, #e8c88a 0%, #c8a86c 50%, #a8884e 100%),
    radial-gradient(ellipse at 50% 80%, #f5d89c 0%, transparent 70%);
}
.scn-holofernes-armado .wall {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #d4b07a 0%, #b8945c 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
.scn-holofernes-armado .tabletop {
  position:absolute; bottom:30%; left:10%; right:10%; height:20%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 6px;
  box-shadow: 0 8px 16px rgba(0,0,0,.4);
  animation: ha-table 10s ease-in-out infinite alternate;
}
.scn-holofernes-armado .figure-left {
  position:absolute; bottom:25%; left:20%; width:12%; height:35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-fig-l 6s ease-in-out infinite;
}
.scn-holofernes-armado .figure-right {
  position:absolute; bottom:25%; right:20%; width:12%; height:35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-fig-r 6s ease-in-out infinite 1s;
}
.scn-holofernes-armado .wine-cup {
  position:absolute; bottom:35%; left:45%; width:6%; height:10%;
  background: linear-gradient(180deg, #b88a5e 0%, #7a5a3a 100%);
  border-radius: 0 0 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: ha-cup 8s ease-in-out infinite;
}
.scn-holofernes-armado .candelabra {
  position:absolute; bottom:40%; left:55%; width:4%; height:15%;
  background: linear-gradient(180deg, #c8a86c 0%, #a8884e 100%);
  border-radius: 2px;
  box-shadow: 0 0 16px 4px #f5d89c;
  animation: ha-candle 4s ease-in-out infinite alternate;
}
.scn-holofernes-armado .glow {
  position:absolute; bottom:40%; left:55%; width:10%; height:18%;
  background: radial-gradient(circle, rgba(245,216,156,.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: ha-glow 4s ease-in-out infinite alternate;
}
@keyframes ha-table { 0% { transform: skewX(0deg); } 50% { transform: skewX(2deg); } 100% { transform: skewX(-2deg); } }
@keyframes ha-fig-l { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-3px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-2deg) translateY(-3px); } 100% { transform: rotate(0deg); } }
@keyframes ha-fig-r { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-3px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(0deg); } }
@keyframes ha-cup { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes ha-candle { 0% { opacity:.6; transform: scaleY(.9); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:.7; transform: scaleY(.95); } }
@keyframes ha-glow { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.2); } 100% { opacity:.4; transform: scale(1.05); } }

.scn-armado-moth-costard {
  background: 
    linear-gradient(180deg, #f5dcb4 0%, #d9b88a 50%, #b89a6c 100%),
    radial-gradient(ellipse at 60% 30%, #fff3d6 0%, transparent 60%);
}
.scn-armado-moth-costard .ground {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #9a7a5a 0%, #6a5a3a 100%);
  border-radius: 30% 20% 0 0 / 40% 30% 0 0;
}
.scn-armado-moth-costard .sky {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #c4d4e8 0%, #a0b8d0 100%);
  animation: amc-sky 14s ease-in-out infinite alternate;
}
.scn-armado-moth-costard .fig1 {
  position:absolute; bottom:30%; left:20%; width:12%; height:35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: amc-fig1 7s ease-in-out infinite;
}
.scn-armado-moth-costard .fig2 {
  position:absolute; bottom:30%; left:40%; width:12%; height:35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: amc-fig2 7s ease-in-out infinite 1.5s;
}
.scn-armado-moth-costard .fig3 {
  position:absolute; bottom:30%; right:20%; width:12%; height:38%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: amc-fig3 9s ease-in-out infinite 3s;
}
.scn-armado-moth-costard .scraps {
  position:absolute; top:20%; left:10%; width:8%; height:4%;
  background: linear-gradient(135deg, #f5e6c8 0%, #d4b58a 100%);
  border-radius: 2px;
  animation: amc-scrap 12s linear infinite;
}
.scn-armado-moth-costard .word-bits {
  position:absolute; top:30%; right:15%; width:6%; height:6%;
  background: radial-gradient(circle, #d4b58a 0%, transparent 70%);
  filter: blur(3px);
  animation: amc-bits 20s linear infinite reverse;
}
.scn-armado-moth-costard .shadow {
  position:absolute; bottom:32%; left:15%; right:15%; height:10%;
  background: linear-gradient(180deg, rgba(0,0,0,.15), transparent);
  filter: blur(10px);
}
@keyframes amc-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes amc-fig1 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-8px) rotate(1deg); } 100% { transform: translateX(0); } }
@keyframes amc-fig2 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(6px) rotate(-2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-6px) rotate(0deg); } 100% { transform: translateX(0); } }
@keyframes amc-fig3 { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-6px) scale(1.03); } 100% { transform: translateY(0) scale(1); } }
@keyframes amc-scrap { 0% { transform: translate(-10px,0) rotate(0deg); opacity:.5; } 25% { transform: translate(20px,-15px) rotate(90deg); opacity:1; } 50% { transform: translate(50px,-30px) rotate(180deg); opacity:.6; } 75% { transform: translate(80px,-10px) rotate(270deg); opacity:.8; } 100% { transform: translate(110px,0) rotate(360deg); opacity:.4; } }
@keyframes amc-bits { 0% { transform: translate(0,0) scale(1); opacity:.3; } 50% { transform: translate(-30px,20px) scale(1.5); opacity:.7; } 100% { transform: translate(-60px,40px) scale(1); opacity:.2; } }

.scn-nine-worthies-plan {
  background: 
    linear-gradient(180deg, #f0d6a0 0%, #d6b87a 50%, #b89a5a 100%),
    radial-gradient(ellipse at 70% 30%, #fff3d6 0%, transparent 60%);
}
.scn-nine-worthies-plan .wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #d4a86c 0%, #b88a4e 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
}
.scn-nine-worthies-plan .board {
  position:absolute; bottom:30%; left:30%; right:30%; height:35%;
  background: linear-gradient(135deg, #a08050 0%, #7a5a3a 100%);
  border-radius: 8px;
  box-shadow: 0 6px 12px rgba(0,0,0,.3);
  animation: nwp-board 10s ease-in-out infinite alternate;
}
.scn-nine-worthies-plan .planner {
  position:absolute; bottom:25%; left:35%; width:6%; height:40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nwp-planner 8s ease-in-out infinite;
}
.scn-nine-worthies-plan .pointer {
  position:absolute; bottom:45%; left:48%; width:2%; height:10%;
  background: linear-gradient(180deg, #c8a86c 0%, #a0804e 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  animation: nwp-point 6s ease-in-out infinite alternate;
}
.scn-nine-worthies-plan .sun-mark {
  position:absolute; top:8%; left:70%; width:8%; height:8%;
  background: radial-gradient(circle, #f5d89c 0%, #e0b86a 50%, transparent 70%);
  box-shadow: 0 0 30px 10px rgba(240,200,100,.4);
  animation: nwp-sun 12s ease-in-out infinite alternate;
}
.scn-nine-worthies-plan .sketch-lines {
  position:absolute; bottom:25%; left:35%; right:35%; height:20%;
  background: linear-gradient(90deg, transparent 20%, #6a5a3a 20%, #6a5a3a 30%, transparent 30%, transparent 50%, #6a5a3a 50%, #6a5a3a 55%, transparent 55%);
  opacity:.3;
  animation: nwp-lines 14s ease-in-out infinite;
}
.scn-nine-worthies-plan .fold {
  position:absolute; bottom:30%; left:30%; right:30%; height:2%;
  background: linear-gradient(180deg, #5a4a2a, #3a2a1a);
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: nwp-fold 10s ease-in-out infinite alternate;
}
@keyframes nwp-board { 0% { transform: skewX(0deg); } 50% { transform: skewX(3deg); } 100% { transform: skewX(-3deg); } }
@keyframes nwp-planner { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-5px) rotate(1deg); } 100% { transform: translateX(0); } }
@keyframes nwp-point { 0% { transform: rotate(-20deg) scaleY(1); } 50% { transform: rotate(-10deg) scaleY(1.1); } 100% { transform: rotate(-15deg) scaleY(1); } }
@keyframes nwp-sun { 0% { transform: scale(.9); opacity:.6; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(.95); opacity:.75; } }
@keyframes nwp-lines { 0% { opacity:.2; } 50% { opacity:.5; } 100% { opacity:.25; } }
@keyframes nwp-fold { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }

.scn-biron-soliloquy-love {
  background: linear-gradient(180deg, #f9e4b5 0%, #d4a373 50%, #b88a5c 100%),
              radial-gradient(ellipse at 70% 40%, #f6d5a0 0%, transparent 60%);
}
.scn-biron-soliloquy-love .sun {
  position: absolute; top: 8%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffecb0 0%, #f5b56b 60%, transparent 80%);
  border-radius: 50%;
  animation: bsn-sun 12s ease-in-out infinite alternate;
}
.scn-biron-soliloquy-love .sunbeam {
  position: absolute; top: 20%; left: 65%; width: 120px; height: 200px;
  background: linear-gradient(180deg, rgba(255,235,180,0.3) 0%, transparent 80%);
  transform: rotate(15deg);
  animation: bsn-beam 8s ease-in-out infinite alternate;
}
.scn-biron-soliloquy-love .window {
  position: absolute; bottom: 30%; left: 60%; width: 100px; height: 140px;
  background: #c89b6b; border: 6px solid #7a5a3e; border-radius: 4px 4px 10px 10px;
  box-shadow: inset 0 0 20px rgba(255,215,140,0.4);
}
.scn-biron-soliloquy-love .figure {
  position: absolute; bottom: 18%; left: 30%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f140b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bsn-figure 4s ease-in-out infinite;
}
.scn-biron-soliloquy-love .book {
  position: absolute; bottom: 22%; left: 32%; width: 24px; height: 32px;
  background: #6b4a2e; border-radius: 2px 30% 10% 2px / 2px 30% 10% 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: bsn-book 6s ease-in-out infinite;
}
.scn-biron-soliloquy-love .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #b88a5c 0%, #8c6a44 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
@keyframes bsn-sun { 0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.85; } }
@keyframes bsn-beam { 0% { opacity: 0.2; transform: rotate(12deg) scaleY(1); } 50% { opacity: 0.5; transform: rotate(18deg) scaleY(1.05); } 100% { opacity: 0.3; transform: rotate(14deg) scaleY(0.95); } }
@keyframes bsn-figure { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(-1px) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bsn-book { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }

.scn-princess-hunting {
  background: linear-gradient(180deg, #91c7b1 0%, #d1e0d0 30%, #b3c9b0 60%, #a0b69e 100%),
              radial-gradient(ellipse at 50% 0%, #f9e4b5 0%, transparent 70%);
}
.scn-princess-hunting .sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #b9d7c7 0%, #e0eedd 100%); }
.scn-princess-hunting .hill-bg { position: absolute; bottom: 35%; left:-5%; right:-5%; height: 30%; background: linear-gradient(135deg, #7ea07d 0%, #5c7a5b 100%); border-radius: 50% 60% 0 0 / 100% 80% 0 0; animation: ph-hill 18s ease-in-out infinite alternate; }
.scn-princess-hunting .horse { position: absolute; bottom: 30%; left: 40%; width: 80px; height: 60px; background: linear-gradient(180deg, #6b4a2e 0%, #3f2b1a 100%); border-radius: 40% 60% 50% 50% / 60% 70% 40% 40%; transform-origin: center bottom; animation: ph-horse 2s ease-in-out infinite; }
.scn-princess-hunting .rider { position: absolute; bottom: 48%; left: 43%; width: 20px; height: 40px; background: linear-gradient(180deg, #1f140b 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ph-rider 2s ease-in-out infinite; }
.scn-princess-hunting .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #5c7a5b 0%, #3d553c 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-princess-hunting .sun { position: absolute; top: 5%; left: 60%; width: 70px; height: 70px; background: radial-gradient(circle, #f9e4b5 0%, #e8b86b 60%, transparent 80%); border-radius: 50%; animation: ph-sun 15s ease-in-out infinite alternate; }
.scn-princess-hunting .cloud { position: absolute; top: 12%; left: 15%; width: 100px; height: 25px; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); border-radius: 50%; filter: blur(6px); animation: ph-cloud 40s linear infinite; }
@keyframes ph-hill { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes ph-horse { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-3px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(1deg) translateY(-2px); } }
@keyframes ph-rider { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-2px); } 50% { transform: rotate(-2deg) translateY(0); } 75% { transform: rotate(2deg) translateY(-1px); } }
@keyframes ph-sun { 0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.85; } }
@keyframes ph-cloud { 0% { transform: translateX(-80px); } 100% { transform: translateX(120vw); } }

.scn-holofernes-nathaniel {
  background: linear-gradient(180deg, #aacf9e 0%, #c8ddb8 40%, #b1c6a3 80%, #8fa884 100%),
              radial-gradient(ellipse at 50% 0%, #f9e4b5 0%, transparent 70%);
}
.scn-holofernes-nathaniel .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #c4dbb5 0%, #dce8d2 100%); }
.scn-holofernes-nathaniel .tree { position: absolute; bottom: 22%; left: 60%; width: 50px; height: 120px; background: linear-gradient(180deg, #5c3a1e 0%, #2d1b0c 100%); border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%; }
.scn-holofernes-nathaniel .deer { position: absolute; bottom: 22%; left: 36%; width: 60px; height: 70px; background: linear-gradient(180deg, #7a5c3a 0%, #4a3220 100%); border-radius: 40% 60% 50% 50% / 60% 70% 40% 40%; transform-origin: center bottom; animation: hn-deer 5s ease-in-out infinite; }
.scn-holofernes-nathaniel .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #8fa884 0%, #6a7a5e 100%); border-radius: 10% 10% 0 0 / 5% 5% 0 0; }
.scn-holofernes-nathaniel .apple { position: absolute; bottom: 18%; left: 32%; width: 12px; height: 12px; background: radial-gradient(circle, #c8553d 0%, #a0461a 70%); border-radius: 50%; box-shadow: 0 0 6px rgba(200,85,61,0.5); animation: hn-apple 4s ease-in-out infinite; }
.scn-holofernes-nathaniel .sun { position: absolute; top: 5%; left: 55%; width: 65px; height: 65px; background: radial-gradient(circle, #f9e4b5 0%, #e8b86b 60%, transparent 80%); border-radius: 50%; animation: hn-sun 14s ease-in-out infinite alternate; }
.scn-holofernes-nathaniel .cloud { position: absolute; top: 10%; left: 70%; width: 80px; height: 20px; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%); border-radius: 50%; filter: blur(5px); animation: hn-cloud 45s linear infinite reverse; }
@keyframes hn-deer { 0%,100% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(2deg) translateY(-2px); } 60% { transform: rotate(-1deg) translateY(-1px); } }
@keyframes hn-apple { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(15deg); } }
@keyframes hn-sun { 0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.08); opacity: 1; } 100% { transform: scale(0.96); opacity: 0.85; } }
@keyframes hn-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

.scn-jaquenetta-costard-enter {
  background: linear-gradient(180deg, #d4e2c5 0%, #b8cdb0 50%, #9db89a 100%),
              radial-gradient(ellipse at 50% 0%, #fcefcd 0%, transparent 70%);
}
.scn-jaquenetta-costard-enter .sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #e0edda 0%, #c4dbc2 100%); }
.scn-jaquenetta-costard-enter .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #9db89a 0%, #7a9677 100%); border-radius: 15% 15% 0 0 / 8% 8% 0 0; }
.scn-jaquenetta-costard-enter .figure-left { position: absolute; bottom: 25%; left: 30%; width: 30px; height: 90px; background: linear-gradient(180deg, #2d1b0c 0%, #140b06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: jc-left 4s ease-in-out infinite; }
.scn-jaquenetta-costard-enter .figure-right { position: absolute; bottom: 25%; right: 30%; width: 30px; height: 90px; background: linear-gradient(180deg, #3c2814 0%, #1a0f07 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: jc-right 4.2s ease-in-out infinite; }
.scn-jaquenetta-costard-enter .sun { position: absolute; top: 6%; left: 50%; width: 60px; height: 60px; background: radial-gradient(circle, #fcefcd 0%, #e8c98a 60%, transparent 80%); border-radius: 50%; animation: jc-sun 16s ease-in-out infinite alternate; }
.scn-jaquenetta-costard-enter .path { position: absolute; bottom: 28%; left: 20%; right: 20%; height: 6%; background: linear-gradient(180deg, #b3a78a 0%, #8c7f64 100%); border-radius: 10% 10% 50% 50% / 50% 50% 100% 100%; transform: rotate(0.5deg); animation: jc-path 10s ease-in-out infinite alternate; }
@keyframes jc-left { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes jc-right { 0%,100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-2deg); } }
@keyframes jc-sun { 0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.06); opacity: 1; } 100% { transform: scale(0.94); opacity: 0.8; } }
@keyframes jc-path { 0% { transform: rotate(0.3deg) scaleX(1); } 50% { transform: rotate(0.8deg) scaleX(1.02); } 100% { transform: rotate(0.5deg) scaleX(0.98); } }

.scn-princess-arrival {
  background: linear-gradient(180deg, #fddda0 0%, #f8c878 20%, #b8d4f0 60%, #88b8d8 100%),
              radial-gradient(ellipse at 60% 20%, #ffe080 0%, transparent 70%);
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.scn-princess-arrival .sky-pa {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, transparent 60%, #f5d490 100%);
  animation: pa-sky 14s ease-in-out infinite alternate;
}
.scn-princess-arrival .sun-pa {
  position: absolute;
  top: 12%;
  left: 60%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #ffe060 0%, #ffcc40 40%, #ffaa20 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ffcc40, 0 0 120px 40px rgba(255,204,64,0.3);
  animation: pa-sun 8s ease-in-out infinite alternate;
}
.scn-princess-arrival .horizon-pa {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #7a9a6a 0%, #4a6a3a 100%);
  border-radius: 60% 40% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: pa-hills 20s ease-in-out infinite alternate;
}
.scn-princess-arrival .castle-pa {
  position: absolute;
  bottom: 30%;
  left: 20%;
  right: 20%;
  height: 40%;
  background: linear-gradient(180deg, #d4a080 0%, #b08060 40%, #806050 100%);
  clip-path: polygon(0% 100%, 8% 50%, 12% 30%, 18% 30%, 22% 50%, 28% 30%, 32% 30%, 36% 50%, 42% 30%, 48% 30%, 52% 50%, 58% 30%, 62% 30%, 66% 50%, 72% 30%, 78% 30%, 82% 50%, 88% 30%, 92% 30%, 100% 50%, 100% 100%);
  box-shadow: 0 -10px 20px rgba(0,0,0,0.3);
  animation: pa-castle 6s ease-in-out infinite;
}
.scn-princess-arrival .figure-pa {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 24px;
  height: 48px;
  background: linear-gradient(180deg, #704a3a 0%, #403030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa-figure 6s ease-in-out infinite;
}
.scn-princess-arrival .banner-pa {
  position: absolute;
  bottom: 38%;
  left: 54%;
  width: 12px;
  height: 20px;
  background: #b87878;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 80%, 0 100%);
  animation: pa-banner 3s ease-in-out infinite;
}
.scn-princess-arrival .cloud-pa {
  position: absolute;
  top: 18%;
  right: 10%;
  width: 80px;
  height: 24px;
  background: linear-gradient(180deg, rgba(255,255,240,0.6) 0%, rgba(255,255,240,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: pa-cloud 40s linear infinite;
}
@keyframes pa-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes pa-sun { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(10px) scale(1.05); } 100% { transform: translateX(-5px) scale(0.95); } }
@keyframes pa-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes pa-castle { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes pa-figure { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(6px) rotate(-2deg); } 50% { transform: translateX(12px) rotate(0deg); } 75% { transform: translateX(18px) rotate(2deg); } }
@keyframes pa-banner { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } }
@keyframes pa-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

.scn-navarre-refuses-entry {
  background: linear-gradient(180deg, #c0d8e8 0%, #a0b8d0 40%, #80a0b8 100%),
              radial-gradient(ellipse at 50% 0%, #d0e0f0 0%, transparent 60%);
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.scn-navarre-refuses-entry .wall-nre {
  position: absolute;
  bottom: 0;
  left: 10%;
  right: 10%;
  height: 70%;
  background: linear-gradient(180deg, #b09880 0%, #8a7a6a 40%, #6a5a4a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: nre-wall 10s ease-in-out infinite alternate;
}
.scn-navarre-refuses-entry .gate-nre {
  position: absolute;
  bottom: 0;
  left: 40%;
  width: 20%;
  height: 65%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: 0 0 20px 5px rgba(0,0,0,0.4);
  animation: nre-gate 8s ease-in-out infinite;
}
.scn-navarre-refuses-entry .guard-left-nre {
  position: absolute;
  bottom: 10%;
  left: 20%;
  width: 20px;
  height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nre-guard 5s ease-in-out infinite;
}
.scn-navarre-refuses-entry .guard-right-nre {
  position: absolute;
  bottom: 10%;
  right: 20%;
  width: 20px;
  height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nre-guard 5s ease-in-out infinite reverse;
}
.scn-navarre-refuses-entry .flag-nre {
  position: absolute;
  top: 10%;
  left: 42%;
  width: 16%;
  height: 30px;
  background: #5e1a1d;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 80%, 0 100%);
  animation: nre-flag 4s ease-in-out infinite;
}
.scn-navarre-refuses-entry .shadow-nre {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 15%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,0.3));
  animation: nre-shadow 12s ease-in-out infinite alternate;
}
@keyframes nre-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes nre-gate { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes nre-guard { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-1deg); } 50% { transform: translateX(4px) rotate(0deg); } 75% { transform: translateX(2px) rotate(1deg); } }
@keyframes nre-flag { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(8deg); } }
@keyframes nre-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

.scn-aquitaine-negotiation {
  background: linear-gradient(180deg, #e8d8c0 0%, #d0c0a0 30%, #b8a888 60%, #a09070 100%),
              radial-gradient(ellipse at 50% 30%, #f0e0c8 0%, transparent 70%);
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.scn-aquitaine-negotiation .floor-an {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #908060 0%, #706050 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: an-floor 15s ease-in-out infinite alternate;
}
.scn-aquitaine-negotiation .table-an {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 40%;
  height: 10%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: an-table 6s ease-in-out infinite;
}
.scn-aquitaine-negotiation .figure-left-an {
  position: absolute;
  bottom: 30%;
  left: 20%;
  width: 28px;
  height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: an-figure-left 7s ease-in-out infinite;
}
.scn-aquitaine-negotiation .figure-right-an {
  position: absolute;
  bottom: 30%;
  right: 20%;
  width: 28px;
  height: 60px;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: an-figure-right 7s ease-in-out infinite reverse;
}
.scn-aquitaine-negotiation .scrolls-an {
  position: absolute;
  bottom: 24%;
  left: 45%;
  width: 10%;
  height: 8%;
  background: #c8b090;
  border-radius: 20% 20% 20% 20% / 30% 30% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: an-scrolls 4s ease-in-out infinite;
}
.scn-aquitaine-negotiation .canopy-an {
  position: absolute;
  top: 5%;
  left: 15%;
  right: 15%;
  height: 25%;
  background: linear-gradient(180deg, #d0b0a0 0%, #b09080 100%);
  clip-path: polygon(0% 100%, 10% 0%, 90% 0%, 100% 100%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
  animation: an-canopy 10s ease-in-out infinite alternate;
}
@keyframes an-floor { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes an-table { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes an-figure-left { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-2deg); } 50% { transform: translateX(4px) rotate(0deg); } 75% { transform: translateX(2px) rotate(2deg); } }
@keyframes an-figure-right { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(2deg); } 50% { transform: translateX(-4px) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes an-scrolls { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(3deg) scale(1.02); } }
@keyframes an-canopy { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }

.scn-boyet-observes-love {
  background: linear-gradient(180deg, #d0e8c0 0%, #b8d8a8 30%, #a0c8a0 60%, #88b888 100%),
              radial-gradient(ellipse at 70% 20%, #e0f0d0 0%, transparent 70%);
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.scn-boyet-observes-love .sky-bol {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c0d8b0 0%, #a0c0a0 100%);
  animation: bol-sky 12s ease-in-out infinite alternate;
}
.scn-boyet-observes-love .tree-bol {
  position: absolute;
  bottom: 10%;
  left: 30%;
  width: 25%;
  height: 60%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  clip-path: polygon(50% 0%, 100% 30%, 85% 60%, 60% 100%, 40% 100%, 15% 60%, 0% 30%);
  animation: bol-tree 9s ease-in-out infinite;
}
.scn-boyet-observes-love .leaves-bol {
  position: absolute;
  bottom: 30%;
  left: 20%;
  right: 20%;
  height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #5a8a4a 0%, #3a6a2a 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: bol-leaves 6s ease-in-out infinite alternate;
}
.scn-boyet-observes-love .column-bol {
  position: absolute;
  bottom: 0;
  left: 10%;
  width: 8%;
  height: 80%;
  background: linear-gradient(180deg, #b09880 0%, #8a7a6a 40%, #6a5a4a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 4px 0 10px rgba(0,0,0,0.2);
  animation: bol-column 8s ease-in-out infinite alternate;
}
.scn-boyet-observes-love .figure-bol {
  position: absolute;
  bottom: 5%;
  left: 12%;
  width: 22px;
  height: 45px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bol-figure 5s ease-in-out infinite;
}
.scn-boyet-observes-love .sunbeam-bol {
  position: absolute;
  top: 10%;
  left: 45%;
  width: 30%;
  height: 50%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: bol-sunbeam 10s ease-in-out infinite alternate;
}
@keyframes bol-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes bol-tree { 0%, 100% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } }
@keyframes bol-leaves { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes bol-column { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(0.99); } }
@keyframes bol-figure { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-3deg); } 50% { transform: translateX(4px) rotate(0deg); } 75% { transform: translateX(2px) rotate(3deg); } }
@keyframes bol-sunbeam { 0% { opacity: 0.3; transform: translateX(0); } 50% { opacity: 0.6; transform: translateX(10px); } 100% { opacity: 0.4; transform: translateX(-5px); } }

/* private-chats – overhead table with dice and sweets */
.scn-private-chats {
  background: linear-gradient(135deg, #f5e6c8 0%, #d9c4a0 50%, #c2a87a 100%), radial-gradient(circle at 70% 30%, #fff2d6 0%, transparent 60%);
}
.scn-private-chats .table {
  position: absolute; inset: 10% 10% 10% 10%; 
  background: linear-gradient(180deg, #e3cca4 0%, #ba9f78 100%);
  border-radius: 12px; box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: pc-table 1.5s ease-in-out infinite alternate;
}
.scn-private-chats .dice {
  position: absolute; width: 28px; height: 28px; 
  background: linear-gradient(135deg, #fcf6ec 0%, #e8dcc4 100%);
  border-radius: 6px; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-private-chats .dice-1 { top: 30%; left: 35%; animation: pc-dice1 3s ease-in-out infinite; }
.scn-private-chats .dice-2 { top: 40%; left: 55%; animation: pc-dice2 2.5s ease-in-out infinite reverse; }
.scn-private-chats .sweet {
  position: absolute; width: 18px; height: 18px; border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-private-chats .sweet-honey { top: 20%; left: 50%; background: radial-gradient(circle at 30% 30%, #f9d07a, #c8913e); animation: pc-honey 4s ease-in-out infinite; }
.scn-private-chats .sweet-milk { top: 50%; left: 20%; background: radial-gradient(circle at 30% 30%, #fef8e0, #d4c9a0); animation: pc-milk 3.5s ease-in-out infinite 0.5s; }
.scn-private-chats .sweet-sugar { top: 60%; left: 70%; background: radial-gradient(circle at 30% 30%, #fcf8f0, #cfc8b8); animation: pc-sugar 4s ease-in-out infinite 1s; }
.scn-private-chats .cup {
  position: absolute; bottom: 15%; left: 40%; width: 30px; height: 36px;
  background: linear-gradient(180deg, #efe2c8 0%, #b8a488 100%);
  border-radius: 4px 4px 10px 10px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: pc-cup 3s ease-in-out infinite alternate;
}
@keyframes pc-table { 0% { transform: scale(1); } 50% { transform: scale(0.98); } 100% { transform: scale(1.01); } }
@keyframes pc-dice1 { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(4px,-6px) rotate(180deg); } 100% { transform: translate(-2px,2px) rotate(360deg); } }
@keyframes pc-dice2 { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(-5px,3px) rotate(-120deg); } 100% { transform: translate(3px,-4px) rotate(-270deg); } }
@keyframes pc-honey { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.1) translateY(-4px); } 100% { transform: scale(1) translateY(0); } }
@keyframes pc-milk { 0% { transform: scale(1); } 50% { transform: scale(0.9) translateY(3px); } 100% { transform: scale(1); } }
@keyframes pc-sugar { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(15deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pc-cup { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg) translateX(1px); } 100% { transform: rotate(-1deg); } }

/* muscovites-leave – snowy horizon with three departing figures */
.scn-muscovites-leave {
  background: linear-gradient(180deg, #b8d4e8 0%, #8bb3cc 40%, #5a7a90 100%), radial-gradient(ellipse at 80% 20%, #e3f2ff 0%, transparent 60%);
}
.scn-muscovites-leave .sky {
  position: absolute; inset: 0 0 50% 0; 
  background: linear-gradient(180deg, #d4e8f0 0%, #8bb3cc 100%);
  animation: ml-sky 20s ease-in-out infinite alternate;
}
.scn-muscovites-leave .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #e8eef0 0%, #c0d0d8 100%);
  border-radius: 60% 40% 0 0 / 40% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: ml-ground 15s ease-in-out infinite;
}
.scn-muscovites-leave .figure {
  position: absolute; bottom: 25%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2c3e4a 0%, #1a2a33 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-muscovites-leave .fig-1 { left: 20%; animation: ml-figure1 6s ease-in-out infinite; }
.scn-muscovites-leave .fig-2 { left: 40%; animation: ml-figure2 5.5s ease-in-out infinite 0.8s; }
.scn-muscovites-leave .fig-3 { left: 60%; animation: ml-figure3 5s ease-in-out infinite 1.6s; }
.scn-muscovites-leave .cloud {
  position: absolute; height: 14px; border-radius: 50%;
  background: linear-gradient(180deg, rgba(255,255,255,0.6), rgba(255,255,255,0.1));
  filter: blur(4px);
}
.scn-muscovites-leave .cloud-a { top: 15%; left: 10%; width: 60px; animation: ml-drift-a 40s linear infinite; }
.scn-muscovites-leave .cloud-b { top: 25%; right: 5%; width: 45px; animation: ml-drift-b 50s linear infinite reverse; }
@keyframes ml-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ml-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ml-figure1 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(3deg); } 50% { transform: translateX(20px) rotate(0deg); } 75% { transform: translateX(30px) rotate(-3deg); } 100% { transform: translateX(40px) rotate(0deg); } }
@keyframes ml-figure2 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(-2deg); } 50% { transform: translateX(16px) rotate(0deg); } 75% { transform: translateX(24px) rotate(2deg); } 100% { transform: translateX(32px) rotate(0deg); } }
@keyframes ml-figure3 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(12px) rotate(2deg); } 50% { transform: translateX(24px) rotate(0deg); } 75% { transform: translateX(36px) rotate(-2deg); } 100% { transform: translateX(48px) rotate(0deg); } }
@keyframes ml-drift-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes ml-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* return-expected – close-up of a rose bud opening with a mask */
.scn-return-expected {
  background: linear-gradient(135deg, #f5e6d0 0%, #dbc3a5 50%, #c2a384 100%), radial-gradient(circle at 30% 40%, #fff5e0 0%, transparent 50%);
}
.scn-return-expected .bg-glow {
  position: absolute; inset: 0; 
  background: radial-gradient(ellipse at 50% 30%, rgba(255,220,150,0.4) 0%, transparent 70%);
  animation: re-glow 6s ease-in-out infinite alternate;
}
.scn-return-expected .rose-bud {
  position: absolute; bottom: 10%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 30% 20%, #d96a4e 0%, #b0432c 60%, #7a2a1a 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: re-bud 8s ease-in-out infinite;
}
.scn-return-expected .petal {
  position: absolute; bottom: 15%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #e8846a 0%, #c65a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
}
.scn-return-expected .petal-1 { left: 35%; animation: re-petal1 6s ease-in-out infinite; }
.scn-return-expected .petal-2 { left: 45%; animation: re-petal2 5s ease-in-out infinite 0.3s; }
.scn-return-expected .petal-3 { left: 55%; animation: re-petal3 4s ease-in-out infinite 0.6s; }
.scn-return-expected .mask {
  position: absolute; top: 20%; left: 50%; width: 40px; height: 24px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8b6f5e 0%, #5c4538 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: re-mask 10s ease-in-out infinite alternate;
}
.scn-return-expected .stem {
  position: absolute; bottom: 0; left: 50%; width: 6px; height: 20%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3d6b3d 0%, #1a3d1a 100%);
  border-radius: 2px;
  animation: re-stem 12s ease-in-out infinite;
}
@keyframes re-glow { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes re-bud { 0% { transform: translateX(-50%) scale(1) rotate(0deg); } 50% { transform: translateX(-50%) scale(1.05) rotate(3deg); } 100% { transform: translateX(-50%) scale(1) rotate(0deg); } }
@keyframes re-petal1 { 0% { transform: rotate(-20deg) scale(1); } 50% { transform: rotate(-10deg) scale(1.1); } 100% { transform: rotate(-20deg) scale(1); } }
@keyframes re-petal2 { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(5deg) scale(0.95); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes re-petal3 { 0% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(20deg) scale(1.05); } 100% { transform: rotate(10deg) scale(1); } }
@keyframes re-mask { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-8px) rotate(5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes re-stem { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.97); } 100% { transform: translateX(-50%) scaleY(1); } }

/* king-returns – throne room interior with seated king, window, sun rays */
.scn-king-returns {
  background: linear-gradient(180deg, #c4b29a 0%, #a48d6f 30%, #7a664a 100%), radial-gradient(ellipse at 80% 10%, #f2e4c0 0%, transparent 60%);
}
.scn-king-returns .wall-back {
  position: absolute; inset: 0 0 30% 0; 
  background: linear-gradient(180deg, #b39b7a 0%, #8a7252 100%);
  animation: kr-wall 20s ease-in-out infinite alternate;
}
.scn-king-returns .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a5a44 0%, #4a3a2a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
  animation: kr-floor 15s ease-in-out infinite;
}
.scn-king-returns .throne {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #8c6e4e 0%, #5c432a 100%);
  border-radius: 8px 8px 20px 20px; box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: kr-throne 6s ease-in-out infinite alternate;
}
.scn-king-returns .king {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2f20 0%, #1f1810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: kr-king 8s ease-in-out infinite alternate;
}
.scn-king-returns .window {
  position: absolute; top: 10%; right: 15%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at center, #f0d8a0 0%, #c8b080 70%);
  border-radius: 4px; box-shadow: 0 0 20px 8px rgba(200,176,128,0.5);
  animation: kr-window 5s ease-in-out infinite alternate;
}
.scn-king-returns .ray {
  position: absolute; top: 10%; width: 12px; height: 60%;
  background: linear-gradient(180deg, rgba(240,220,160,0.3) 0%, transparent 80%);
  transform-origin: top center;
  opacity: 0.5;
}
.scn-king-returns .ray-1 { left: 20%; transform: rotate(8deg); animation: kr-ray1 12s ease-in-out infinite; }
.scn-king-returns .ray-2 { left: 30%; transform: rotate(-5deg); animation: kr-ray2 14s ease-in-out infinite 1s; }
@keyframes kr-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.92; } }
@keyframes kr-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes kr-throne { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg) scale(1.01); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes kr-king { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-1px); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes kr-window { 0% { box-shadow: 0 0 15px 4px rgba(200,176,128,0.4); } 50% { box-shadow: 0 0 30px 12px rgba(200,176,128,0.7); } 100% { box-shadow: 0 0 15px 4px rgba(200,176,128,0.4); } }
@keyframes kr-ray1 { 0% { opacity: 0.3; transform: rotate(8deg) scaleY(0.9); } 50% { opacity: 0.6; transform: rotate(6deg) scaleY(1); } 100% { opacity: 0.4; transform: rotate(8deg) scaleY(0.9); } }
@keyframes kr-ray2 { 0% { opacity: 0.4; transform: rotate(-5deg) scaleY(1); } 50% { opacity: 0.7; transform: rotate(-7deg) scaleY(0.95); } 100% { opacity: 0.4; transform: rotate(-5deg) scaleY(1); } }

.scn-reading-decree { background: linear-gradient(180deg, #8fc4e0 0%, #f7eac6 70%), radial-gradient(ellipse at 70% 30%, #f7eac6 0%, transparent 50%); }
.scn-reading-decree .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0d8f0 0%, #f7eac6 100%); animation: rd-sky 12s ease-in-out infinite alternate; }
.scn-reading-decree .sun { position:absolute; top:8%; right:20%; width:60px; height:60px; background: radial-gradient(circle, #fff3b0 0%, #ffd060 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,208,96,.4); animation: rd-sun 6s ease-in-out infinite alternate; }
.scn-reading-decree .balcony { position:absolute; bottom:30%; left:5%; right:5%; height:20%; background: linear-gradient(180deg, #b8865e 0%, #8a5a3a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.3); }
.scn-reading-decree .herald { position:absolute; bottom:32%; left:50%; width:40px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #c08050 0%, #8a5a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: rd-herald 4s ease-in-out infinite; }
.scn-reading-decree .scroll { position:absolute; bottom:58%; left:50%; width:30px; height:18px; transform:translateX(-50%) rotate(-5deg); background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: rd-scroll 3s ease-in-out infinite alternate; }
.scn-reading-decree .crowd1 { position:absolute; bottom:20%; left:10%; width:100px; height:50px; background: radial-gradient(ellipse 60% 100% at 50% 100%, #3a2a1a 0%, transparent 80%); border-radius: 50%; animation: rd-crowd 8s ease-in-out infinite; }
.scn-reading-decree .crowd2 { position:absolute; bottom:22%; right:15%; width:80px; height:40px; background: radial-gradient(ellipse 50% 100% at 50% 100%, #5a3a2a 0%, transparent 70%); border-radius: 50%; animation: rd-crowd2 10s ease-in-out infinite; }
@keyframes rd-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rd-sun { 0% { transform: scale(.95); box-shadow: 0 0 60px 20px rgba(255,208,96,.3) } 50% { transform: scale(1.05); box-shadow: 0 0 100px 40px rgba(255,208,96,.5) } 100% { transform: scale(.98); box-shadow: 0 0 70px 25px rgba(255,208,96,.35) } }
@keyframes rd-herald { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 30% { transform: translateX(-50%) translateY(-2px) rotate(2deg) } 60% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 100% { transform: translateX(-50%) translateY(-1px) rotate(0) } }
@keyframes rd-scroll { 0% { transform: translateX(-50%) rotate(-8deg) scaleY(1) } 50% { transform: translateX(-50%) rotate(2deg) scaleY(1.1) } 100% { transform: translateX(-50%) rotate(-5deg) scaleY(1) } }
@keyframes rd-crowd { 0% { transform: translateX(0) } 50% { transform: translateX(8px) } 100% { transform: translateX(0) } }
@keyframes rd-crowd2 { 0% { transform: scale(.95) } 50% { transform: scale(1.05) } 100% { transform: scale(.95) } }

.scn-article-issue { background: linear-gradient(180deg, #4a6a8a 0%, #7a9aba 60%), radial-gradient(ellipse at 50% 20%, #7a9aba 0%, transparent 70%); }
.scn-article-issue .bg-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #3a4a5a 0%, #5a6a7a 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.3); }
.scn-article-issue .window { position:absolute; top:10%; left:50%; width:120px; height:160px; transform:translateX(-50%); background: linear-gradient(180deg, #b0d0e0 0%, #8090a0 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 30px rgba(255,255,200,.4); animation: ai-window 8s ease-in-out infinite alternate; }
.scn-article-issue .table { position:absolute; bottom:20%; left:10%; right:10%; height:30px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 5px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-article-issue .lord-left { position:absolute; bottom:20%; left:15%; width:50px; height:70px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ai-lord-left 7s ease-in-out infinite; }
.scn-article-issue .lord-right { position:absolute; bottom:20%; right:15%; width:50px; height:70px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ai-lord-right 9s ease-in-out infinite; }
.scn-article-issue .standing-lord { position:absolute; bottom:20%; left:50%; width:45px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; animation: ai-standing 5s ease-in-out infinite; }
.scn-article-issue .document { position:absolute; bottom:38%; left:48%; width:40px; height:30px; background: linear-gradient(135deg, #d0c0a0 0%, #b0a080 100%); border-radius: 5%; transform: rotate(-10deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: ai-doc 3s ease-in-out infinite alternate; }
@keyframes ai-window { 0% { opacity:.75; box-shadow: inset 0 0 20px rgba(255,255,200,.3) } 50% { opacity:1; box-shadow: inset 0 0 40px rgba(255,255,200,.6) } 100% { opacity:.8; box-shadow: inset 0 0 25px rgba(255,255,200,.4) } }
@keyframes ai-lord-left { 0% { transform: rotate(0) } 30% { transform: rotate(-5deg) } 60% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes ai-lord-right { 0% { transform: rotate(0) } 40% { transform: rotate(6deg) } 70% { transform: rotate(-3deg) } 100% { transform: rotate(0) } }
@keyframes ai-standing { 0%,100% { transform: translateX(-50%) translateY(0) } 25% { transform: translateX(-50%) translateY(-3px) rotate(-2deg) } 50% { transform: translateX(-50%) translateY(0) rotate(1deg) } 75% { transform: translateX(-50%) translateY(-2px) rotate(0) } }
@keyframes ai-doc { 0% { transform: rotate(-12deg) scaleX(1) } 50% { transform: rotate(-8deg) scaleX(1.05) } 100% { transform: rotate(-10deg) scaleX(1) } }

.scn-recreation-proposal { background: linear-gradient(180deg, #e0c8a0 0%, #f0d8b0 70%), radial-gradient(ellipse at 60% 20%, #f0d8b0 0%, transparent 60%); }
.scn-recreation-proposal .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c0d8f0 0%, #f0e8d0 100%); animation: rp-sky 15s ease-in-out infinite alternate; }
.scn-recreation-proposal .sun { position:absolute; top:5%; left:30%; width:50px; height:50px; background: radial-gradient(circle, #ffe080 0%, #ffd060 40%, transparent 80%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,208,96,.4); animation: rp-sun 8s ease-in-out infinite alternate; }
.scn-recreation-proposal .garden-wall { position:absolute; bottom:25%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #a07a5a 0%, #705a3a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.2); }
.scn-recreation-proposal .traveller { position:absolute; bottom:28%; left:30%; width:45px; height:100px; background: linear-gradient(180deg, #d0a060 0%, #a07040 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom; animation: rp-traveller 6s ease-in-out infinite; }
.scn-recreation-proposal .listener { position:absolute; bottom:30%; right:25%; width:40px; height:80px; background: linear-gradient(180deg, #705a3a 0%, #504a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: rp-listener 8s ease-in-out infinite; }
.scn-recreation-proposal .fountain { position:absolute; bottom:32%; left:50%; width:30px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #b0a090 0%, #807060 100%); border-radius: 50% 50% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.2); animation: rp-fountain 4s ease-in-out infinite alternate; }
.scn-recreation-proposal .flower { position:absolute; bottom:35%; left:20%; width:15px; height:15px; background: radial-gradient(circle, #f0a0b0 0%, #d08090 100%); border-radius: 50%; box-shadow: 0 0 6px rgba(208,128,144,.5); animation: rp-flower 5s ease-in-out infinite alternate; }
@keyframes rp-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes rp-sun { 0% { transform: scale(.95); box-shadow: 0 0 50px 15px rgba(255,208,96,.3) } 50% { transform: scale(1.08); box-shadow: 0 0 80px 30px rgba(255,208,96,.5) } 100% { transform: scale(1); box-shadow: 0 0 60px 20px rgba(255,208,96,.4) } }
@keyframes rp-traveller { 0% { transform: translateX(0) rotate(-3deg) } 30% { transform: translateX(8px) rotate(2deg) } 60% { transform: translateX(-4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes rp-listener { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes rp-fountain { 0% { transform: translateX(-50%) scaleY(.95) } 50% { transform: translateX(-50%) scaleY(1.05) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes rp-flower { 0% { transform: scale(.9) rotate(-10deg) } 50% { transform: scale(1.1) rotate(5deg) } 100% { transform: scale(1) rotate(0) } }

.scn-dull-and-costard { background: linear-gradient(180deg, #c0e0f0 0%, #e8f0e0 70%), radial-gradient(ellipse at 50% 80%, #e8f0e0 0%, transparent 50%); }
.scn-dull-and-costard .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #a0d0e0 0%, #d0e8f0 100%); animation: dc-sky 10s ease-in-out infinite alternate; }
.scn-dull-and-costard .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #8aa05a 0%, #607030 100%); border-radius: 40% 0 0 0 / 20% 0 0 0; }
.scn-dull-and-costard .dull { position:absolute; bottom:20%; left:20%; width:55px; height:90px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom; animation: dc-dull 5s ease-in-out infinite; }
.scn-dull-and-costard .costard { position:absolute; bottom:18%; right:25%; width:50px; height:85px; background: linear-gradient(180deg, #7a5040 0%, #5a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: dc-costard 6s ease-in-out infinite; }
.scn-dull-and-costard .letter { position:absolute; bottom:45%; left:38%; width:35px; height:25px; background: linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%); border-radius: 5%; transform: rotate(15deg); box-shadow: 0 3px 6px rgba(0,0,0,.2); animation: dc-letter 3s ease-in-out infinite alternate; }
.scn-dull-and-costard .hat { position:absolute; bottom:55%; left:18%; width:40px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%; transform: rotate(-8deg); animation: dc-hat 4s ease-in-out infinite alternate; }
@keyframes dc-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes dc-dull { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(-3deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes dc-costard { 0% { transform: translateY(0) rotate(0) } 40% { transform: translateY(-3px) rotate(4deg) } 70% { transform: translateY(0) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes dc-letter { 0% { transform: rotate(10deg) scaleY(1) } 50% { transform: rotate(20deg) scaleY(1.1) } 100% { transform: rotate(12deg) scaleY(1) } }
@keyframes dc-hat { 0% { transform: rotate(-12deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-3px) } 100% { transform: rotate(-8deg) translateY(0) } }

/* biron-sonnet-read */
.scn-biron-sonnet-read {
  background: 
    linear-gradient(180deg, #f7e7c8 0%, #e6d0a0 30%, #c9a86a 60%, #a67c4e 100%),
    radial-gradient(ellipse at 70% 20%, #fff5d6 0%, transparent 60%);
}
.scn-biron-sonnet-read .window-frame {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, #d4b888 0%, #b8955a 40%, #a07a44 100%);
  border-radius: 12px; box-shadow: inset 0 0 0 6px #8a6633;
  width: 70%; height: 80%; left: 15%; top: 10%;
}
.scn-biron-sonnet-read .sunbeam {
  position: absolute; top: 8%; left: 20%; width: 60%; height: 80%;
  background: linear-gradient(135deg, rgba(255,240,200,0.6) 0%, transparent 80%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  animation: bsr-beam 8s ease-in-out infinite alternate;
}
.scn-biron-sonnet-read .desk {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 25%;
  background: linear-gradient(180deg, #b88a5a 0%, #8a6633 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-biron-sonnet-read .book {
  position: absolute; bottom: 28%; 
}
.scn-biron-sonnet-read .book.closed {
  left: 20%; width: 18%; height: 22%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-biron-sonnet-read .book.open {
  left: 40%; width: 30%; height: 18%; 
  background: linear-gradient(180deg, #f0e0c0 0%, #d4b888 100%);
  border-radius: 2px; transform: perspective(400px) rotateX(10deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: bsr-book 6s ease-in-out infinite;
}
.scn-biron-sonnet-read .reader {
  position: absolute; bottom: 18%; left: 35%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center;
  animation: bsr-reader 4s ease-in-out infinite alternate;
}
.scn-biron-sonnet-read .vase {
  position: absolute; bottom: 25%; right: 18%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-biron-sonnet-read .flower {
  position: absolute; bottom: 38%; right: 16%; width: 10px; height: 30px;
  border-radius: 50%; background: radial-gradient(circle, #ffcc88 0%, #ffaa55 100%);
}
.scn-biron-sonnet-read .flower-a { right: 15%; animation: bsr-flower 3s ease-in-out infinite; }
.scn-biron-sonnet-read .flower-b { right: 21%; animation: bsr-flower 3.5s ease-in-out infinite reverse; }
@keyframes bsr-beam { 0% { opacity:0.5; transform:scaleX(0.9); } 50% { opacity:0.8; transform:scaleX(1.1); } 100% { opacity:0.6; transform:scaleX(1); } }
@keyframes bsr-book { 0% { transform:perspective(400px) rotateX(10deg) translateY(0); } 50% { transform:perspective(400px) rotateX(5deg) translateY(-2px); } 100% { transform:perspective(400px) rotateX(12deg) translateY(0); } }
@keyframes bsr-reader { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-3px) rotate(2deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes bsr-flower { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-5px) rotate(10deg); } 100% { transform:translateY(0) rotate(-5deg); } }

/* biron-soliloquy */
.scn-biron-soliloquy {
  background: 
    linear-gradient(180deg, #e7d6b8 0%, #c8a86a 40%, #9a7a4a 70%, #6a4a2a 100%),
    radial-gradient(ellipse at 30% 70%, #f7e7c8 0%, transparent 60%);
}
.scn-biron-soliloquy .glade-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b8d8a0 0%, #8ab870 40%, #5a9a40 100%);
  border-radius: 0 0 50% 50% / 20% 20% 0 0;
  animation: bso-glade 12s ease-in-out infinite alternate;
}
.scn-biron-soliloquy .tree-trunk {
  position: absolute; bottom: 20%; left: 15%; width: 8%; height: 60%;
  background: linear-gradient(90deg, #5a3a1a 0%, #7a5a3a 30%, #5a3a1a 60%, #4a2a0a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-biron-soliloquy .foliage {
  position: absolute; top: 8%; left: 10%; width: 20%; height: 25%;
  background: radial-gradient(circle, #6aaa4a 0%, #4a8a2a 60%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: bso-foliage 20s ease-in-out infinite;
}
.scn-biron-soliloquy .figure {
  position: absolute; bottom: 22%; left: 40%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center;
  animation: bso-figure 5s ease-in-out infinite alternate;
}
.scn-biron-soliloquy .paper {
  position: absolute; bottom: 28%; left: 45%; width: 12%; height: 16%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d4b888 100%);
  border-radius: 2px; transform: rotate(15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: bso-paper 4s ease-in-out infinite;
}
.scn-biron-soliloquy .quill {
  position: absolute; bottom: 40%; left: 55%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #e0c090 0%, #c0a070 100%);
  border-radius: 40% 40% 10% 10%; transform: rotate(-20deg);
  animation: bso-quill 3s ease-in-out infinite alternate;
}
.scn-biron-soliloquy .inkpot {
  position: absolute; bottom: 26%; left: 52%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-biron-soliloquy .beam {
  position: absolute; top: 10%; left: 40%; width: 30%; height: 20%;
  background: linear-gradient(135deg, rgba(255,240,200,0.5) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: bso-beam 10s ease-in-out infinite alternate;
}
@keyframes bso-glade { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes bso-foliage { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(-5px) scale(1.05); } 100% { transform:translateY(0) scale(1); } }
@keyframes bso-figure { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-4px) rotate(3deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes bso-paper { 0% { transform:rotate(15deg) translateY(0); } 50% { transform:rotate(10deg) translateY(-3px); } 100% { transform:rotate(18deg) translateY(0); } }
@keyframes bso-quill { 0% { transform:rotate(-20deg) translateX(0); } 50% { transform:rotate(-15deg) translateX(4px); } 100% { transform:rotate(-22deg) translateX(0); } }
@keyframes bso-beam { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

/* king-sonnet */
.scn-king-sonnet {
  background: 
    linear-gradient(180deg, #f0e8c0 0%, #e0d0a0 30%, #b8a070 60%, #8a6a3a 100%),
    radial-gradient(ellipse at 50% 0%, #fff5d6 0%, transparent 50%);
}
.scn-king-sonnet .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #90c8f0 0%, #b0d8f8 40%, transparent 100%);
  border-radius: 0 0 50% 50% / 30% 30% 0 0;
}
.scn-king-sonnet .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6aaa4a 0%, #4a8a2a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-king-sonnet .king {
  position: absolute; bottom: 20%; left: 30%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kso-king 6s ease-in-out infinite alternate;
}
.scn-king-sonnet .king::after {
  content: ''; position: absolute; top: -20%; left: 10%; width: 80%; height: 40%;
  background: linear-gradient(180deg, #c0a070 0%, #a07a44 100%);
  border-radius: 50% 50% 0 0; /* crown */
}
.scn-king-sonnet .cupid {
  position: absolute; bottom: 30%; right: 25%; width: 15%; height: 30%;
  background: linear-gradient(180deg, #e0c090 0%, #c0a070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kso-cupid 4s ease-in-out infinite;
}
.scn-king-sonnet .arrow {
  position: absolute; bottom: 40%; left: 40%; width: 30%; height: 2%;
  background: linear-gradient(90deg, #d0b080 0%, #8a6a3a 100%);
  transform: rotate(-20deg); transform-origin: left;
  animation: kso-arrow 2s ease-in-out infinite;
}
.scn-king-sonnet .heart {
  position: absolute; width: 16px; height: 16px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 100%);
  border-radius: 50% 50% 50% 0; transform: rotate(-45deg);
  filter: blur(2px);
}
.scn-king-sonnet .heart-a { top: 30%; left: 50%; animation: kso-heart 2s ease-out infinite; }
.scn-king-sonnet .heart-b { top: 40%; left: 55%; animation: kso-heart 2.5s ease-out infinite 0.5s; }
.scn-king-sonnet .sparkle {
  position: absolute; top: 20%; right: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, #fff5d6 0%, #ffcc88 100%);
  border-radius: 50%; animation: kso-sparkle 1.5s ease-in-out infinite alternate;
}
@keyframes kso-king { 0% { transform:translateY(0) rotate(-3deg); } 50% { transform:translateY(-6px) rotate(3deg); } 100% { transform:translateY(0) rotate(-2deg); } }
@keyframes kso-cupid { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-8px) rotate(-15deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes kso-arrow { 0% { transform:rotate(-20deg) scaleX(1); } 50% { transform:rotate(-15deg) scaleX(1.2); } 100% { transform:rotate(-20deg) scaleX(1); } }
@keyframes kso-heart { 0% { opacity:1; transform:rotate(-45deg) translateY(0) scale(1); } 100% { opacity:0; transform:rotate(-45deg) translateY(-30px) scale(0.5); } }
@keyframes kso-sparkle { 0% { opacity:0.3; transform:scale(0.8); } 100% { opacity:1; transform:scale(1.5); } }

/* longaville-sonnet */
.scn-longaville-sonnet {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 30%, #b8a080 60%, #8a7050 100%),
    radial-gradient(ellipse at 80% 40%, #f0e0c0 0%, transparent 50%);
}
.scn-longaville-sonnet .room-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #d4c4a8 0%, #c0b090 50%, #a09070 100%);
  border-radius: 0 0 30% 30% / 10% 10% 0 0;
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.15);
}
.scn-longaville-sonnet .table {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, #b09070 0%, #8a7050 100%);
  border-radius: 6px; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-longaville-sonnet .scroll {
  position: absolute; bottom: 22%; left: 25%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d4b888 100%);
  border-radius: 2px; transform: rotate(5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: lso-scroll 8s ease-in-out infinite alternate;
}
.scn-longaville-sonnet .torn-piece {
  position: absolute; width: 8%; height: 6%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d4b888 100%);
  clip-path: polygon(0% 0%, 100% 10%, 80% 100%, 20% 90%);
  animation: lso-torn 3s ease-in-out infinite;
}
.scn-longaville-sonnet .torn-1 { bottom: 20%; left: 50%; transform: rotate(30deg); animation-delay: 0s; }
.scn-longaville-sonnet .torn-2 { bottom: 18%; left: 60%; transform: rotate(-45deg); animation-delay: 0.5s; }
.scn-longaville-sonnet .hand {
  position: absolute; bottom: 18%; left: 40%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #e0c090 0%, #c0a070 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: lso-hand 5s ease-in-out infinite alternate;
}
.scn-longaville-sonnet .ink-splat {
  position: absolute; bottom: 15%; left: 35%; width: 6%; height: 6%;
  background: radial-gradient(circle, #2a1a0a 0%, #1a0a00 80%);
  border-radius: 50%; filter: blur(3px);
  animation: lso-splat 4s ease-in-out infinite alternate;
}
@keyframes lso-scroll { 0% { transform:rotate(5deg) translateY(0); } 50% { transform:rotate(8deg) translateY(-4px); } 100% { transform:rotate(3deg) translateY(0); } }
@keyframes lso-torn { 0% { transform:rotate(30deg) translateY(0); } 50% { transform:rotate(20deg) translateY(10px); opacity:0.6; } 100% { transform:rotate(30deg) translateY(0); } }
@keyframes lso-hand { 0% { transform:translateY(0) rotate(-10deg); } 50% { transform:translateY(-5px) rotate(0deg); } 100% { transform:translateY(0) rotate(-5deg); } }
@keyframes lso-splat { 0% { transform:scale(1); opacity:0.8; } 50% { transform:scale(1.5); opacity:0.5; } 100% { transform:scale(1); opacity:0.9; } }

.scn-dumain-sonnet {
  background: linear-gradient(180deg, #7ab8e0 0%, #f5d88a 60%, #e9b35f 100%), radial-gradient(ellipse at 70% 20%, #fff2d0 0%, transparent 60%);
}
.scn-dumain-sonnet .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #c9e6ff 0%, transparent 100%); animation: ds1-sky 10s ease-in-out infinite alternate; }
.scn-dumain-sonnet .sun { position:absolute; top:8%; left:65%; width:60px; height:60px; background: radial-gradient(circle, #ffe68a 0%, #f5b440 70%); border-radius:50%; box-shadow: 0 0 40px 15px #f5b440; animation: ds1-sun 5s ease-in-out infinite; }
.scn-dumain-sonnet .figure { position:absolute; bottom:22%; left:25%; width:30px; height:70px; background: linear-gradient(180deg, #c9845c 0%, #8a5030 50%, #5e3220 100%); border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ds1-figure 3s ease-in-out infinite; }
.scn-dumain-sonnet .paper { position:absolute; bottom:48%; left:35%; width:30px; height:40px; background: linear-gradient(135deg, #faf5e8 0%, #e3d7b5 100%); border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,.3); transform: rotate(15deg); animation: ds1-paper 2s ease-in-out infinite; }
.scn-dumain-sonnet .dish { position:absolute; bottom:18%; left:45%; width:50px; height:20px; background: radial-gradient(ellipse, #e8dcc8 0%, #b09a7a 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: ds1-dish 4s ease-in-out infinite; }
.scn-dumain-sonnet .woodcock1 { position:absolute; bottom:22%; left:46%; width:12px; height:8px; background: #a06840; border-radius: 50% 50% 0 0; animation: ds1-woodcock 1.5s ease-in-out infinite; }
.scn-dumain-sonnet .woodcock2 { position:absolute; bottom:22%; left:52%; width:12px; height:8px; background: #8a5830; border-radius: 50% 50% 0 0; animation: ds1-woodcock 1.5s ease-in-out infinite 0.5s; }

@keyframes ds1-sky   { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ds1-sun   { 0% { transform: scale(1); opacity:.9 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(1); opacity:.9 } }
@keyframes ds1-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ds1-paper { 0% { transform: rotate(12deg) scale(1); } 50% { transform: rotate(20deg) scale(.95); } 100% { transform: rotate(12deg) scale(1); } }
@keyframes ds1-dish { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ds1-woodcock { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(10deg); } 100% { transform: translateY(0) rotate(0); } }

.scn-revelation {
  background: linear-gradient(90deg, #2a3a5a 0%, #4a6a8a 50%, #6a8aaa 100%), radial-gradient(ellipse at 50% 30%, #ffe59a 0%, transparent 70%);
}
.scn-revelation .bg-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8ab4d6 0%, transparent 100%); animation: rev1-sky 6s ease-in-out infinite alternate; }
.scn-revelation .sunflare { position:absolute; top:15%; left:50%; width:80px; height:80px; background: radial-gradient(circle, #fff5b0 0%, #e8c44a 50%, transparent 80%); border-radius:50%; transform: translateX(-50%); animation: rev1-flare 3s ease-in-out infinite; }
.scn-revelation .figure-left { position:absolute; bottom:20%; left:20%; width:35px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e18 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: rev1-figure 1.5s ease-in-out infinite; }
.scn-revelation .figure-right { position:absolute; bottom:20%; right:20%; width:35px; height:80px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0e18 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: rev1-figure 1.5s ease-in-out infinite 0.75s; }
.scn-revelation .shadow-left { position:absolute; bottom:12%; left:15%; width:60px; height:20px; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(4px); animation: rev1-shadow 3s ease-in-out infinite; }
.scn-revelation .shadow-right { position:absolute; bottom:12%; right:15%; width:60px; height:20px; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(4px); animation: rev1-shadow 3s ease-in-out infinite 1.5s; }

@keyframes rev1-sky    { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes rev1-flare  { 0% { transform: translateX(-50%) scale(1); opacity:.8 } 50% { transform: translateX(-50%) scale(1.3); opacity:1 } 100% { transform: translateX(-50%) scale(1); opacity:.8 } }
@keyframes rev1-figure { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-3px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rev1-shadow { 0% { width:60px; opacity:.5 } 50% { width:70px; opacity:.7 } 100% { width:60px; opacity:.5 } }

.scn-letter-revealed {
  background: linear-gradient(180deg, #a4c8e8 0%, #c4dff0 40%, #e0edf5 100%), radial-gradient(ellipse at 50% 80%, #fff8e8 0%, transparent 60%);
}
.scn-letter-revealed .bg-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d4e9f5 0%, transparent 100%); animation: lr1-sky 15s ease-in-out infinite alternate; }
.scn-letter-revealed .sunlight { position:absolute; top:10%; left:40%; width:90px; height:90px; background: radial-gradient(circle, #fff6d0 0%, #f0d58a 40%, transparent 70%); border-radius:50%; animation: lr1-sun 12s ease-in-out infinite; }
.scn-letter-revealed .hand { position:absolute; bottom:25%; left:30%; width:30px; height:40px; background: linear-gradient(180deg, #e8cfa0 0%, #c49a68 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom left; animation: lr1-hand 8s ease-in-out infinite; }
.scn-letter-revealed .letter { position:absolute; bottom:30%; left:45%; width:45px; height:55px; background: linear-gradient(135deg, #fcf7e8 0%, #e5d8b0 100%); border-radius: 2px; box-shadow: 2px 2px 10px rgba(0,0,0,.2); transform: rotate(-8deg); animation: lr1-letter 10s ease-in-out infinite; }
.scn-letter-revealed .cloud1 { position:absolute; top:8%; left:10%; width:80px; height:18px; background: rgba(255,255,255,.4); border-radius: 50%; filter: blur(8px); animation: lr1-cloud 40s linear infinite; }
.scn-letter-revealed .cloud2 { position:absolute; top:15%; right:8%; width:60px; height:14px; background: rgba(255,255,255,.3); border-radius: 50%; filter: blur(6px); animation: lr1-cloud 50s linear infinite reverse; }

@keyframes lr1-sky   { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes lr1-sun   { 0% { transform: scale(1); opacity:.8 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(1); opacity:.8 } }
@keyframes lr1-hand  { 0% { transform: rotate(0) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes lr1-letter{ 0% { transform: rotate(-8deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.02); } 100% { transform: rotate(-8deg) scale(1); } }
@keyframes lr1-cloud { 0% { transform: translateX(-60px); } 100% { transform: translateX(120vw); } }

.scn-embrace-and-reason {
  background: linear-gradient(180deg, #f5c88a 0%, #e8a868 40%, #d48a4a 100%), radial-gradient(ellipse at 50% 20%, #ffe8c0 0%, transparent 70%);
}
.scn-embrace-and-reason .bg-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #fce0b0 0%, transparent 100%); animation: er1-sky 12s ease-in-out infinite alternate; }
.scn-embrace-and-reason .sun { position:absolute; top:5%; left:50%; width:70px; height:70px; background: radial-gradient(circle, #ffe680 0%, #f5b43a 70%); border-radius:50%; box-shadow: 0 0 60px 20px #f5b43a; animation: er1-sun 6s ease-in-out infinite; }
.scn-embrace-and-reason .figure1 { position:absolute; bottom:20%; left:30%; width:35px; height:75px; background: linear-gradient(180deg, #b06838 0%, #7a4420 100%); border-radius: 45% 45% 30% 30% / 55% 55% 40% 40%; transform-origin: bottom center; animation: er1-figure 5s ease-in-out infinite; }
.scn-embrace-and-reason .figure2 { position:absolute; bottom:20%; right:30%; width:35px; height:75px; background: linear-gradient(180deg, #9a5830 0%, #6a3818 100%); border-radius: 45% 45% 30% 30% / 55% 55% 40% 40%; transform-origin: bottom center; animation: er1-figure 5s ease-in-out infinite 2.5s; }
.scn-embrace-and-reason .halo { position:absolute; bottom:35%; left:50%; width:80px; height:80px; background: radial-gradient(circle, #ffeaa0 0%, transparent 70%); border-radius:50%; transform: translateX(-50%); animation: er1-halo 4s ease-in-out infinite; }
.scn-embrace-and-reason .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.4); animation: er1-ground 8s ease-in-out infinite alternate; }

@keyframes er1-sky    { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes er1-sun    { 0% { transform: scale(1); } 50% { transform: scale(1.08); } 100% { transform: scale(1); } }
@keyframes er1-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes er1-halo   { 0% { transform: translateX(-50%) scale(1); opacity:.5 } 50% { transform: translateX(-50%) scale(1.2); opacity:.9 } 100% { transform: translateX(-50%) scale(1); opacity:.5 } }
@keyframes er1-ground { 0% { transform: translateY(0); } 100% { transform: translateY(-3px); } }

.scn-final-negotiation {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #2a1f14 50%, #1a100a 100%),
    radial-gradient(ellipse at 50% 30%, #6b5a4a 0%, #3a2a1a 70%, transparent 100%);
}
.scn-final-negotiation .bg-wall { position:absolute; inset:0; background: linear-gradient(270deg, #3c2a1c 0%, #2a1a0e 50%, #1c1208 100%); }
.scn-final-negotiation .window { position:absolute; right:10%; top:8%; width:35%; height:50%; background: linear-gradient(180deg, #d4c4a8 0%, #b59a7a 50%, #8a6f50 100%); border-radius:3% 3% 0 0; box-shadow: inset 0 0 40px 8px rgba(180,160,130,0.3); animation: fn-glow 8s ease-in-out infinite alternate; }
.scn-final-negotiation .figure-left { position:absolute; bottom:15%; left:15%; width:14%; height:50%; background: linear-gradient(90deg, #1a1210 0%, #0f0a08 100%); border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%; transform: translateY(0) rotate(0deg); animation: fn-fig-l 6s ease-in-out infinite; }
.scn-final-negotiation .figure-right { position:absolute; bottom:15%; right:15%; width:14%; height:50%; background: linear-gradient(270deg, #1a1210 0%, #0f0a08 100%); border-radius: 30% 40% 20% 20% / 40% 50% 30% 30%; transform: translateY(0) rotate(0deg); animation: fn-fig-r 6s ease-in-out infinite; }
.scn-final-negotiation .table { position:absolute; bottom:13%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #6e5540 0%, #4a3728 100%); border-radius:2% 2% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.5); animation: fn-table 12s ease-in-out infinite; }
.scn-final-negotiation .document { position:absolute; bottom:20%; left:45%; width:10%; height:6%; background: linear-gradient(135deg, #f5ecd0 0%, #d9cba0 100%); border-radius:5%; transform: rotate(-2deg); animation: fn-doc 10s ease-in-out infinite; }
.scn-final-negotiation .lamp { position:absolute; top:20%; left:50%; width:6%; height:8%; background: radial-gradient(circle, #ffd8a0 0%, #c89050 70%, #6a4020 100%); border-radius:50%; box-shadow: 0 0 60px 20px #d09850, 0 0 100px 40px rgba(192,136,64,0.4); animation: fn-lamp 4s ease-in-out infinite alternate; }
@keyframes fn-glow { 0% { opacity:0.85; box-shadow: inset 0 0 30px 6px rgba(180,160,130,0.3); } 50% { opacity:1; box-shadow: inset 0 0 60px 15px rgba(200,180,150,0.5); } 100% { opacity:0.9; box-shadow: inset 0 0 40px 8px rgba(180,160,130,0.35); } }
@keyframes fn-fig-l { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fn-fig-r { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fn-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fn-doc { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(-1deg) scale(1); } }
@keyframes fn-lamp { 0% { opacity:0.8; box-shadow: 0 0 40px 15px #d09850, 0 0 80px 30px rgba(192,136,64,0.3); } 50% { opacity:1; box-shadow: 0 0 80px 25px #e0b060, 0 0 120px 50px rgba(200,150,80,0.5); } 100% { opacity:0.9; box-shadow: 0 0 50px 18px #d09850, 0 0 90px 35px rgba(192,136,64,0.35); } }

.scn-armado-final {
  background:
    linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #1a100a 100%),
    radial-gradient(ellipse at 50% 20%, #7a6a5a 0%, #4a3a2a 60%, transparent 80%);
}
.scn-armado-final .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6b5e4e 0%, #4a3d30 100%); animation: af-sky 12s ease-in-out infinite alternate; }
.scn-armado-final .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a2e24 0%, #1f1810 100%); border-radius: 60% 40% 0 0 / 80% 50% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.6); animation: af-ground 18s ease-in-out infinite alternate; }
.scn-armado-final .king { position:absolute; bottom:20%; left:40%; width:12%; height:50%; background: linear-gradient(180deg, #4a3e30 0%, #2a1e14 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: af-king 7s ease-in-out infinite; }
.scn-armado-final .armado { position:absolute; bottom:18%; left:20%; width:10%; height:35%; background: linear-gradient(180deg, #3a2c20 0%, #1f140e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: translateY(0) rotate(0deg); animation: af-armado 6s ease-in-out infinite; }
.scn-armado-final .plow { position:absolute; bottom:16%; left:60%; width:18%; height:8%; background: linear-gradient(90deg, #554433 0%, #332211 100%); border-radius: 20% 80% 10% 10% / 50% 50% 30% 30%; transform: rotate(-5deg); animation: af-plow 9s ease-in-out infinite; }
.scn-armado-final .scepter { position:absolute; bottom:65%; left:44%; width:2%; height:25%; background: linear-gradient(180deg, #c0a870 0%, #8a6a40 100%); border-radius: 10%; transform: rotate(10deg); animation: af-scepter 8s ease-in-out infinite; }
.scn-armado-final .wreath { position:absolute; bottom:58%; left:30%; width:8%; height:8%; background: radial-gradient(circle, #6b5a3a 0%, #3a2a18 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(180,160,100,0.3); animation: af-wreath 15s ease-in-out infinite alternate; }
@keyframes af-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes af-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes af-king { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes af-armado { 0% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-5px) rotate(-2deg); } 40% { transform: translateY(0) rotate(0deg); } 60% { transform: translateY(-3px) rotate(2deg); } 80% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes af-plow { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(4px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes af-scepter { 0% { transform: rotate(10deg); } 50% { transform: rotate(14deg); } 100% { transform: rotate(10deg); } }
@keyframes af-wreath { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(0.98); } }

.scn-song {
  background:
    linear-gradient(180deg, #87ceeb 0%, #e0f0ff 40%, #f5f5dc 80%, #f0e68c 100%),
    radial-gradient(ellipse at 70% 20%, #fff5cc 0%, transparent 60%);
}
.scn-song .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5fa8d3 0%, #a0d8ef 70%, #cce8ff 100%); animation: sg-sky 10s ease-in-out infinite alternate; }
.scn-song .sun { position:absolute; top:8%; left:68%; width:12%; height:12%; background: radial-gradient(circle, #fff8e0 0%, #ffd700 40%, #ffaa00 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 30px #ffd700, 0 0 120px 60px rgba(255,215,0,0.4); animation: sg-sun 6s ease-in-out infinite alternate; }
.scn-song .meadow { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6b8e4e 0%, #3a6e2a 50%, #2a5a1a 100%); border-radius: 70% 30% 0 0 / 60% 40% 0 0; animation: sg-meadow 14s ease-in-out infinite alternate; }
.scn-song .shepherd { position:absolute; bottom:15%; left:20%; width:10%; height:40%; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: translateX(0); animation: sg-shepherd 8s ease-in-out infinite; }
.scn-song .tree { position:absolute; bottom:20%; left:55%; width:20%; height:55%; background: linear-gradient(180deg, #4a6a2a 0%, #2a4a1a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; animation: sg-tree 12s ease-in-out infinite alternate; }
.scn-song .cuckoo { position:absolute; bottom:55%; left:60%; width:6%; height:8%; background: radial-gradient(circle, #4a3a2a 0%, #2a1a10 100%); border-radius: 50%; animation: sg-cuckoo 4s ease-in-out infinite; }
.scn-song .maiden { position:absolute; bottom:15%; right:22%; width:10%; height:40%; background: linear-gradient(180deg, #a08a6a 0%, #6a5a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: translateX(0); animation: sg-maiden 9s ease-in-out infinite; }
.scn-song .smock { position:absolute; bottom:25%; right:18%; width:14%; height:10%; background: linear-gradient(135deg, #f5f5dc 0%, #e6e6c0 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; transform: rotate(-5deg); animation: sg-smock 11s ease-in-out infinite; }
@keyframes sg-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes sg-sun { 0% { transform: scale(1); opacity:0.9; box-shadow: 0 0 60px 20px #ffd700, 0 0 100px 40px rgba(255,215,0,0.3); } 50% { transform: scale(1.05); opacity:1; box-shadow: 0 0 100px 40px #ffd700, 0 0 140px 60px rgba(255,215,0,0.5); } 100% { transform: scale(0.98); opacity:0.95; box-shadow: 0 0 70px 25px #ffd700, 0 0 110px 45px rgba(255,215,0,0.35); } }
@keyframes sg-meadow { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes sg-shepherd { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sg-tree { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-6px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sg-cuckoo { 0% { transform: translateY(0); } 25% { transform: translateY(-4px); } 50% { transform: translateY(0); } 75% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sg-maiden { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3px) rotate(1deg); } 60% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sg-smock { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(5deg) scale(1.02); } 100% { transform: rotate(-3deg) scale(1); } }

.scn-ladies-mock-lovers {
  background: linear-gradient(180deg, #f9ecc0 0%, #e3c896 50%, #d2a86e 100%), radial-gradient(circle at 70% 30%, #fff3d6 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  height: 100%;
  width: 100%;
}
.scn-ladies-mock-lovers .bg-lm1 {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 80% 20%, #fff8e7 0%, #f2dab4 60%, transparent 80%);
  animation: lm1-sky 8s ease-in-out infinite alternate;
}
.scn-ladies-mock-lovers .table-lm1 {
  position: absolute;
  bottom: 18%;
  left: 30%;
  right: 30%;
  height: 8%;
  background: linear-gradient(180deg, #b08650 0%, #8a6a3a 100%);
  border-radius: 12% 12% 4% 4%;
  box-shadow: 0 12px 20px rgba(0,0,0,.25);
  transform-origin: center bottom;
  animation: lm1-table 6s ease-in-out infinite;
}
.scn-ladies-mock-lovers .letter-lm1 {
  position: absolute;
  bottom: 28%;
  left: 44%;
  width: 10%;
  height: 6%;
  background: linear-gradient(135deg, #f5edd6 0%, #e8d6b0 100%);
  border-radius: 4% 12% 4% 12%;
  box-shadow: 0 2px 8px rgba(0,0,0,.15);
  transform: rotate(-5deg);
  animation: lm1-letter 4s ease-in-out infinite alternate;
}
.scn-ladies-mock-lovers .quill-lm1 {
  position: absolute;
  bottom: 26%;
  left: 52%;
  width: 2%;
  height: 8%;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a080 50%, #6a4a2a 100%);
  border-radius: 50% 50% 20% 20%/60% 60% 20% 20%;
  transform: rotate(20deg);
  animation: lm1-quill 3s ease-in-out infinite alternate;
}
.scn-ladies-mock-lovers .inkpot-lm1 {
  position: absolute;
  bottom: 24%;
  left: 38%;
  width: 3%;
  height: 4%;
  background: radial-gradient(circle at 50% 30%, #4a3a2a 0%, #1a1210 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: lm1-ink 5s ease-in-out infinite;
}
.scn-ladies-mock-lovers .lady1-lm1 {
  position: absolute;
  bottom: 10%;
  left: 20%;
  width: 12%;
  height: 30%;
  background: linear-gradient(180deg, #b0a090 0%, #6a5a4a 100%);
  border-radius: 50% 50% 40% 40%/70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: lm1-lady1 4s ease-in-out infinite;
}
.scn-ladies-mock-lovers .lady2-lm1 {
  position: absolute;
  bottom: 8%;
  right: 18%;
  width: 14%;
  height: 32%;
  background: linear-gradient(180deg, #c0b0a0 0%, #7a6a5a 100%);
  border-radius: 50% 50% 40% 40%/70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: lm1-lady2 4.5s ease-in-out infinite;
}
.scn-ladies-mock-lovers .laugh-lm1 {
  position: absolute;
  bottom: 38%;
  right: 30%;
  width: 6%;
  height: 4%;
  background: radial-gradient(circle, #ffb0a0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 6px #ffb0a0;
  opacity: 0.6;
  animation: lm1-laugh 2s ease-in-out infinite alternate;
}
@keyframes lm1-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes lm1-table { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02) translateY(-2px); } }
@keyframes lm1-letter { 0% { transform: rotate(-5deg) translateY(0); } 100% { transform: rotate(5deg) translateY(-3px); } }
@keyframes lm1-quill { 0% { transform: rotate(15deg) translateY(0); } 100% { transform: rotate(25deg) translateY(-2px); } }
@keyframes lm1-ink { 0%,100% { transform: scale(1); } 50% { transform: scale(1.1); } }
@keyframes lm1-lady1 { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-6px) rotate(3deg); } }
@keyframes lm1-lady2 { 0%,100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-8px) rotate(-4deg); } }
@keyframes lm1-laugh { 0% { opacity: 0.3; transform: scale(0.8); } 100% { opacity: 0.8; transform: scale(1.3); } }

.scn-boyets-report {
  background: linear-gradient(180deg, #d4e4c0 0%, #a8c090 40%, #708060 100%), radial-gradient(ellipse at 50% 20%, #f0f8e0 0%, transparent 70%);
  position: relative;
  height: 100%;
  width: 100%;
  overflow: hidden;
}
.scn-boyets-report .sky-be1 {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e0f0d0 0%, #c8dbb8 100%);
  animation: be1-sky 10s ease-in-out infinite alternate;
}
.scn-boyets-report .tree-be1 {
  position: absolute;
  bottom: 15%;
  left: 40%;
  width: 20%;
  height: 65%;
  background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%);
  border-radius: 60% 40% 20% 20%/80% 80% 20% 20%;
  transform-origin: bottom center;
  box-shadow: inset -8px 0 20px rgba(0,0,0,.3);
  animation: be1-tree 8s ease-in-out infinite;
}
.scn-boyets-report .bush-be1 {
  position: absolute;
  bottom: 10%;
  left: 20%;
  width: 25%;
  height: 20%;
  background: radial-gradient(ellipse at 40% 40%, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 8px 20px rgba(0,0,0,.2);
  animation: be1-bush 12s ease-in-out infinite;
}
.scn-boyets-report .figure-be1 {
  position: absolute;
  bottom: 18%;
  left: 25%;
  width: 8%;
  height: 25%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a10 100%);
  border-radius: 50% 50% 40% 40%/60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: be1-figure 5s ease-in-out infinite alternate;
}
.scn-boyets-report .shade-be1 {
  position: absolute;
  bottom: 15%;
  left: 30%;
  width: 15%;
  height: 5%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: be1-shade 4s ease-in-out infinite;
}
.scn-boyets-report .leaf-be1 {
  position: absolute;
  top: 10%;
  left: 60%;
  width: 8%;
  height: 6%;
  background: radial-gradient(circle at 50% 30%, #6a8a5a 0%, #3a5a2a 100%);
  border-radius: 80% 20% 80% 20%;
  filter: blur(2px);
  animation: be1-leaf 20s linear infinite;
}
@keyframes be1-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes be1-tree { 0%,100% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } }
@keyframes be1-bush { 0%,100% { transform: scale(1); } 50% { transform: scale(1.05) translateY(-3px); } }
@keyframes be1-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(-5px) rotate(-2deg); } }
@keyframes be1-shade { 0%,100% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.2); } }
@keyframes be1-leaf { 0% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(-200px) rotate(360deg); } }

.scn-ladies-plot {
  background: linear-gradient(180deg, #f2e8c0 0%, #d8c898 50%, #c0b080 100%), radial-gradient(circle at 30% 50%, #fff0d6 0%, transparent 60%);
  position: relative;
  height: 100%;
  width: 100%;
  overflow: hidden;
}
.scn-ladies-plot .bg-lp1 {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 70% 20%, #ffedd4 0%, transparent 70%);
  animation: lp1-bg 10s ease-in-out infinite alternate;
}
.scn-ladies-plot .garden-lp1 {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #6a8a5a 0%, #3a5a2a 100%);
  border-radius: 30% 70% 0 0 / 50% 100% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.2);
  animation: lp1-garden 15s ease-in-out infinite;
}
.scn-ladies-plot .bench-lp1 {
  position: absolute;
  bottom: 20%;
  left: 35%;
  right: 35%;
  height: 8%;
  background: linear-gradient(180deg, #b09070 0%, #8a6a4a 100%);
  border-radius: 8% 8% 4% 4%;
  transform-origin: center bottom;
  animation: lp1-bench 6s ease-in-out infinite;
}
.scn-ladies-plot .lady1-lp1 {
  position: absolute;
  bottom: 22%;
  left: 20%;
  width: 12%;
  height: 35%;
  background: linear-gradient(180deg, #c0a890 0%, #8a705a 100%);
  border-radius: 50% 50% 40% 40%/70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: lp1-lady1 4s ease-in-out infinite alternate;
}
.scn-ladies-plot .lady2-lp1 {
  position: absolute;
  bottom: 20%;
  right: 20%;
  width: 14%;
  height: 38%;
  background: linear-gradient(180deg, #d0b8a0 0%, #9a8068 100%);
  border-radius: 50% 50% 40% 40%/70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: lp1-lady2 4.5s ease-in-out infinite alternate;
}
.scn-ladies-plot .mask1-lp1 {
  position: absolute;
  bottom: 48%;
  left: 23%;
  width: 6%;
  height: 4%;
  background: radial-gradient(circle, #d4a080 0%, #8a6040 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 8px 2px rgba(0,0,0,.2);
  animation: lp1-mask1 3s ease-in-out infinite;
}
.scn-ladies-plot .mask2-lp1 {
  position: absolute;
  bottom: 46%;
  right: 23%;
  width: 6%;
  height: 4%;
  background: radial-gradient(circle, #c09070 0%, #7a5030 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 8px 2px rgba(0,0,0,.2);
  animation: lp1-mask2 3.5s ease-in-out infinite;
}
.scn-ladies-plot .rose-lp1 {
  position: absolute;
  bottom: 18%;
  left: 45%;
  width: 4%;
  height: 6%;
  background: radial-gradient(circle at 50% 40%, #e08060 0%, #b84828 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 12px 4px rgba(184,72,40,.3);
  animation: lp1-rose 5s ease-in-out infinite alternate;
}
@keyframes lp1-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes lp1-garden { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.03) translateY(-4px); } }
@keyframes lp1-bench { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02) translateY(-2px); } }
@keyframes lp1-lady1 { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes lp1-lady2 { 0% { transform: translateY(0) rotate(3deg); } 50% { transform: translateY(-7px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes lp1-mask1 { 0%,100% { transform: translateX(0) scale(1); } 50% { transform: translateX(4px) scale(1.1); } }
@keyframes lp1-mask2 { 0%,100% { transform: translateX(0) scale(1); } 50% { transform: translateX(-4px) scale(1.1); } }
@keyframes lp1-rose { 0% { transform: scale(1) rotate(0deg); } 100% { transform: scale(1.2) rotate(10deg); } }

.scn-muscovites-arrive {
  background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 40%, #908060 100%), radial-gradient(circle at 40% 30%, #ffe8c0 0%, transparent 60%);
  position: relative;
  height: 100%;
  width: 100%;
  overflow: hidden;
}
.scn-muscovites-arrive .bg-ma1 {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 80% 10%, #fff0d8 0%, transparent 70%);
  animation: ma1-bg 8s ease-in-out infinite alternate;
}
.scn-muscovites-arrive .curtain-ma1 {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #8a705a 0%, #5a4a3a 100%);
  border-radius: 0 0 40% 40%/0 0 20% 20%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
  animation: ma1-curtain 12s ease-in-out infinite;
}
.scn-muscovites-arrive .ladies-ma1 {
  position: absolute;
  bottom: 15%;
  left: 50%;
  width: 20%;
  height: 30%;
  background: linear-gradient(180deg, #b8a090 0%, #7a6a5a 100%);
  border-radius: 50% 50% 40% 40%/70% 70% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: ma1-ladies 5s ease-in-out infinite alternate;
}
.scn-muscovites-arrive .men-ma1 {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 15%;
  height: 32%;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40%/60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ma1-men 6s ease-in-out infinite;
}
.scn-muscovites-arrive .music-ma1 {
  position: absolute;
  top: 12%;
  left: 20%;
  width: 10%;
  height: 5%;
  background: radial-gradient(circle, #c0a080 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ma1-music 3s ease-in-out infinite alternate;
}
.scn-muscovites-arrive .stage-ma1 {
  position: absolute;
  bottom: 5%;
  left: 10%;
  right: 10%;
  height: 6%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.2);
  animation: ma1-stage 10s ease-in-out infinite;
}
.scn-muscovites-arrive .fan-ma1 {
  position: absolute;
  bottom: 28%;
  left: 60%;
  width: 4%;
  height: 8%;
  background: linear-gradient(180deg, #d0b8a0 0%, #a08870 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-15deg);
  animation: ma1-fan 2s ease-in-out infinite alternate;
}
@keyframes ma1-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ma1-curtain { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.03) translateY(-2px); } }
@keyframes ma1-ladies { 0% { transform: translateX(-50%) rotate(2deg); } 50% { transform: translateX(-50%) translateY(-4px) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(1deg); } }
@keyframes ma1-men { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(5deg); } }
@keyframes ma1-music { 0% { opacity: 0.3; transform: scale(0.8); } 100% { opacity: 0.7; transform: scale(1.3); } }
@keyframes ma1-stage { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes ma1-fan { 0% { transform: rotate(-20deg) translateY(0); } 100% { transform: rotate(0deg) translateY(-5px); } }

/* king-proposes-oath - id: "king-proposes-oath" */
.scn-king-proposes-oath {
  background:
    linear-gradient(180deg, #f7e7c8 0%, #d4b68a 40%, #c49a6c 100%),
    radial-gradient(ellipse at 50% 0%, #fff 0%, transparent 60%);
}
.scn-king-proposes-oath .back-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #e8d4b4 0%, #c8a882 100%); }
.scn-king-proposes-oath .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8b6f4c 0%, #5a442a 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.4); }
.scn-king-proposes-oath .pillar-a { position:absolute; bottom:0; left:10%; width:8%; height:70%; background: linear-gradient(180deg, #c49a6c 0%, #a07a50 100%); border-radius:6% 6% 0 0; box-shadow: -2px 0 8px rgba(0,0,0,.3); animation: ko-pillar 15s ease-in-out infinite alternate; }
.scn-king-proposes-oath .pillar-b { position:absolute; bottom:0; right:10%; width:8%; height:70%; background: linear-gradient(180deg, #c49a6c 0%, #a07a50 100%); border-radius:6% 6% 0 0; box-shadow: 2px 0 8px rgba(0,0,0,.3); animation: ko-pillar 15s ease-in-out infinite alternate-reverse; }
.scn-king-proposes-oath .window { position:absolute; top:12%; left:38%; width:24%; height:40%; background: radial-gradient(ellipse at 50% 50%, #ffeac2 0%, #d4b68a 100%); border: 6px solid #8b6f4c; border-radius: 10% 10% 8% 8%; box-shadow: inset 0 0 40px rgba(255,255,200,.5); }
.scn-king-proposes-oath .sunbeam { position:absolute; top:10%; left:40%; width:20%; height:70%; background: linear-gradient(180deg, rgba(255,255,200,.3) 0%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); animation: ko-beam 9s ease-in-out infinite alternate; }
.scn-king-proposes-oath .throne { position:absolute; bottom:20%; left:50%; width:18%; height:40%; transform: translateX(-50%); background: linear-gradient(180deg, #b8860b 0%, #8b6508 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 10px 30px rgba(0,0,0,.5), inset 0 -10px 20px rgba(0,0,0,.4); }
.scn-king-proposes-oath .king { position:absolute; bottom:26%; left:50%; width:10%; height:30%; transform: translateX(-50%); background: linear-gradient(180deg, #2c1a0e 0%, #1a0e06 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; animation: ko-king 6s ease-in-out infinite; }
.scn-king-proposes-oath .banner { position:absolute; top:8%; left:5%; width:12%; height:50%; background: linear-gradient(180deg, #b8860b 0%, #8b6508 50%, #b8860b 100%); border-radius: 4px; box-shadow: 2px 2px 8px rgba(0,0,0,.4); animation: ko-banner 12s ease-in-out infinite; }

@keyframes ko-pillar {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.02); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0.9; }
}
@keyframes ko-beam {
  0% { transform: scaleX(1) translateX(0); opacity: 0.6; }
  50% { transform: scaleX(1.05) translateX(5px); opacity: 1; }
  100% { transform: scaleX(1) translateX(0); opacity: 0.7; }
}
@keyframes ko-king {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-1deg); }
  75% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes ko-banner {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(3px) scaleX(1.02); }
  100% { transform: translateX(0) scaleX(1); }
}

/* birons-rebuttal - id: "birons-rebuttal" */
.scn-birons-rebuttal {
  background:
    linear-gradient(180deg, #f2dba0 0%, #c4956a 40%, #9b7a4a 100%),
    radial-gradient(ellipse at 30% 80%, #fff3cc 0%, transparent 60%);
}
.scn-birons-rebuttal .desk { position:absolute; bottom:15%; left:10%; width:80%; height:30%; background: linear-gradient(180deg, #6b4e2e 0%, #4a3520 100%); border-radius: 4% 4% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.5); }
.scn-birons-rebuttal .books { position:absolute; bottom:30%; left:20%; width:15%; height:25%; background: linear-gradient(180deg, #8b4513 0%, #5a2d0c 100%); border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,.4), -2px 0 0 #c47d3a; animation: br-books 10s ease-in-out infinite alternate; }
.scn-birons-rebuttal .quill { position:absolute; bottom:35%; left:35%; width:4%; height:20%; background: linear-gradient(180deg, #f5f5dc 0%, #d4c9a8 100%); border-radius: 40% 40% 0 0 / 80% 80% 0 0; transform-origin: bottom right; animation: br-quill 4s ease-in-out infinite; }
.scn-birons-rebuttal .biron-hand { position:absolute; bottom:38%; left:30%; width:8%; height:12%; background: linear-gradient(180deg, #e8c49a 0%, #c4956a 100%); border-radius: 50% 50% 30% 30%; transform-origin: 30% 100%; animation: br-hand 5s ease-in-out infinite; }
.scn-birons-rebuttal .biron-figure { position:absolute; bottom:20%; right:15%; width:15%; height:55%; background: linear-gradient(180deg, #2c1a0e 0%, #1a0e06 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: br-figure 8s ease-in-out infinite; }
.scn-birons-rebuttal .window-sun { position:absolute; top:10%; left:5%; width:25%; height:45%; background: radial-gradient(ellipse at 50% 30%, #fff8dc 0%, #c4956a 100%); border: 4px solid #4a3520; border-radius: 10% 10% 8% 8%; box-shadow: inset 0 0 30px rgba(255,255,200,.4); animation: br-window 12s ease-in-out infinite; }
.scn-birons-rebuttal .sun-altern { position:absolute; top:8%; left:8%; width:20%; height:50%; background: linear-gradient(180deg, rgba(255,255,200,.25) 0%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: br-sunbeam 7s ease-in-out infinite alternate; }

@keyframes br-books {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes br-quill {
  0% { transform: rotate(-5deg) scaleY(1); }
  25% { transform: rotate(5deg) scaleY(1.1); }
  50% { transform: rotate(-3deg) scaleY(1); }
  75% { transform: rotate(4deg) scaleY(1.05); }
  100% { transform: rotate(-5deg) scaleY(1); }
}
@keyframes br-hand {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(15deg) scaleX(1.1); }
  100% { transform: rotate(0deg) scaleX(1); }
}
@keyframes br-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(-2deg); }
  75% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes br-window {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes br-sunbeam {
  0% { transform: scaleX(1) translateX(0); opacity: 0.5; }
  50% { transform: scaleX(1.1) translateX(5px); opacity: 1; }
  100% { transform: scaleX(1) translateX(0); opacity: 0.6; }
}

/* birons-sophistry - id: "birons-sophistry" */
.scn-birons-sophistry {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #16213e 40%, #0f3460 100%),
    radial-gradient(ellipse at 30% 60%, #533483 0%, transparent 70%);
}
.scn-birons-sophistry .study-desk { position:absolute; bottom:10%; left:10%; width:80%; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 4% 4% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.7); }
.scn-birons-sophistry .open-book { position:absolute; bottom:25%; left:25%; width:30%; height:20%; background: linear-gradient(180deg, #f0e6c8 0%, #d4c9a8 100%); border-radius: 2px; box-shadow: 0 4px 10px rgba(0,0,0,.5); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: bs-book 12s ease-in-out infinite alternate; }
.scn-birons-sophistry .candle { position:absolute; bottom:40%; right:30%; width:4%; height:25%; background: linear-gradient(180deg, #f5deb3 0%, #d4a76a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 10px rgba(255,200,100,.6); }
.scn-birons-sophistry .candle-glow { position:absolute; bottom:45%; right:28%; width:12%; height:12%; background: radial-gradient(circle, #ffd700 0%, #ffaa00 40%, transparent 100%); border-radius: 50%; animation: bs-glow 3s ease-in-out infinite alternate; }
.scn-birons-sophistry .light-rays { position:absolute; top:10%; left:20%; width:60%; height:60%; background: linear-gradient(180deg, rgba(255,215,0,.15) 0%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: bs-rays 8s ease-in-out infinite; }
.scn-birons-sophistry .scholar-figure { position:absolute; bottom:20%; left:15%; width:15%; height:50%; background: linear-gradient(180deg, #2c1a0e 0%, #1a0e06 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: bs-scholar 6s ease-in-out infinite; }
.scn-birons-sophistry .shadow { position:absolute; bottom:10%; left:20%; width:40%; height:10%; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(6px); animation: bs-shadow 9s ease-in-out infinite alternate; }

@keyframes bs-book {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(-3deg) scaleX(1.02); }
  100% { transform: rotate(0deg) scaleX(1); }
}
@keyframes bs-glow {
  0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 15px #ffd700; }
  50% { transform: scale(1.2); opacity: 1; box-shadow: 0 0 30px #ffaa00; }
  100% { transform: scale(1); opacity: 0.9; box-shadow: 0 0 20px #ffd700; }
}
@keyframes bs-rays {
  0% { transform: translateX(0) scaleY(1); opacity: 0.3; }
  25% { transform: translateX(5px) scaleY(1.05); opacity: 0.5; }
  75% { transform: translateX(-5px) scaleY(0.95); opacity: 0.4; }
  100% { transform: translateX(0) scaleY(1); opacity: 0.3; }
}
@keyframes bs-scholar {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bs-shadow {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.1); opacity: 0.5; }
  100% { transform: scaleX(1); opacity: 0.3; }
}

/* king-approves - id: "king-approves" */
.scn-king-approves {
  background:
    linear-gradient(180deg, #f7e7c8 0%, #d4b68a 40%, #c49a6c 100%),
    radial-gradient(ellipse at 50% 20%, #fff3cc 0%, transparent 70%);
}
.scn-king-approves .hall-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8d4b4 0%, #c8a882 100%); }
.scn-king-approves .hall-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b6f4c 0%, #5a442a 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.4); }
.scn-king-approves .royal-table { position:absolute; bottom:20%; left:20%; width:60%; height:15%; background: linear-gradient(180deg, #6b4e2e 0%, #4a3520 100%); border-radius: 4% 4% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.5); animation: ka-table 14s ease-in-out infinite alternate; }
.scn-king-approves .scroll-decree { position:absolute; bottom:24%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #f5deb3 0%, #d4c9a8 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3); clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%); animation: ka-scroll 8s ease-in-out infinite; }
.scn-king-approves .king-hands { position:absolute; bottom:28%; left:40%; width:6%; height:6%; background: linear-gradient(180deg, #e8c49a 0%, #c4956a 100%); border-radius: 50% 50% 20% 20%; transform-origin: 50% 100%; animation: ka-hands 5s ease-in-out infinite alternate; }
.scn-king-approves .herald-figure { position:absolute; bottom:20%; right:12%; width:12%; height:45%; background: linear-gradient(180deg, #2c1a0e 0%, #1a0e06 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ka-herald 7s ease-in-out infinite; }
.scn-king-approves .throne-cushion { position:absolute; bottom:25%; left:45%; width:10%; height:15%; background: linear-gradient(180deg, #b8860b 0%, #8b6508 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 6px 15px rgba(0,0,0,.5); animation: ka-cushion 10s ease-in-out infinite alternate; }

@keyframes ka-table {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.01); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes ka-scroll {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  75% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ka-hands {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.1); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes ka-herald {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-1px) rotate(2deg); }
  70% { transform: translateY(0) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ka-cushion {
  0% { transform: scaleY(1) scaleX(1); }
  50% { transform: scaleY(1.02) scaleX(1.02); }
  100% { transform: scaleY(1) scaleX(1); }
}

/* Scene: confess-muscovites (warm, sunlit) */
.scn-confess-muscovites {
  background: linear-gradient(180deg, #7eb8d0 0%, #f0d8a0 60%, #d4a050 100%), radial-gradient(ellipse at 60% 30%, #fae4b0 0%, transparent 50%);
}
.scn-confess-muscovites .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #9ac8d8 0%, #ecc78a 100%);
  animation: cm-sky 12s ease-in-out infinite alternate;
}
.scn-confess-muscovites .garden {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: cm-garden 18s ease-in-out infinite alternate;
}
.scn-confess-muscovites .pavilion {
  position: absolute; bottom: 45%; left: 50%; width: 100px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #c8a060 0%, #a07030 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: cm-pavilion 8s ease-in-out infinite;
}
.scn-confess-muscovites .figure-left {
  position: absolute; bottom: 38%; left: 43%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cm-figure-l 4s ease-in-out infinite;
}
.scn-confess-muscovites .figure-right {
  position: absolute; bottom: 38%; right: 43%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cm-figure-r 4.5s ease-in-out infinite;
}
.scn-confess-muscovites .rose {
  position: absolute; bottom: 20%; left: 30%; width: 10px; height: 10px;
  background: radial-gradient(circle, #c8553d 0%, #8a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(200,85,61,0.5);
  animation: cm-rose 3s ease-in-out infinite alternate;
}
.scn-confess-muscovites .cloud-a-cm {
  position: absolute; top: 15%; left: 10%; width: 60px; height: 15px;
  background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.2) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: cm-drift-a 40s linear infinite;
}
.scn-confess-muscovites .cloud-b-cm {
  position: absolute; top: 22%; right: 15%; width: 50px; height: 12px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: cm-drift-b 50s linear infinite reverse;
}
@keyframes cm-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes cm-garden { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cm-pavilion { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) translateY(-3px) } }
@keyframes cm-figure-l { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cm-figure-r { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-3px) rotate(-1deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cm-rose { 0% { transform: scale(1) } 50% { transform: scale(1.3) } 100% { transform: scale(1) } }
@keyframes cm-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes cm-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* Scene: costard-announces-worthies (funny, sunlit) */
.scn-costard-announces-worthies {
  background: linear-gradient(180deg, #f0e68c 0%, #ffd700 60%, #d4a010 100%), radial-gradient(ellipse at 50% 30%, #fff8dc 0%, transparent 60%);
}
.scn-costard-announces-worthies .stage {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c8a050 0%, #a08030 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.4);
  animation: ca-stage 6s ease-in-out infinite;
}
.scn-costard-announces-worthies .backdrop {
  position: absolute; bottom: 40%; left: 15%; right: 15%; height: 60%;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%);
  border-radius: 0 0 20% 20%;
  animation: ca-backdrop 10s ease-in-out infinite alternate;
}
.scn-costard-announces-worthies .costard-body {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f4a460 0%, #d2691e 100%);
  border-radius: 30% 30% 20% 20%;
  animation: ca-body 3s ease-in-out infinite;
}
.scn-costard-announces-worthies .costard-head {
  position: absolute; bottom: 60%; left: 50%; width: 30px; height: 35px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 40%, #ffdead 0%, #f4a460 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ca-head 3s ease-in-out infinite alternate;
}
.scn-costard-announces-worthies .hat {
  position: absolute; bottom: 80%; left: 50%; width: 40px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2e8b57 0%, #1e5a3a 100%);
  border-radius: 50% 50% 0 0;
  animation: ca-hat 3.5s ease-in-out infinite alternate;
}
.scn-costard-announces-worthies .arm-left {
  position: absolute; bottom: 35%; left: 35%; width: 20px; height: 8px;
  background: linear-gradient(180deg, #f4a460 0%, #d2691e 100%);
  border-radius: 40%;
  transform-origin: right center;
  animation: ca-arm-l 2.5s ease-in-out infinite;
}
.scn-costard-announces-worthies .arm-right {
  position: absolute; bottom: 35%; right: 35%; width: 20px; height: 8px;
  background: linear-gradient(180deg, #f4a460 0%, #d2691e 100%);
  border-radius: 40%;
  transform-origin: left center;
  animation: ca-arm-r 2.8s ease-in-out infinite;
}
.scn-costard-announces-worthies .scroll {
  position: absolute; bottom: 45%; left: 48%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #fff8dc 0%, #f5deb3 100%);
  border-radius: 10%;
  transform: rotate(15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ca-scroll 4s ease-in-out infinite;
}
@keyframes ca-stage { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ca-backdrop { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ca-body { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.03) translateY(-2px) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes ca-head { 0% { transform: translateX(-50%) rotate(-3deg) } 50% { transform: translateX(-50%) rotate(3deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes ca-hat { 0% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(5deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes ca-arm-l { 0% { transform: rotate(0deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(0deg) } }
@keyframes ca-arm-r { 0% { transform: rotate(0deg) } 50% { transform: rotate(-25deg) } 100% { transform: rotate(0deg) } }
@keyframes ca-scroll { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-3px) } 100% { transform: rotate(15deg) translateY(0) } }

/* Scene: armado-presents (warm, sunlit) */
.scn-armado-presents {
  background: linear-gradient(180deg, #6b3a5a 0%, #8b4a6a 40%, #b07080 100%), radial-gradient(ellipse at 30% 70%, #d09070 0%, transparent 60%);
}
.scn-armado-presents .throne-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a2a3a 0%, #6a3a4a 50%, #8a5a5a 100%);
  animation: ar-room 12s ease-in-out infinite alternate;
}
.scn-armado-presents .column-left {
  position: absolute; bottom: 0; left: 10%; width: 20px; height: 80%;
  background: linear-gradient(180deg, #b08070 0%, #8a6050 100%);
  border-radius: 10%;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
  animation: ar-column 8s ease-in-out infinite alternate;
}
.scn-armado-presents .column-right {
  position: absolute; bottom: 0; right: 10%; width: 20px; height: 80%;
  background: linear-gradient(180deg, #b08070 0%, #8a6050 100%);
  border-radius: 10%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: ar-column 8s ease-in-out infinite alternate-reverse;
}
.scn-armado-presents .throne {
  position: absolute; bottom: 10%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #c8a050 0%, #a08030 100%);
  border-radius: 20% 20% 5% 5%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  animation: ar-throne 10s ease-in-out infinite;
}
.scn-armado-presents .king {
  position: absolute; bottom: 25%; left: 47%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ar-king 5s ease-in-out infinite;
}
.scn-armado-presents .armado {
  position: absolute; bottom: 10%; left: 30%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ar-armado 4s ease-in-out infinite alternate;
}
.scn-armado-presents .crown {
  position: absolute; bottom: 58%; left: 50%; width: 28px; height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #ffd700 0%, #b8860b 100%);
  clip-path: polygon(0 100%, 15% 0%, 30% 100%, 50% 10%, 70% 100%, 85% 0%, 100% 100%);
  animation: ar-crown 3s ease-in-out infinite alternate;
}
@keyframes ar-room { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ar-column { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes ar-throne { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes ar-king { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(-1px) rotate(-0.5deg) } 75% { transform: translateX(1px) rotate(0.5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ar-armado { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }
@keyframes ar-crown { 0% { transform: translateX(-50%) rotate(-4deg) scale(1) } 50% { transform: translateX(-50%) rotate(4deg) scale(1.05) } 100% { transform: translateX(-50%) rotate(-2deg) scale(1) } }

/* Scene: pompey-performance (funny, sunlit) */
.scn-pompey-performance {
  background: linear-gradient(180deg, #ffd700 0%, #ffa500 50%, #ff8c00 100%), radial-gradient(ellipse at 50% 40%, #fff8dc 0%, transparent 50%);
}
.scn-pompey-performance .curtain {
  position: absolute; top: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #c8553d 0%, #8a2a1a 100%);
  border-radius: 0 0 30% 30%;
  animation: po-curtain 4s ease-in-out infinite alternate;
}
.scn-pompey-performance .pompey-body {
  position: absolute; bottom: 10%; left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d2691e 0%, #a0522d 100%);
  border-radius: 30% 30% 20% 20%;
  animation: po-body 3s ease-in-out infinite;
}
.scn-pompey-performance .pompey-head {
  position: absolute; bottom: 55%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 40%, #f4a460 0%, #d2691e 100%);
  border-radius: 50%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: po-head 3.5s ease-in-out infinite alternate;
}
.scn-pompey-performance .lion-mane {
  position: absolute; bottom: 60%; left: 50%; width: 60px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b8860b 0%, #daa520 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: po-mane 5s ease-in-out infinite;
}
.scn-pompey-performance .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #8b4513 0%, #5a3010 100%);
  border-radius: 20% 20% 0 0;
  animation: po-floor 6s ease-in-out infinite alternate;
}
.scn-pompey-performance .audience-left {
  position: absolute; bottom: 5%; left: 5%; width: 15px; height: 25px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: po-audience 8s ease-in-out infinite alternate;
}
.scn-pompey-performance .audience-right {
  position: absolute; bottom: 5%; right: 5%; width: 15px; height: 25px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: po-audience 8s ease-in-out infinite alternate-reverse;
}
@keyframes po-curtain { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes po-body { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.04) translateY(-2px) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes po-head { 0% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(5deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes po-mane { 0% { filter: blur(3px) scale(1) } 50% { filter: blur(5px) scale(1.1) } 100% { filter: blur(3px) scale(1) } }
@keyframes po-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes po-audience { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }

.scn-armado-moth-letter {
  background: linear-gradient(180deg, #87CEEB 0%, #f5d6a0 50%, #eec373 100%),
              radial-gradient(ellipse at 70% 20%, #fff4d0 0%, transparent 60%);
}
.scn-armado-moth-letter .sky {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, transparent 30%, rgba(255,200,100,0.15) 70%);
  background-size: 200% 100%;
  animation: am-sky 20s linear infinite alternate;
}
.scn-armado-moth-letter .sun {
  position: absolute;
  top: 18%;
  right: 28%;
  width: 54px;
  height: 54px;
  background: radial-gradient(circle, #fff5d0 0%, #ffd700 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 18px #ffd700;
  animation: am-sun 8s ease-in-out infinite alternate;
}
.scn-armado-moth-letter .desk {
  position: absolute;
  bottom: 18%;
  left: 10%;
  right: 10%;
  height: 28%;
  background: linear-gradient(180deg, #8B5A2B 0%, #5C3A1A 100%);
  border-radius: 8px;
  box-shadow: 0 -5px 15px rgba(0,0,0,0.3);
  animation: am-desk 12s ease-in-out infinite;
}
.scn-armado-moth-letter .letter {
  position: absolute;
  bottom: 34%;
  left: 32%;
  width: 58px;
  height: 76px;
  background: #FFFDD0;
  border-radius: 2px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.2);
  animation: am-letter 6s ease-in-out infinite alternate;
}
.scn-armado-moth-letter .quill {
  position: absolute;
  bottom: 44%;
  left: 42%;
  width: 36px;
  height: 4px;
  background: linear-gradient(90deg, #333, #666);
  border-radius: 50%;
  transform-origin: left center;
  animation: am-quill 3s ease-in-out infinite alternate;
}
.scn-armado-moth-letter .key {
  position: absolute;
  bottom: 36%;
  left: 56%;
  width: 18px;
  height: 28px;
  background: #c0a050;
  border-radius: 40% 40% 0 0;
  box-shadow: 0 0 10px #ffd700;
  animation: am-key 5s ease-in-out infinite;
}
.scn-armado-moth-letter .armado {
  position: absolute;
  bottom: 18%;
  left: 18%;
  width: 38px;
  height: 95px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: am-figure1 4s ease-in-out infinite;
}
.scn-armado-moth-letter .moth {
  position: absolute;
  bottom: 28%;
  left: 62%;
  width: 22px;
  height: 48px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: am-figure2 6s ease-in-out infinite;
}

@keyframes am-sky {
  0% { background-position: 0% 0%; }
  50% { background-position: 100% 0%; }
  100% { background-position: 0% 0%; }
}
@keyframes am-sun {
  0% { transform: scale(0.9); opacity: 0.8; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1); opacity: 0.9; }
}
@keyframes am-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes am-letter {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg) translateX(2px); }
  100% { transform: rotate(-1deg); }
}
@keyframes am-quill {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-15deg); }
}
@keyframes am-key {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes am-figure1 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes am-figure2 {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(0); }
}

/* ---- scene costard-pun ---- */
.scn-costard-pun {
  background: linear-gradient(180deg, #87CEEB 0%, #7ec8e3 100%),
              radial-gradient(ellipse at 50% 0%, #fffacd 0%, transparent 70%);
}
.scn-costard-pun .sky {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, transparent 30%, rgba(255,200,100,0.12) 70%);
  background-size: 200% 100%;
  animation: cp-sky 20s linear infinite alternate;
}
.scn-costard-pun .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 28%;
  background: linear-gradient(180deg, #7CFC00 0%, #32CD32 100%);
  border-radius: 80% 80% 0 0 / 30% 30% 0 0;
  animation: cp-ground 10s ease-in-out infinite alternate;
}
.scn-costard-pun .plantain {
  position: absolute;
  bottom: 28%;
  left: 44%;
  width: 68px;
  height: 28px;
  background: #228B22;
  border-radius: 50% 50% 20% 20%;
  transform: rotate(-20deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: cp-plantain 4s ease-in-out infinite;
}
.scn-costard-pun .figure {
  position: absolute;
  bottom: 18%;
  left: 28%;
  width: 34px;
  height: 88px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: cp-figure 3s ease-in-out infinite;
}
.scn-costard-pun .laugh-lines {
  position: absolute;
  bottom: 54%;
  left: 28%;
  width: 48px;
  height: 18px;
  background: transparent;
  border-top: 2px solid #333;
  border-bottom: 2px solid #333;
  border-radius: 50%;
  transform: rotate(-10deg);
  animation: cp-laugh 1.5s ease-in-out infinite;
}
.scn-costard-pun .sun {
  position: absolute;
  top: 10%;
  left: 16%;
  width: 48px;
  height: 48px;
  background: radial-gradient(circle, #fff5d0 0%, #ffd700 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px #ffd700;
  animation: cp-sun 6s ease-in-out infinite;
}

@keyframes cp-sky {
  0% { background-position: 0% 0%; }
  50% { background-position: 100% 0%; }
  100% { background-position: 0% 0%; }
}
@keyframes cp-ground {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.95); }
  100% { transform: scaleY(1); }
}
@keyframes cp-plantain {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-3px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes cp-figure {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-5deg) translateY(-2px); }
  50% { transform: rotate(5deg) translateY(-1px); }
  75% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes cp-laugh {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.5; transform: scale(1); }
}
@keyframes cp-sun {
  0% { transform: scale(0.9); opacity: 0.8; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1); opacity: 0.9; }
}

/* ---- scene armado-enfranchises ---- */
.scn-armado-enfranchises {
  background: linear-gradient(180deg, #87CEEB 0%, #f5d6a0 100%),
              radial-gradient(ellipse at 80% 20%, #fffacd 0%, transparent 60%);
}
.scn-armado-enfranchises .sky {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, transparent 30%, rgba(255,200,100,0.12) 70%);
  background-size: 200% 100%;
  animation: ae-sky 20s linear infinite alternate;
}
.scn-armado-enfranchises .cage {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 76px;
  height: 95px;
  border: 4px solid #5C4033;
  background: rgba(0,0,0,0.08);
  border-radius: 10px;
  transform: translateX(-50%);
  animation: ae-cage 8s ease-in-out infinite;
}
.scn-armado-enfranchises .goose {
  position: absolute;
  bottom: 36%;
  left: 38%;
  width: 38px;
  height: 28px;
  background: #fff;
  border-radius: 50% 50% 30% 30%;
  animation: ae-goose 6s ease-in-out infinite;
}
.scn-armado-enfranchises .armado {
  position: absolute;
  bottom: 18%;
  left: 18%;
  width: 34px;
  height: 88px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ae-figure1 4s ease-in-out infinite;
}
.scn-armado-enfranchises .freed {
  position: absolute;
  bottom: 18%;
  left: 56%;
  width: 34px;
  height: 88px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ae-figure2 5s ease-in-out infinite;
}
.scn-armado-enfranchises .sunrays {
  position: absolute;
  top: 8%;
  left: 28%;
  width: 90px;
  height: 90px;
  background: radial-gradient(ellipse, #fff5d0 0%, transparent 60%);
  border-radius: 50%;
  animation: ae-rays 10s linear infinite;
}

@keyframes ae-sky {
  0% { background-position: 0% 0%; }
  50% { background-position: 100% 0%; }
  100% { background-position: 0% 0%; }
}
@keyframes ae-cage {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes ae-goose {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ae-figure1 {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes ae-figure2 {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(10px) rotate(1deg); }
  100% { transform: translateX(20px) rotate(0deg); }
}
@keyframes ae-rays {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.5; transform: scale(1); }
}

/* ---- scene biron-costard-meeting ---- */
.scn-biron-costard-meeting {
  background: linear-gradient(180deg, #87CEEB 0%, #f5d6a0 50%, #eec373 100%),
              radial-gradient(ellipse at 50% 100%, #fffacd 0%, transparent 60%);
}
.scn-biron-costard-meeting .sky {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, transparent 30%, rgba(255,200,100,0.12) 70%);
  background-size: 200% 100%;
  animation: bc-sky 20s linear infinite alternate;
}
.scn-biron-costard-meeting .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 18%;
  background: linear-gradient(180deg, #7CFC00 0%, #228B22 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: bc-ground 12s ease-in-out infinite;
}
.scn-biron-costard-meeting .biron {
  position: absolute;
  bottom: 18%;
  left: 22%;
  width: 34px;
  height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bc-figure1 5s ease-in-out infinite;
}
.scn-biron-costard-meeting .costard {
  position: absolute;
  bottom: 18%;
  right: 22%;
  width: 34px;
  height: 90px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bc-figure2 4s ease-in-out infinite;
}
.scn-biron-costard-meeting .ribbon {
  position: absolute;
  bottom: 38%;
  left: 28%;
  right: 28%;
  height: 8px;
  background: #c8553d;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: bc-ribbon 3s ease-in-out infinite;
}
.scn-biron-costard-meeting .sun {
  position: absolute;
  top: 12%;
  right: 22%;
  width: 50px;
  height: 50px;
  background: radial-gradient(circle, #fff5d0 0%, #ffd700 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px #ffd700;
  animation: bc-sun 8s ease-in-out infinite alternate;
}

@keyframes bc-sky {
  0% { background-position: 0% 0%; }
  50% { background-position: 100% 0%; }
  100% { background-position: 0% 0%; }
}
@keyframes bc-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes bc-figure1 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bc-figure2 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bc-ribbon {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(1); }
}
@keyframes bc-sun {
  0% { transform: scale(0.9); opacity: 0.8; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1); opacity: 0.9; }
}

/* scene: armado-moth-banter (am) */
.scn-armado-moth-banter { background: linear-gradient(180deg, #87CEEB 0%, #FFD700 100%), radial-gradient(circle at 20% 30%, #FFF8DC 0%, transparent 50%); }
.scn-armado-moth-banter .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #B0E0E6 0%, transparent 100%); animation: am-sky 6s ease-in-out infinite alternate; }
.scn-armado-moth-banter .sun { position: absolute; top: 15%; right: 20%; width: 60px; height: 60px; background: radial-gradient(circle, #FFF8DC 0%, #FFD700 70%); border-radius: 50%; box-shadow: 0 0 40px 15px #FFD700; animation: am-sun 4s ease-in-out infinite alternate; }
.scn-armado-moth-banter .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #556B2F 0%, #2E4A1E 100%); border-radius: 40% 60% 0 0 / 20% 30% 0 0; }
.scn-armado-moth-banter .figure-armado { position: absolute; bottom: 20%; left: 25%; width: 40px; height: 120px; background: linear-gradient(180deg, #4A2E1B 0%, #2E1A0E 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: am-sway 3s ease-in-out infinite; }
.scn-armado-moth-banter .figure-moth { position: absolute; bottom: 20%; right: 30%; width: 30px; height: 70px; background: linear-gradient(180deg, #6B4E3A 0%, #3A271E 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: am-bounce 2s ease-in-out infinite; }
.scn-armado-moth-banter .flower { position: absolute; bottom: 25%; right: 25%; width: 10px; height: 20px; background: #C8553D; border-radius: 50%; transform-origin: bottom center; animation: am-flower 3.5s ease-in-out infinite; }
@keyframes am-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes am-sun { 0% { transform: scale(0.95); box-shadow: 0 0 30px 10px #FFD700; } 50% { transform: scale(1.05); box-shadow: 0 0 50px 20px #FFD700; } 100% { transform: scale(1); box-shadow: 0 0 40px 15px #FFD700; } }
@keyframes am-sway { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes am-bounce { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-10px) rotate(0deg); } 50% { transform: translateY(0) rotate(5deg); } 75% { transform: translateY(-5px) rotate(0deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes am-flower { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(10deg) scale(1.1); } 100% { transform: rotate(0deg) scale(1); } }

/* scene: armado-love-talk (lt) */
.scn-armado-love-talk { background: linear-gradient(180deg, #8B4513 0%, #3E1F0A 100%), radial-gradient(circle at 50% 50%, #D2B48C 0%, transparent 70%); }
.scn-armado-love-talk .table-top { position: absolute; inset: 10%; background: linear-gradient(135deg, #2E4A1E 0%, #1A2E12 100%); border-radius: 20px; box-shadow: inset 0 0 30px rgba(0,0,0,0.7); }
.scn-armado-love-talk .dice { position: absolute; width: 40px; height: 40px; background: linear-gradient(135deg, #FFF 0%, #D3D3D3 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-armado-love-talk .dice-1 { top: 30%; left: 30%; animation: lt-spin-1 2s ease-in-out infinite; }
.scn-armado-love-talk .dice-2 { top: 50%; right: 25%; animation: lt-spin-2 2.5s ease-in-out infinite; }
.scn-armado-love-talk .arm-left { position: absolute; bottom: 15%; left: 5%; width: 60px; height: 30px; background: linear-gradient(180deg, #D2B48C 0%, #A0826A 100%); border-radius: 40% 20% 20% 40% / 50% 30% 30% 50%; transform-origin: right center; animation: lt-reach-left 3s ease-in-out infinite; }
.scn-armado-love-talk .arm-right { position: absolute; bottom: 10%; right: 5%; width: 70px; height: 25px; background: linear-gradient(180deg, #D2B48C 0%, #A0826A 100%); border-radius: 20% 40% 40% 20% / 30% 50% 50% 30%; transform-origin: left center; animation: lt-reach-right 3.2s ease-in-out infinite; }
@keyframes lt-spin-1 { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(180deg) translateX(10px); } 100% { transform: rotate(360deg) translateX(0); } }
@keyframes lt-spin-2 { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-270deg) scale(0.9); } 100% { transform: rotate(-540deg) scale(1); } }
@keyframes lt-reach-left { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-10px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes lt-reach-right { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-5px); } 100% { transform: rotate(10deg) translateY(0); } }

/* scene: armado-declares-love (dl) */
.scn-armado-declares-love { background: linear-gradient(180deg, #5C4033 0%, #2E1A0E 100%), radial-gradient(circle at 50% 30%, #8B5A3C 0%, transparent 70%); }
.scn-armado-declares-love .wall { position: absolute; inset: 0; background: linear-gradient(180deg, #6B4E3A 0%, #3A271E 100%); }
.scn-armado-declares-love .window-arch { position: absolute; top: 10%; left: 50%; transform: translateX(-50%); width: 120px; height: 180px; background: linear-gradient(180deg, #FFF8DC 0%, #FFD700 100%); border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%; box-shadow: inset 0 0 40px #FFF8DC; }
.scn-armado-declares-love .light-shaft { position: absolute; top: 10%; left: 50%; transform: translateX(-50%); width: 80px; height: 100%; background: linear-gradient(180deg, rgba(255,248,220,0.4) 0%, transparent 100%); animation: dl-shaft 5s ease-in-out infinite alternate; }
.scn-armado-declares-love .figure-armado { position: absolute; bottom: 20%; left: 25%; width: 50px; height: 100px; background: linear-gradient(180deg, #2E1A0E 0%, #1A0E06 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dl-kneel 4s ease-in-out infinite; }
.scn-armado-declares-love .figure-jaquenetta { position: absolute; bottom: 15%; right: 20%; width: 40px; height: 120px; background: linear-gradient(180deg, #B87878 0%, #6B3A3A 100%); border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%; transform-origin: bottom center; animation: dl-stand 3s ease-in-out infinite alternate; }
.scn-armado-declares-love .heart { position: absolute; top: 40%; left: 45%; width: 20px; height: 20px; background: #C8553D; transform: rotate(45deg); border-radius: 50% 50% 0 50%; box-shadow: 0 0 20px #C8553D; animation: dl-heart 2s ease-in-out infinite; }
@keyframes dl-shaft { 0% { opacity: 0.3; transform: translateX(-50%) scaleX(0.8); } 50% { opacity: 0.6; transform: translateX(-50%) scaleX(1.1); } 100% { opacity: 0.4; transform: translateX(-50%) scaleX(0.9); } }
@keyframes dl-kneel { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-5px) rotate(0deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes dl-stand { 0% { transform: rotate(0deg); } 100% { transform: rotate(5deg); } }
@keyframes dl-heart { 0% { transform: rotate(45deg) scale(0.8); opacity: 0.7; } 50% { transform: rotate(45deg) scale(1.2); opacity: 1; } 100% { transform: rotate(45deg) scale(0.8); opacity: 0.7; } }

/* scene: armado-soliloquy (sq) */
.scn-armado-soliloquy { background: linear-gradient(180deg, #8B6B4A 0%, #4A3520 100%), radial-gradient(circle at 50% 80%, #D2B48C 0%, transparent 70%); }
.scn-armado-soliloquy .ground { position: absolute; inset: 0; background: linear-gradient(180deg, #6B4E3A 0%, #2E1A0E 100%); border-radius: 20% 80% 0 0 / 10% 90% 0 0; }
.scn-armado-soliloquy .shoe-print { position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%); width: 40px; height: 60px; background: rgba(0,0,0,0.4); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; animation: sq-print 6s ease-in-out infinite; }
.scn-armado-soliloquy .shadow-shoe { position: absolute; bottom: 45%; left: 60%; width: 50px; height: 70px; background: rgba(0,0,0,0.6); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(-15deg); animation: sq-hover 4s ease-in-out infinite alternate; }
.scn-armado-soliloquy .flower { position: absolute; bottom: 35%; left: 45%; width: 15px; height: 25px; background: #B87878; border-radius: 50%; transform-origin: bottom center; animation: sq-wilt 5s ease-in-out infinite; }
.scn-armado-soliloquy .dewdrop { position: absolute; bottom: 20%; left: 48%; width: 6px; height: 6px; background: #FFF; border-radius: 50%; box-shadow: 0 0 6px #FFF; animation: sq-slide 3s ease-in-out infinite; }
@keyframes sq-print { 0% { transform: translateX(-50%) scaleY(0.5); opacity: 0.3; } 50% { transform: translateX(-50%) scaleY(1); opacity: 0.8; } 100% { transform: translateX(-50%) scaleY(0.5); opacity: 0.3; } }
@keyframes sq-hover { 0% { transform: rotate(-15deg) translateX(0) translateY(0); } 50% { transform: rotate(-10deg) translateX(10px) translateY(-15px); } 100% { transform: rotate(-15deg) translateX(0) translateY(0); } }
@keyframes sq-wilt { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-20deg) scale(0.8); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes sq-slide { 0% { transform: translate(0, 0); opacity: 0; } 50% { transform: translate(-5px, 20px); opacity: 1; } 100% { transform: translate(-10px, 40px); opacity: 0; } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.accent { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
/* scene: russian-disguise-dance */
.scn-russian-disguise-dance {
  background: linear-gradient(180deg, #fce4a8 0%, #f7d06a 50%, #e5b84c 100%),
              radial-gradient(ellipse at 50% 20%, #fff6d6 0%, transparent 70%);
}
.scn-russian-disguise-dance .sky-rdd {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #fce4a8 0%, transparent 100%);
  animation: rdd-sky 15s ease-in-out infinite alternate;
}
.scn-russian-disguise-dance .stage-rdd {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #c8a45a 0%, #a07e38 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: rdd-stage 8s ease-in-out infinite;
}
.scn-russian-disguise-dance .figure-a-rdd {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rdd-dance-a 2s ease-in-out infinite alternate;
}
.scn-russian-disguise-dance .figure-b-rdd {
  position: absolute; bottom: 30%; right: 30%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rdd-dance-b 2.4s ease-in-out infinite alternate;
}
.scn-russian-disguise-dance .mask-a-rdd {
  position: absolute; bottom: 50%; left: 30%; width: 20px; height: 14px;
  background: radial-gradient(circle at 30% 30%, #ffcc66 0%, #e69933 70%);
  border-radius: 50%; transform: translateX(-50%);
  box-shadow: 0 0 12px 4px rgba(230,153,51,0.6);
  animation: rdd-mask 6s ease-in-out infinite, rdd-float 3s ease-in-out infinite alternate;
}
.scn-russian-disguise-dance .mask-b-rdd {
  position: absolute; bottom: 50%; right: 30%; width: 20px; height: 14px;
  background: radial-gradient(circle at 70% 30%, #ffcc66 0%, #e69933 70%);
  border-radius: 50%; transform: translateX(50%);
  box-shadow: 0 0 12px 4px rgba(230,153,51,0.6);
  animation: rdd-mask 6s ease-in-out infinite 0.5s, rdd-float 3.2s ease-in-out infinite alternate 0.5s;
}
.scn-russian-disguise-dance .curtain-rdd {
  position: absolute; top: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 50%, #7a3010 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: rdd-curtain 10s ease-in-out infinite alternate;
}
@keyframes rdd-sky     { 0% { opacity:0.8 } 50%{ opacity:1 } 100%{ opacity:0.7 } }
@keyframes rdd-stage   { 0%{ transform: translateY(0) } 50%{ transform: translateY(-2px) } 100%{ transform: translateY(0) } }
@keyframes rdd-dance-a { 0%{ transform: rotate(-15deg) translateY(0) } 50%{ transform: rotate(10deg) translateY(-3px) } 100%{ transform: rotate(-5deg) translateY(0) } }
@keyframes rdd-dance-b { 0%{ transform: rotate(10deg) translateY(-2px) } 50%{ transform: rotate(-15deg) translateY(0) } 100%{ transform: rotate(5deg) translateY(-2px) } }
@keyframes rdd-mask    { 0%{ opacity:0.7; transform:scale(0.9) } 50%{ opacity:1; transform:scale(1.1) } 100%{ opacity:0.8; transform:scale(1) } }
@keyframes rdd-float   { 0%{ transform: translateY(0) } 100%{ transform: translateY(-8px) } }
@keyframes rdd-curtain { 0%{ transform: translateY(0) } 50%{ transform: translateY(2px) } 100%{ transform: translateY(0) } }

/* scene: lords-return-confess */
.scn-lords-return-confess {
  background: linear-gradient(180deg, #f9d88c 0%, #f2c364 40%, #dfa94a 100%),
              radial-gradient(ellipse at 50% 0%, #fff2cc 0%, transparent 60%);
}
.scn-lords-return-confess .sky-lrc {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f9d88c 0%, transparent 100%);
  animation: lrc-sky 18s ease-in-out infinite alternate;
}
.scn-lords-return-confess .garden-lrc {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b8a05a 0%, #8a7a38 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: lrc-garden 12s ease-in-out infinite alternate;
}
.scn-lords-return-confess .arch-lrc {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a45a 0%, #a07e38 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: lrc-arch 8s ease-in-out infinite;
}
.scn-lords-return-confess .figure-lrc {
  position: absolute; bottom: 35%; left: 42%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1a12 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lrc-stand 4s ease-in-out infinite alternate;
}
.scn-lords-return-confess .kneeling-lrc {
  position: absolute; bottom: 34%; left: 52%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a12 0%, #0a0604 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lrc-kneel 3s ease-in-out infinite alternate;
}
.scn-lords-return-confess .flower-lrc {
  position: absolute; bottom: 40%; left: 46%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ff99aa 0%, #d96b82 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(217,107,130,0.5);
  animation: lrc-flower 5s ease-in-out infinite alternate;
}
@keyframes lrc-sky     { 0%{ opacity:0.9 } 50%{ opacity:1 } 100%{ opacity:0.8 } }
@keyframes lrc-garden  { 0%{ transform: translateY(0) } 50%{ transform: translateY(-3px) } 100%{ transform: translateY(0) } }
@keyframes lrc-arch    { 0%{ transform: translateX(-50%) scaleY(1) } 50%{ transform: translateX(-50%) scaleY(1.02) } 100%{ transform: translateX(-50%) scaleY(1) } }
@keyframes lrc-stand   { 0%{ transform: rotate(-5deg) } 50%{ transform: rotate(5deg) } 100%{ transform: rotate(-3deg) } }
@keyframes lrc-kneel   { 0%{ transform: rotate(0deg) translateY(0) } 50%{ transform: rotate(5deg) translateY(-2px) } 100%{ transform: rotate(-2deg) translateY(0) } }
@keyframes lrc-flower  { 0%{ transform: scale(0.8) opacity(0.6) } 50%{ transform: scale(1.2) opacity(1) } 100%{ transform: scale(0.9) opacity(0.7) } }

/* scene: french-king-death */
.scn-french-king-death {
  background: linear-gradient(180deg, #f5d76e 0%, #e0b84a 40%, #c8942e 100%),
              radial-gradient(ellipse at 50% 100%, #d49a3a 0%, transparent 70%);
}
.scn-french-king-death .sky-fkd {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #f5d76e 0%, transparent 100%);
  animation: fkd-sky 20s ease-in-out infinite alternate;
}
.scn-french-king-death .stage-fkd {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a07e38 0%, #7a5e20 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: fkd-stage 8s ease-in-out infinite alternate;
}
.scn-french-king-death .hector-fkd {
  position: absolute; bottom: 22%; left: 40%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fkd-hector 3s ease-in-out infinite alternate;
}
.scn-french-king-death .messenger-fkd {
  position: absolute; bottom: 25%; right: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fkd-messenger 4s ease-in-out infinite alternate;
}
.scn-french-king-death .shadow-fkd {
  position: absolute; bottom: 20%; left: 35%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: fkd-shadow 6s ease-in-out infinite alternate;
}
.scn-french-king-death .curtain-fkd {
  position: absolute; top: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #a0461a 0%, #7a3010 100%);
  border-radius: 0 0 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: fkd-curtain 12s ease-in-out infinite alternate;
}
@keyframes fkd-sky       { 0%{ opacity:0.85 } 50%{ opacity:1 } 100%{ opacity:0.7 } }
@keyframes fkd-stage     { 0%{ transform: translateY(0) } 50%{ transform: translateY(-2px) } 100%{ transform: translateY(0) } }
@keyframes fkd-hector    { 0%{ transform: rotate(-10deg) } 50%{ transform: rotate(5deg) } 100%{ transform: rotate(-5deg) } }
@keyframes fkd-messenger { 0%{ transform: translateX(0) } 50%{ transform: translateX(-5px) } 100%{ transform: translateX(2px) } }
@keyframes fkd-shadow    { 0%{ transform: scaleX(1) } 50%{ transform: scaleX(0.9) } 100%{ transform: scaleX(1) } }
@keyframes fkd-curtain   { 0%{ transform: translateY(0) } 50%{ transform: translateY(2px) } 100%{ transform: translateY(0) } }

/* scene: play-ends-departure */
.scn-play-ends-departure {
  background: linear-gradient(180deg, #fce4a8 0%, #f5d076 40%, #e0b84a 100%),
              radial-gradient(ellipse at 50% 0%, #fff6d6 0%, transparent 60%);
}
.scn-play-ends-departure .sky-ped {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fce4a8 0%, transparent 100%);
  animation: ped-sky 25s ease-in-out infinite alternate;
}
.scn-play-ends-departure .horizon-ped {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 8%;
  background: linear-gradient(90deg, #d4a84a 0%, #b89238 100%);
  border-radius: 0;
  animation: ped-horizon 14s ease-in-out infinite alternate;
}
.scn-play-ends-departure .path-ped {
  position: absolute; bottom: 0; left: 40%; right: 40%; height: 35%;
  background: linear-gradient(180deg, #c8a45a 0%, #a07e38 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.15);
  animation: ped-path 10s ease-in-out infinite alternate;
}
.scn-play-ends-departure .figure-left-ped {
  position: absolute; bottom: 38%; left: 30%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1a12 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ped-walk-left 6s ease-in-out infinite alternate;
}
.scn-play-ends-departure .figure-right-ped {
  position: absolute; bottom: 38%; right: 30%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1a12 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ped-walk-right 6s ease-in-out infinite alternate 0.5s;
}
.scn-play-ends-departure .cloud-ped {
  position: absolute; top: 15%; left: 20%; width: 80px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ped-cloud 40s linear infinite;
}
@keyframes ped-sky       { 0%{ opacity:0.9 } 50%{ opacity:1 } 100%{ opacity:0.8 } }
@keyframes ped-horizon   { 0%{ transform: translateY(0) } 50%{ transform: translateY(-2px) } 100%{ transform: translateY(0) } }
@keyframes ped-path      { 0%{ transform: scaleY(1) } 50%{ transform: scaleY(0.98) } 100%{ transform: scaleY(1) } }
@keyframes ped-walk-left { 0%{ transform: translateX(0) rotate(-3deg) } 50%{ transform: translateX(-8px) rotate(2deg) } 100%{ transform: translateX(-14px) rotate(-1deg) } }
@keyframes ped-walk-right{ 0%{ transform: translateX(0) rotate(3deg) } 50%{ transform: translateX(8px) rotate(-2deg) } 100%{ transform: translateX(14px) rotate(1deg) } }
@keyframes ped-cloud     { 0%{ transform: translateX(-30px) } 100%{ transform: translateX(120vw) } }

.scn-propose-academic-oath {
  background: 
    linear-gradient(180deg, #ffe8c0 0%, #f5d0a0 30%, #c8a070 70%, #8b6b40 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-propose-academic-oath .throne {
  position: absolute;
  bottom: 8%;
  left: 50%;
  transform: translateX(-50%);
  width: 120px;
  height: 180px;
  background: linear-gradient(135deg, #b8962a 0%, #7a631a 60%, #4a3e0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.4), inset 0 -10px 20px rgba(0,0,0,0.3);
  animation: oath-throne 6s ease-in-out infinite alternate;
}
.scn-propose-academic-oath .king {
  position: absolute;
  bottom: 12%;
  left: 50%;
  transform: translateX(-50%);
  width: 50px;
  height: 100px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: oath-figure 4s ease-in-out infinite;
}
.scn-propose-academic-oath .lord-left {
  position: absolute;
  bottom: 10%;
  left: 30%;
  width: 40px;
  height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-10deg);
  animation: oath-bow 5s ease-in-out infinite alternate;
}
.scn-propose-academic-oath .lord-right {
  position: absolute;
  bottom: 10%;
  right: 30%;
  width: 40px;
  height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(10deg);
  animation: oath-bow 5s ease-in-out infinite alternate-reverse;
}
.scn-propose-academic-oath .oath-scroll {
  position: absolute;
  bottom: 25%;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 40px;
  background: linear-gradient(180deg, #f5e6c0 0%, #d4b88a 100%);
  border-radius: 5px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: oath-scroll 3s ease-in-out infinite alternate;
}
.scn-propose-academic-oath .sun-ray {
  position: absolute;
  top: 0;
  left: 20%;
  width: 60%;
  height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 80%);
  clip-path: polygon(0% 0%, 100% 0%, 60% 100%, 40% 100%);
  animation: oath-sunray 8s ease-in-out infinite alternate;
}
.scn-propose-academic-oath .column-left {
  position: absolute;
  top: 20%;
  left: 10%;
  width: 20px;
  height: 70%;
  background: linear-gradient(180deg, #b8a070 0%, #8c6a40 100%);
  border-radius: 4px;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.3);
}
.scn-propose-academic-oath .column-right {
  position: absolute;
  top: 20%;
  right: 10%;
  width: 20px;
  height: 70%;
  background: linear-gradient(180deg, #b8a070 0%, #8c6a40 100%);
  border-radius: 4px;
  box-shadow: inset 4px 0 8px rgba(0,0,0,0.3);
}
@keyframes oath-throne {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(0.98); }
}
@keyframes oath-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes oath-bow {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-12deg) translateY(0); }
}
@keyframes oath-scroll {
  0% { transform: translateX(-50%) scaleX(1) translateY(0); }
  50% { transform: translateX(-50%) scaleX(1.05) translateY(-2px); }
  100% { transform: translateX(-50%) scaleX(0.95) translateY(0); }
}
@keyframes oath-sunray {
  0% { opacity: 0.5; transform: translateY(0); }
  50% { opacity: 0.8; transform: translateY(-5px); }
  100% { opacity: 0.6; transform: translateY(5px); }
}

.scn-biron-resists-oath {
  background: 
    linear-gradient(180deg, #ffe0b0 0%, #e0b880 40%, #a08050 75%, #604020 100%),
    radial-gradient(ellipse at 30% 20%, rgba(255,240,200,0.5) 0%, transparent 70%);
}
.scn-biron-resists-oath .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #6a5030 0%, #3a2a18 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.4);
}
.scn-biron-resists-oath .biron {
  position: absolute;
  bottom: 30%;
  left: 25%;
  width: 45px;
  height: 120px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 40% 30% 40% / 60% 40% 30% 40%;
  transform: rotate(15deg);
  animation: biron-defy 4s ease-in-out infinite;
}
.scn-biron-resists-oath .lord-mock-1 {
  position: absolute;
  bottom: 30%;
  left: 45%;
  width: 40px;
  height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  animation: lord-mock 6s ease-in-out infinite alternate;
}
.scn-biron-resists-oath .lord-mock-2 {
  position: absolute;
  bottom: 30%;
  right: 20%;
  width: 40px;
  height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(5deg);
  animation: lord-mock 6s ease-in-out infinite alternate-reverse;
}
.scn-biron-resists-oath .king-throne {
  position: absolute;
  bottom: 20%;
  left: 70%;
  width: 80px;
  height: 140px;
  background: linear-gradient(135deg, #b8962a 0%, #7a631a 60%, #4a3e0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: throne-sway 7s ease-in-out infinite alternate;
}
.scn-biron-resists-oath .shadow-stripe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, transparent 40%, rgba(0,0,0,0.15) 50%, transparent 60%);
  animation: stripe-move 12s linear infinite;
}
.scn-biron-resists-oath .light-shaft {
  position: absolute;
  top: 0;
  left: 20%;
  width: 30%;
  height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.2) 0%, transparent 80%);
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%);
  animation: shaft-pulse 9s ease-in-out infinite alternate;
}
@keyframes biron-defy {
  0% { transform: rotate(15deg) translateY(0) scaleX(1); }
  50% { transform: rotate(18deg) translateY(-5px) scaleX(1.05); }
  100% { transform: rotate(12deg) translateY(2px) scaleX(0.98); }
}
@keyframes lord-mock {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-3px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes throne-sway {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(1deg); }
  100% { transform: translateY(2px) rotate(-1deg); }
}
@keyframes stripe-move {
  0% { transform: translateX(-20%); }
  50% { transform: translateX(0%); }
  100% { transform: translateX(20%); }
}
@keyframes shaft-pulse {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.05); }
  100% { opacity: 0.4; transform: scaleY(0.95); }
}

.scn-princess-arrival-news {
  background: 
    linear-gradient(180deg, #c8e0ff 0%, #8ab4e0 40%, #5a8ab0 70%, #2a4a6a 100%),
    radial-gradient(ellipse at 70% 30%, rgba(255,240,200,0.4) 0%, transparent 60%);
}
.scn-princess-arrival-news .sky {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 60%;
  background: linear-gradient(180deg, #a0c8f0 0%, #c8e0ff 30%, transparent 100%);
  animation: sky-move 15s ease-in-out infinite alternate;
}
.scn-princess-arrival-news .castle-gate {
  position: absolute;
  bottom: 10%;
  left: 50%;
  transform: translateX(-50%);
  width: 200px;
  height: 250px;
  background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.5);
}
.scn-princess-arrival-news .herald {
  position: absolute;
  bottom: 15%;
  left: 30%;
  width: 30px;
  height: 80px;
  background: linear-gradient(180deg, #8a6a3a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: herald-run 3s ease-in-out infinite;
}
.scn-princess-arrival-news .princess-carriage {
  position: absolute;
  bottom: 8%;
  right: 20%;
  width: 120px;
  height: 80px;
  background: linear-gradient(135deg, #c0a060 0%, #806040 100%);
  border-radius: 30% 30% 15% 15% / 40% 40% 15% 15%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.3);
  animation: carriage-bounce 5s ease-in-out infinite;
}
.scn-princess-arrival-news .road {
  position: absolute;
  bottom: 5%;
  left: 0;
  right: 0;
  height: 10%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}
.scn-princess-arrival-news .dust-cloud {
  position: absolute;
  bottom: 8%;
  left: 25%;
  width: 80px;
  height: 30px;
  background: radial-gradient(circle, rgba(200,180,140,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: dust-waft 8s ease-in-out infinite alternate;
}
.scn-princess-arrival-news .sunburst {
  position: absolute;
  top: 5%;
  left: 20%;
  width: 120px;
  height: 120px;
  background: radial-gradient(circle, rgba(255,240,200,0.6) 0%, transparent 70%);
  filter: blur(12px);
  animation: sunburst-glow 6s ease-in-out infinite alternate;
}
@keyframes sky-move {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-5px) scaleY(1.02); }
  100% { transform: translateY(3px) scaleY(0.98); }
}
@keyframes herald-run {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  50% { transform: translateX(10px) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes carriage-bounce {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-6px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes dust-waft {
  0% { transform: translateX(0) scale(1); opacity: 0.5; }
  50% { transform: translateX(-20px) scale(1.2); opacity: 0.8; }
  100% { transform: translateX(10px) scale(0.8); opacity: 0.3; }
}
@keyframes sunburst-glow {
  0% { transform: scale(0.9); opacity: 0.4; }
  50% { transform: scale(1.1); opacity: 0.8; }
  100% { transform: scale(1); opacity: 0.6; }
}

.scn-costards-accusation {
  background: 
    linear-gradient(180deg, #ffe8b0 0%, #f0c880 40%, #c09050 70%, #806030 100%),
    radial-gradient(ellipse at 40% 50%, rgba(255,255,200,0.3) 0%, transparent 70%);
}
.scn-costards-accusation .stage-floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.4);
}
.scn-costards-accusation .king-throne {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 90px;
  height: 140px;
  background: linear-gradient(135deg, #c8a030 0%, #8a6a20 60%, #4a2a10 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: throne-wobble 4s ease-in-out infinite alternate;
}
.scn-costards-accusation .costard {
  position: absolute;
  bottom: 25%;
  left: 55%;
  width: 50px;
  height: 110px;
  background: linear-gradient(180deg, #5a4a2a 0%, #2a1a0a 100%);
  border-radius: 50% 40% 30% 40% / 60% 50% 30% 40%;
  transform: rotate(-10deg);
  animation: costard-plead 3s ease-in-out infinite;
}
.scn-costards-accusation .biron-smirk {
  position: absolute;
  bottom: 20%;
  left: 40%;
  width: 35px;
  height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(8deg);
  animation: biron-laugh 5s ease-in-out infinite;
}
.scn-costards-accusation .letter {
  position: absolute;
  top: 35%;
  left: 50%;
  transform: translateX(-50%);
  width: 50px;
  height: 35px;
  background: linear-gradient(135deg, #f5e6c0 0%, #d4b88a 100%);
  border-radius: 3px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: letter-flip 7s ease-in-out infinite;
}
.scn-costards-accusation .guard-spear {
  position: absolute;
  bottom: 28%;
  left: 70%;
  width: 8px;
  height: 120px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a18 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: spear-sway 6s ease-in-out infinite alternate;
}
.scn-costards-accusation .jester-cap {
  position: absolute;
  top: 5%;
  right: 10%;
  width: 50px;
  height: 30px;
  background: linear-gradient(135deg, #e0a040 0%, #c08030 50%, #a06020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  transform: rotate(15deg);
  animation: jester-bob 3s ease-in-out infinite alternate;
}
@keyframes throne-wobble {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  50% { transform: translateY(-3px) rotate(1deg) scale(1.02); }
  100% { transform: translateY(2px) rotate(-1deg) scale(0.98); }
}
@keyframes costard-plead {
  0% { transform: rotate(-10deg) translateY(0) scaleY(1); }
  50% { transform: rotate(-15deg) translateY(-4px) scaleY(1.03); }
  100% { transform: rotate(-8deg) translateY(0) scaleY(0.98); }
}
@keyframes biron-laugh {
  0% { transform: rotate(8deg) translateY(0) scaleX(1); }
  50% { transform: rotate(12deg) translateY(-2px) scaleX(1.05); }
  100% { transform: rotate(6deg) translateY(0) scaleX(0.98); }
}
@keyframes letter-flip {
  0% { transform: translateX(-50%) rotate(0deg) scale(1); }
  50% { transform: translateX(-50%) rotate(180deg) scale(1.1); }
  100% { transform: translateX(-50%) rotate(360deg) scale(1); }
}
@keyframes spear-sway {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-3px); }
  100% { transform: rotate(-7deg) translateY(0); }
}
@keyframes jester-bob {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(20deg) translateY(-5px); }
  100% { transform: rotate(10deg) translateY(0); }
}

/* armado-love-confession */
.scn-armado-love-confession {
  background: linear-gradient(180deg, #f5e6c8 0%, #e6c88a 30%, #c8a66a 60%, #a88a4a 100%), radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 60%);
}
.scn-armado-love-confession .sky-glow {
  position:absolute; inset:0 0 60% 0;
  background: linear-gradient(180deg, #ffe8b0 0%, #e6c88a 100%);
  animation: alc-skyglow 12s ease-in-out infinite alternate;
}
.scn-armado-love-confession .sun {
  position:absolute; top:8%; right:20%; width:60px; height:60px;
  background: radial-gradient(circle, #fff4cc 0%, #f5d080 50%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 80px 40px rgba(245,208,128,0.4);
  animation: alc-sun 9s ease-in-out infinite alternate;
}
.scn-armado-love-confession .tree-left {
  position:absolute; bottom:35%; left:5%; width:30px; height:120px;
  background: linear-gradient(0deg, #5a3a1a 0%, #7a4e2a 100%);
  border-radius: 10px 10px 0 0;
  animation: alc-tree 6s ease-in-out infinite;
}
.scn-armado-love-confession .tree-left::after {
  content:''; position:absolute; top:-40px; left:-20px; width:70px; height:60px;
  background: radial-gradient(circle at 50% 50%, #7a9a4a, #4a6a2a 60%, transparent);
  border-radius:50%;
  animation: alc-leaf 8s ease-in-out infinite alternate;
}
.scn-armado-love-confession .tree-right {
  position:absolute; bottom:35%; right:8%; width:25px; height:100px;
  background: linear-gradient(0deg, #4a301a 0%, #6a462a 100%);
  border-radius: 8px 8px 0 0;
  animation: alc-tree 7s ease-in-out infinite reverse;
}
.scn-armado-love-confession .tree-right::after {
  content:''; position:absolute; top:-30px; left:-15px; width:55px; height:50px;
  background: radial-gradient(circle at 50% 50%, #6a8a3a, #3a5a1a 60%, transparent);
  border-radius:50%;
  animation: alc-leaf 10s ease-in-out infinite alternate;
}
.scn-armado-love-confession .ground {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #b8a060 0%, #9a8840 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-armado-love-confession .figure.armado {
  position:absolute; bottom:32%; left:35%; width:22px; height:50px;
  background: linear-gradient(180deg, #d4553d 0%, #a83a2a 50%, #7a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: alc-armado 4s ease-in-out infinite;
}
.scn-armado-love-confession .figure.jaquenetta {
  position:absolute; bottom:32%; left:55%; width:20px; height:48px;
  background: linear-gradient(180deg, #b0a050 0%, #8a7a3a 50%, #5a4a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: alc-jaquenetta 5s ease-in-out infinite;
}
.scn-armado-love-confession .letter {
  position:absolute; bottom:40%; left:42%; width:14px; height:20px;
  background: linear-gradient(135deg, #f5e6c8 0%, #d4b88a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform-origin: bottom left;
  animation: alc-letter 6s ease-in-out infinite;
}
@keyframes alc-skyglow { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes alc-sun { 0% { transform: scale(0.9) } 50% { transform: scale(1.1) } 100% { transform: scale(1) } }
@keyframes alc-tree { 0% { transform: rotate(-1deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes alc-leaf { 0% { transform: scale(0.9) } 50% { transform: scale(1.1) } 100% { transform: scale(0.95) } }
@keyframes alc-armado { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(3deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes alc-jaquenetta { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(-1deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-1px) rotate(0) } 100% { transform: translateY(0) rotate(0) } }
@keyframes alc-letter { 0% { transform: translate(0,0) rotate(-5deg) } 25% { transform: translate(3px,-3px) rotate(5deg) } 50% { transform: translate(0,0) rotate(-3deg) } 75% { transform: translate(2px,-2px) rotate(3deg) } 100% { transform: translate(0,0) rotate(0) } }

/* armado-moth-banter */
.scn-armado-moth-banter {
  background: linear-gradient(180deg, #f0e0b0 0%, #d4c090 30%, #b8a870 60%, #9a8a50 100%), radial-gradient(ellipse at 30% 20%, #fff4d0 0%, transparent 70%);
}
.scn-armado-moth-banter .bg-sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #fff4c8 0%, #e0d0a0 100%);
  animation: amb-sky 15s ease-in-out infinite alternate;
}
.scn-armado-moth-banter .bg-garden {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #a8b860 0%, #78903a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
.scn-armado-moth-banter .bench {
  position:absolute; bottom:25%; left:40%; width:60px; height:10px;
  background: linear-gradient(90deg, #6a4a2a, #8a6a3a, #6a4a2a);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: amb-bench 8s ease-in-out infinite;
}
.scn-armado-moth-banter .armado {
  position:absolute; bottom:28%; left:45%; width:26px; height:60px;
  background: linear-gradient(180deg, #c84a3a 0%, #a03220 50%, #701a10 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: amb-armado 4s ease-in-out infinite;
}
.scn-armado-moth-banter .moth {
  position:absolute; bottom:30%; left:60%; width:14px; height:30px;
  background: linear-gradient(180deg, #d0b870 0%, #a08040 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: amb-moth 3s ease-in-out infinite;
}
.scn-armado-moth-banter .hat-moth {
  position:absolute; bottom:53%; left:62%; width:20px; height:8px;
  background: linear-gradient(90deg, #5a3a1a, #7a5a2a, #5a3a1a);
  border-radius: 50% 50% 0 0;
  animation: amb-hat 3s ease-in-out infinite alternate;
}
.scn-armado-moth-banter .scroll {
  position:absolute; bottom:35%; left:52%; width:12px; height:18px;
  background: linear-gradient(135deg, #e8d8a0, #c8b070);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform-origin: bottom left;
  animation: amb-scroll 5s ease-in-out infinite;
}
@keyframes amb-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes amb-bench { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes amb-armado { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-2px) rotate(4deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes amb-moth { 0% { transform: translateY(0) rotate(2deg) } 25% { transform: translateY(-3px) rotate(-3deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes amb-hat { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes amb-scroll { 0% { transform: translate(0,0) rotate(-10deg) } 25% { transform: translate(2px,-2px) rotate(10deg) } 50% { transform: translate(0,0) rotate(-5deg) } 75% { transform: translate(1px,-1px) rotate(5deg) } 100% { transform: translate(0,0) rotate(0) } }

/* princess-arrives-ladies */
.scn-princess-arrives-ladies {
  background: linear-gradient(180deg, #e8d4b0 0%, #c8b490 30%, #a89870 60%, #887858 100%), radial-gradient(ellipse at 70% 10%, #fff4e0 0%, transparent 60%);
}
.scn-princess-arrives-ladies .bg-castle {
  position:absolute; bottom:20%; left:10%; width:80%; height:60%;
  background: linear-gradient(180deg, #a88868, #705840);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
  animation: pal-castle 20s ease-in-out infinite alternate;
}
.scn-princess-arrives-ladies .grass {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #8aae5a, #6a8e3a);
  border-radius: 40% 60% 0 0 / 30% 20% 0 0;
}
.scn-princess-arrives-ladies .canopy {
  position:absolute; bottom:45%; left:35%; width:120px; height:40px;
  background: linear-gradient(135deg, #d4a860, #b88848);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.2);
  animation: pal-canopy 12s ease-in-out infinite;
}
.scn-princess-arrives-ladies .princess {
  position:absolute; bottom:25%; left:40%; width:22px; height:55px;
  background: linear-gradient(180deg, #d8b888 0%, #b89060 50%, #886040 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: pal-princess 6s ease-in-out infinite;
}
.scn-princess-arrives-ladies .lady.rosaline {
  position:absolute; bottom:25%; left:45%; width:20px; height:50px;
  background: linear-gradient(180deg, #c0a070 0%, #a08050 50%, #705030 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pal-lady 7s ease-in-out infinite;
}
.scn-princess-arrives-ladies .lady.maria {
  position:absolute; bottom:25%; left:50%; width:20px; height:50px;
  background: linear-gradient(180deg, #b89868 0%, #987848 50%, #685028 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pal-lady 8s ease-in-out infinite reverse;
}
.scn-princess-arrives-ladies .lady.katharine {
  position:absolute; bottom:25%; left:55%; width:20px; height:50px;
  background: linear-gradient(180deg, #a08050 0%, #886838 50%, #58481a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pal-lady 9s ease-in-out infinite;
}
.scn-princess-arrives-ladies .retinue {
  position:absolute; bottom:20%; left:35%; width:80px; height:8px;
  background: linear-gradient(90deg, #6a5a3a, #8a7a5a, #6a5a3a);
  border-radius: 20%;
  animation: pal-retinue 15s ease-in-out infinite alternate;
}
@keyframes pal-castle { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes pal-canopy { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes pal-princess { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pal-lady { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pal-retinue { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }

/* ferdinand-refuses-entry */
.scn-ferdinand-refuses-entry {
  background: linear-gradient(180deg, #d4c8b0 0%, #b8a890 30%, #9a8878 60%, #7a6858 100%), radial-gradient(ellipse at 30% 20%, #f0e0c0 0%, transparent 70%);
}
.scn-ferdinand-refuses-entry .bg-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #b8a080, #8a7058);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.4);
  animation: fre-wall 10s ease-in-out infinite alternate;
}
.scn-ferdinand-refuses-entry .gate {
  position:absolute; bottom:20%; left:45%; width:40px; height:80px;
  background: linear-gradient(90deg, #6a5040, #4a3830, #6a5040);
  border-radius: 5px;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: fre-gate 8s ease-in-out infinite;
}
.scn-ferdinand-refuses-entry .ferdinand {
  position:absolute; bottom:25%; left:42%; width:24px; height:60px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 50%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fre-ferdinand 5s ease-in-out infinite;
}
.scn-ferdinand-refuses-entry .princess {
  position:absolute; bottom:25%; left:52%; width:22px; height:55px;
  background: linear-gradient(180deg, #d0b080 0%, #b09060 50%, #887040 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fre-princess 6s ease-in-out infinite reverse;
}
.scn-ferdinand-refuses-entry .shadow-ferdinand {
  position:absolute; bottom:20%; left:43%; width:28px; height:10px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4), transparent);
  animation: fre-shadv 4s ease-in-out infinite;
}
.scn-ferdinand-refuses-entry .shadow-princess {
  position:absolute; bottom:20%; left:53%; width:26px; height:10px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.3), transparent);
  animation: fre-shadv 5s ease-in-out infinite reverse;
}
.scn-ferdinand-refuses-entry .dust {
  position:absolute; bottom:22%; left:48%; width:30px; height:2px;
  background: linear-gradient(90deg, transparent, #d0c0a0, transparent);
  filter: blur(2px);
  animation: fre-dust 3s ease-in-out infinite;
}
@keyframes fre-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes fre-gate { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes fre-ferdinand { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(3deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fre-princess { 0% { transform: translateY(0) rotate(2deg) } 25% { transform: translateY(-2px) rotate(-3deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fre-shadv { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.9) } }
@keyframes fre-dust { 0% { transform: translateX(-5px) scaleX(1) } 50% { transform: translateX(5px) scaleX(1.5) } 100% { transform: translateX(-5px) scaleX(1) } }

/* Ladies Tease Boyet */
.scn-ladies-tease-boyet {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f5deb3 60%, #deb887 100%),
    radial-gradient(ellipse at 70% 20%, #fff8dc 0%, transparent 60%);
}
.scn-ladies-tease-boyet .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #a0d8ef 0%, transparent 100%);
  animation: ltb-sky 15s ease-in-out infinite alternate;
}
.scn-ladies-tease-boyet .sun {
  position: absolute; top: 15%; left: 70%;
  width: 60px; height: 60px;
  background: radial-gradient(circle at 50% 50%, #fffacd 0%, #ffd700 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,215,0,0.3);
  animation: ltb-sun 8s ease-in-out infinite alternate;
}
.scn-ladies-tease-boyet .tree {
  position: absolute; bottom: 35%; left: 10%;
  width: 30px; height: 120px;
  background: linear-gradient(180deg, #8b5a2b 0%, #6b421a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  transform-origin: bottom center;
  animation: ltb-tree 6s ease-in-out infinite alternate;
}
.scn-ladies-tease-boyet .ladies-group {
  position: absolute; bottom: 28%; left: 25%;
  width: 80px; height: 100px;
  background: radial-gradient(ellipse 40% 60% at 50% 40%, #f0e68c 0%, #deb887 50%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 30% 30% 20% 20%;
  box-shadow: -5px 0 10px rgba(0,0,0,0.1);
  animation: ltb-ladies 4s ease-in-out infinite;
}
.scn-ladies-tease-boyet .lady-rose {
  position: absolute; bottom: 38%; left: 38%;
  width: 12px; height: 18px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 50% 50% 40% 40%;
  transform: rotate(-15deg);
  animation: ltb-rose 5s ease-in-out infinite alternate;
}
.scn-ladies-tease-boyet .boyet-figure {
  position: absolute; bottom: 26%; left: 55%;
  width: 22px; height: 60px;
  background: linear-gradient(180deg, #4682b4 0%, #2f5f8a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ltb-boyet 3s ease-in-out infinite;
}
.scn-ladies-tease-boyet .butterfly {
  position: absolute; top: 30%; left: 45%;
  width: 16px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #ffd700 0%, #daa520 50%, transparent 70%);
  border-radius: 50% 50% 10% 10% / 30% 30% 50% 50%;
  filter: blur(1px);
  animation: ltb-butterfly 10s linear infinite;
}
.scn-ladies-tease-boyet .petal-1 {
  position: absolute; bottom: 30%; left: 20%;
  width: 10px; height: 10px;
  background: #ffb6c1;
  border-radius: 50% 0 50% 0;
  opacity: 0.7;
  animation: ltb-petal 12s linear infinite;
}
.scn-ladies-tease-boyet .petal-2 {
  position: absolute; bottom: 35%; left: 30%;
  width: 8px; height: 8px;
  background: #ff69b4;
  border-radius: 0 50% 0 50%;
  opacity: 0.6;
  animation: ltb-petal 14s linear infinite reverse;
}
@keyframes ltb-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ltb-sun { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.05) rotate(5deg) } 100% { transform: scale(0.95) rotate(-5deg) } }
@keyframes ltb-tree { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes ltb-ladies { 0% { transform: translateY(0) scale(1) } 25% { transform: translateY(-2px) scale(1.01) } 50% { transform: translateY(0) scale(1) } 75% { transform: translateY(-1px) scale(0.99) } 100% { transform: translateY(0) scale(1) } }
@keyframes ltb-rose { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-3px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes ltb-boyet { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(4px) rotate(-2deg) } 60% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ltb-butterfly { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(20px,-10px) rotate(10deg) } 50% { transform: translate(40px,5px) rotate(-5deg) } 75% { transform: translate(60px,-5px) rotate(15deg) } 100% { transform: translate(80px,0) rotate(0deg) } }
@keyframes ltb-petal { 0% { transform: translate(0,0) rotate(0deg) scale(1); opacity:0.7 } 50% { transform: translate(30px,-20px) rotate(90deg) scale(0.8); opacity:0.4 } 100% { transform: translate(60px,-40px) rotate(180deg) scale(1.2); opacity:0 } }

/* Letter Swap Hunting */
.scn-letter-swap-hunting {
  background: 
    linear-gradient(180deg, #87cefa 0%, #b0e0e6 20%, #98fb98 50%, #556b2f 100%),
    radial-gradient(ellipse at 30% 40%, #f0e68c 0%, transparent 60%);
}
.scn-letter-swap-hunting .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #a0d0e8 0%, transparent 100%);
  animation: lsh-sky 20s ease-in-out infinite alternate;
}
.scn-letter-swap-hunting .forest-bg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #6b8e23 0%, #2e4a1e 40%, #1a2c0e 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: lsh-forest 12s ease-in-out infinite alternate;
}
.scn-letter-swap-hunting .deer {
  position: absolute; bottom: 25%; left: 30%;
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #c06030 0%, #804020 100%);
  border-radius: 40% 40% 60% 60% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: lsh-deer 5s ease-in-out infinite;
}
.scn-letter-swap-hunting .costard {
  position: absolute; bottom: 22%; left: 50%;
  width: 24px; height: 70px;
  background: linear-gradient(180deg, #8b4513 0%, #5a2d0c 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lsh-costard 3s ease-in-out infinite;
}
.scn-letter-swap-hunting .ladies-hunt {
  position: absolute; bottom: 28%; left: 60%;
  width: 60px; height: 90px;
  background: radial-gradient(ellipse 60% 80% at 50% 30%, #f4a460 0%, #d2691e 50%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  box-shadow: -3px 0 8px rgba(0,0,0,0.2);
  animation: lsh-ladies 6s ease-in-out infinite alternate;
}
.scn-letter-swap-hunting .letter {
  position: absolute; bottom: 40%; left: 48%;
  width: 20px; height: 26px;
  background: #f5e6d0;
  border: 1px solid #c0a080;
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.2);
  animation: lsh-letter 4s ease-in-out infinite;
}
.scn-letter-swap-hunting .arrow {
  position: absolute; bottom: 35%; left: 25%;
  width: 4px; height: 30px;
  background: linear-gradient(180deg, #8b4513 0%, #5a2d0c 100%);
  border-radius: 2px;
  transform: rotate(30deg);
  animation: lsh-arrow 2s ease-in-out infinite alternate;
}
.scn-letter-swap-hunting .leaf-1 {
  position: absolute; top: 10%; left: 15%;
  width: 24px; height: 12px;
  background: #6b8e23;
  border-radius: 50% 0 50% 0;
  animation: lsh-leaf 8s linear infinite;
}
.scn-letter-swap-hunting .leaf-2 {
  position: absolute; top: 25%; right: 10%;
  width: 18px; height: 10px;
  background: #556b2f;
  border-radius: 0 50% 0 50%;
  animation: lsh-leaf 10s linear infinite reverse;
}
@keyframes lsh-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes lsh-forest { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes lsh-deer { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-4px) rotate(-3deg) } 60% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes lsh-costard { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lsh-ladies { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) scale(0.98) } }
@keyframes lsh-letter { 0% { transform: rotate(0deg) translate(0,0) } 25% { transform: rotate(5deg) translate(2px,-2px) } 50% { transform: rotate(-5deg) translate(-2px,0) } 75% { transform: rotate(3deg) translate(1px,1px) } 100% { transform: rotate(0deg) translate(0,0) } }
@keyframes lsh-arrow { 0% { transform: translate(0,0) rotate(30deg) } 100% { transform: translate(5px,-5px) rotate(20deg) } }
@keyframes lsh-leaf { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(20px,15px) rotate(45deg) } 100% { transform: translate(40px,30px) rotate(90deg) } }

/* Holofernes Deer Epitaph */
.scn-holofernes-deer-epitaph {
  background: 
    linear-gradient(180deg, #e0d8c0 0%, #c8b890 30%, #a08060 100%),
    radial-gradient(ellipse at 50% 60%, #f0e0c0 0%, transparent 70%);
}
.scn-holofernes-deer-epitaph .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d4c8a8 0%, transparent 100%);
  animation: hde-sky 18s ease-in-out infinite alternate;
}
.scn-holofernes-deer-epitaph .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #8b7d6b 0%, #5c4d3a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-holofernes-deer-epitaph .deer-hide {
  position: absolute; bottom: 25%; left: 38%;
  width: 70px; height: 50px;
  background: linear-gradient(135deg, #a0522d 0%, #6b3a1f 50%, #4a2510 100%);
  border-radius: 40% 40% 50% 50% / 30% 30% 60% 60%;
  transform: rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: hde-deer 7s ease-in-out infinite;
}
.scn-holofernes-deer-epitaph .holofernes {
  position: absolute; bottom: 30%; left: 20%;
  width: 28px; height: 90px;
  background: linear-gradient(180deg, #5c4033 0%, #3b271a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hde-holo 4s ease-in-out infinite;
}
.scn-holofernes-deer-epitaph .scroll {
  position: absolute; bottom: 45%; left: 22%;
  width: 18px; height: 40px;
  background: #f5deb3;
  border: 1px solid #d2b48c;
  border-radius: 4px 4px 10px 10px;
  transform: rotate(10deg);
  animation: hde-scroll 5s ease-in-out infinite alternate;
}
.scn-holofernes-deer-epitaph .nathaniel {
  position: absolute; bottom: 28%; left: 55%;
  width: 24px; height: 80px;
  background: linear-gradient(180deg, #4a6b3a 0%, #2a4a1a 100%);
  border-radius: 35% 35% 30% 30% / 45% 45% 30% 30%;
  transform-origin: bottom center;
  animation: hde-nath 4s ease-in-out infinite;
}
.scn-holofernes-deer-epitaph .tree-stump {
  position: absolute; bottom: 22%; left: 65%;
  width: 30px; height: 40px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 4px 6px rgba(0,0,0,0.3);
  animation: hde-stump 9s ease-in-out infinite alternate;
}
.scn-holofernes-deer-epitaph .bird {
  position: absolute; top: 10%; left: 30%;
  width: 20px; height: 14px;
  background: radial-gradient(ellipse at 50% 50%, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  filter: blur(1px);
  animation: hde-bird 6s linear infinite;
}
.scn-holofernes-deer-epitaph .book {
  position: absolute; bottom: 20%; left: 50%;
  width: 20px; height: 14px;
  background: #8b4513;
  border-radius: 2px;
  box-shadow: 1px 1px 3px rgba(0,0,0,0.3);
  animation: hde-book 3s ease-in-out infinite alternate;
}
@keyframes hde-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes hde-deer { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(-3deg) scale(1.02) } 100% { transform: rotate(-7deg) scale(0.98) } }
@keyframes hde-holo { 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 hde-scroll { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-3px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes hde-nath { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes hde-stump { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(0.97) } }
@keyframes hde-bird { 0% { transform: translate(0,0) rotate(0deg) scale(1) } 25% { transform: translate(15px,-8px) rotate(5deg) scale(0.9) } 50% { transform: translate(30px,0) rotate(-5deg) scale(1) } 75% { transform: translate(45px,-5px) rotate(3deg) scale(0.95) } 100% { transform: translate(60px,0) rotate(0deg) scale(1) } }
@keyframes hde-book { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }

/* Lords Love Exposed (tense) */
.scn-lords-love-exposed {
  background: 
    linear-gradient(180deg, #d4c0a0 0%, #c0a880 30%, #a08060 100%),
    radial-gradient(ellipse at 50% 80%, #f0d0a0 0%, transparent 80%);
}
.scn-lords-love-exposed .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #d8c8b0 0%, transparent 100%);
  animation: lle-sky 12s ease-in-out infinite alternate;
}
.scn-lords-love-exposed .wall {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 60%;
  background: linear-gradient(135deg, #b8a088 0%, #8a7058 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-lords-love-exposed .table {
  position: absolute; bottom: 18%; left: 25%; right: 25%; height: 12%;
  background: linear-gradient(180deg, #6b4a2a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-lords-love-exposed .letter-pile {
  position: absolute; bottom: 22%; left: 38%; right: 38%; height: 8%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: lle-papers 2s ease-in-out infinite;
}
.scn-lords-love-exposed .lord-left {
  position: absolute; bottom: 22%; left: 10%;
  width: 30px; height: 80px;
  background: linear-gradient(180deg, #3a5a6a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lle-lord-left 1.5s ease-in-out infinite alternate;
}
.scn-lords-love-exposed .lord-right-top {
  position: absolute; bottom: 28%; right: 10%;
  width: 28px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 35% 35% 30% 30% / 45% 45% 30% 30%;
  transform-origin: bottom center;
  animation: lle-lord-right 2s ease-in-out infinite alternate;
}
.scn-lords-love-exposed .lord-right-bottom {
  position: absolute; bottom: 20%; right: 5%;
  width: 26px; height: 60px;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 35% 35% 25% 25% / 40% 40% 25% 25%;
  transform-origin: bottom center;
  animation: lle-lord-right 2s ease-in-out infinite alternate-reverse;
}
.scn-lords-love-exposed .biron {
  position: absolute; bottom: 24%; left: 45%;
  width: 24px; height: 75px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lle-biron 1.6s ease-in-out infinite alternate;
}
.scn-lords-love-exposed .shadow-stripe {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 40% 40% 0 0 / 100% 100% 0 0;
  animation: lle-shadow 3s ease-in-out infinite alternate;
}
@keyframes lle-sky { 0% { opacity:0.75 } 50% { opacity:1 } 100% { opacity:0.65 } }
@keyframes lle-papers { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes lle-lord-left { 0% { transform: rotate(0deg) } 100% { transform: rotate(5deg) } }
@keyframes lle-lord-right { 0% { transform: rotate(0deg) } 100% { transform: rotate(-4deg) } }
@keyframes lle-biron { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lle-shadow { 0% { opacity:0.3; transform: scaleY(1) } 50% { opacity:0.6; transform: scaleY(1.2) } 100% { opacity:0.3; transform: scaleY(0.8) } }
/* end per-scene blocks */
